pub const fn long_convertible(v: i64) -> boolExpand description
Does a 64-bit integer satisfy CVT.[S,D].L’s range restriction?
“When converting a long integer to a single- or double-precision floating-point number (
CVT.[S,D].L), bits 63:55 of the 64-bit integer must be all zeroes or ones, otherwise the VR4300 processor raises a floating-point instruction exception.” — UM §7.5.2
This is a VR4300-specific hardware limitation, not IEEE behavior: the value is perfectly representable, the processor simply declines. An emulator that converts it anyway produces a correct number where hardware traps, so software’s fixup path never runs and the difference surfaces far downstream.