Is FMVH.X.D an FCVT conversion?
No. It only copies the bit pattern and does not interpret and convert the numeric value.
On RV32, copy the high 32 bits of a double floating-point register to an integer register.
Extension condition: RV32 only; requires Zfa 1.0 and D 2.2. In the standard privileged architecture, accessing FP state with FS=Off raises an illegal-instruction exception.
FMVH.X.D is a Zfa bit-move instruction for RV32+D that copies bits 63:32 of f[rs1] into x[rd]. Together with FMV.X.W it can split a double-precision encoding into two integer registers; this is a bit copy, not a numeric conversion.
Shows the Zfa + D (RV32 only)-extension FMVH.X.D bit-pattern move: decode OP-FP fields, read the source bit pattern, then write the destination without numeric conversion.
Assumes required extensions and enabled FP state. Integer input covers XLEN bits; FP input supplies only the selected format's bit slice, ignoring upper NaN-box bits.
The word is split as an R-type OP-FP instruction; FMV bit moves use opcode 1010011.
FMVH.X.D is defined only for RV32+D+Zfa and copies f[rs1] bits 63:32 to x[rd]; paired with FMV.X.W, it transfers a double-precision bit pattern.
This animation shows only Zfa + D (RV32 only)-extension FMV ISA-visible encoding and bit-pattern movement; it does not model FPU pipelines, numeric FP interpretation, exception handling, or microarchitecture.
FMVH.X.D fills the RV32 path for moving a 64-bit double encoding through 32-bit integer registers. The key points are bit order and that it is not numeric conversion.
Understand this scenario with real code like «fmvh.x.d x10, f11 # RV32+D+Zfa: f11=0xC00921FB54442D18 -> x10=0xC00921FB».
Understand this scenario with real code like «fmvh.x.d x10, f11 # RV32+D+Zfa: f11=0xC00921FB54442D18 -> x10=0xC00921FB».
No. It only copies the bit pattern and does not interpret and convert the numeric value.
It is defined only for RV32 with Zfa and D. It extracts the high 32 bits; FMV.X.W can separately extract the low 32 bits.