armdisassemblycortex-marmv7instruction-encoding

ARMv7E-M VCVT.F32.U32 encoding


I'm writing an ARMv7E-M Thumb2 binary analysis tool, and decoding the instruction stream manually.

arm-gcc, invoked with the -mcpu=cortex-m4 and -mfloat-abi=hard flags, emitted the following instruction while compiling my C code:

40280: eeb8 7a47 vcvt.f32.u32 s14, s14

I can't find this specific encoding in the ARMv7-M Architecture Reference Manual, though.

The closest I can find is A7.7.226 VCVT, pictured below, but bit 1 of word 0 is set to 1 in the specification, but 0 in eeb8.

Section A7.7.226 of ARMv7-M Architecture Reference Manual

Which instruction and encoding is the compiler selecting for eeb8 7a47? Where can I find the documentation for this specific encoding?


Solution

  • Uhh, well, a different version of the ARMv7-M ARM has an encoding that matches what the compiler is emitting. I'm not sure yet what the difference is, but I'm posting the matching version here and marking it as an answer.

    enter image description here