Fix #296: Fix disassembly of MOVD instruction
It's not really clear why this is happening in some cases. When it does happen, the destination register is a general purpose register.
To fix this, define a new argument type, word-reg/mem
that is just
like reg/mem
, but calls print-word-reg/mem
instead of
print-reg/mem
. The new function print-word-reg/mem
calls
print-word-reg
to print the register instead of print-reg
.
To minimize the impact of this change, only use this new type in the
movd
instruction when the source is an xmm register.
Tested this by disassembling the xoroshiro-update
assembly routine
and a few other random functions that use movd
, like
single-float-bits
and make-single-float
.