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
.
Which instruction and encoding is the compiler selecting for eeb8 7a47
? Where can I find the documentation for this specific encoding?
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.