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;