I'm not a 64 user I can't test it however ,the error you're encountering is likely due to the fact that the value 0xC28F3D75 cannot be directly used as a floating-point constant in the FMOV instruction
In AArch64 assembly, when using immediate values with FMOV, you typically need to represent the floating-point constant in a specific format: 0.06
FMOV S0, #0.06 or FMOV S0, 0.06 ( depending on the system )
In the 1st case #0xC28F3D75 is a 32bit value and the your instruction set it to 64bit value with the register X
The third line (FMOV s0, w8) moves the value in register w8 into scalar floating-point register s0. This might be an issue depending on the context. If w8 contains a valid 32-bit integer, this conversion could be appropriate. However, if w8 contains a floating-point value, this operation might lead to unexpected results
You should use W register instead to convert the register W8 to a valid 32bit floating-point:
MOV w8, #0xC28F
MOVK w8, #0x3D75, LSL #16
FMOV s0, w8
ret