FMOV (scalar, immediate) Floating-point move immediate (scalar) This instruction copies a floating-point immediate constant into the SIMD&FP destination register. Depending on the settings in the CPACR_EL1, CPTR_EL2, and CPTR_EL3 registers, and the current Security state and Exception level, an attempt to execute the instruction might be trapped. 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 FMOV <Hd>, #<imm> 0 0 FMOV <Sd>, #<imm> 0 1 FMOV <Dd>, #<imm> if ftype == '10' || (ftype == '11' && !IsFeatureImplemented(FEAT_FP16)) then UNDEFINED; constant integer d = UInt(Rd); constant integer datasize = 8 << UInt(ftype EOR '10'); constant bits(datasize) imm = VFPExpandImm(imm8, datasize); <Hd> Is the 16-bit name of the SIMD&FP destination register, encoded in the "Rd" field. <imm> Is a signed floating-point constant with 3-bit exponent and normalized 4 bits of precision, encoded in the "imm8" field. For details of the range of constants available and the encoding of <imm>, see Modified immediate constants in A64 floating-point instructions. <Sd> Is the 32-bit name of the SIMD&FP destination register, encoded in the "Rd" field. <Dd> Is the 64-bit name of the SIMD&FP destination register, encoded in the "Rd" field. CheckFPEnabled64(); V[d, datasize] = imm;