SmallFloatData getSmallFloatData(long encoding) {
		if (size > 8) {
			throw new UnsupportedOperationException(
				"method not supported for float size of " + size);
		}
		boolean sgn = extractSign(encoding);
		int exp = extractExponentCode(encoding);
		long frac = extractFractionalCode(encoding);
		FloatKind kind = extractKind(encoding);

		int scale;
		long unscaled = frac;
		if (kind == FloatKind.FINITE) {
			if (exp == 0) { // subnormal
				scale = -bias + 1;
			}
			else {
				scale = exp - bias;
				if (jbitimplied) {
					unscaled |= 1L << frac_size;
				}
			}
		}
		else {
			scale = 0;
		}
		return new SmallFloatData(effective_frac_size, exp_size, kind, sgn ? -1 : 1, unscaled,
			scale);
	}
Decode {@code encoding} to a SmallFloatData using this format.

NB: this method should not be used if {@link #size}>8

@param encoding the encoding
@return the decoded value as a SmallFloatData
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcode/floatformat/FloatFormat.java