public long getRawBytes() {
		return (((long)highBytes) << 32 ) + (lowBytes & 0xffffffffL);
	}
The value represented by the CONSTANT_Double_info structure is determined
as follows. The high_bytes and low_bytes items are converted into the long
constant bits, which is equal to
		((long) high_bytes << 32) + low_bytes
Then:
		If bits is 0x7ff0000000000000L, the double value will be positive infinity.

		If bits is 0xfff0000000000000L, the double value will be negative infinity.

		If bits is in the range 0x7ff0000000000001L through 0x7fffffffffffffffL
		or in the range 0xfff0000000000001L through 0xffffffffffffffffL, the
		double value will be NaN.

		In all other cases, let s, e, and m be three values that might be computed from bits:

			int s = ((bits >> 63) == 0) ? 1 : -1;
			int e = (int)((bits >> 52) & 0x7ffL);
			long m = (e == 0) ?
						(bits & 0xfffffffffffffL) << 1 :
						(bits & 0xfffffffffffffL) | 0x10000000000000L;

Then the floating-point value equals the double value of the mathematical
expression s ? m ? 2e-1075.
@return the double value
Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/format/constantpool/ConstantPoolDoubleInfo.java