CVTPS2PD only loads a half-register for memory, unlike the other
operations under 0x0F 0x5A. Therefore, it is unlike other
"unary" floating point operations, that load a full register
from memory in their packed incarnation.
To fix it, reimplement the four operations under 0x0F 0x5A
(CVTSS2SD, CVTSD2SS, CVTPS2PD, CVTPD2PS) individually.
Paolo
Paolo Bonzini (2):
target/i386: generalize operand size "ph" for use in CVTPS2PD
target/i386: fix memory operand size for CVTPS2PD
target/i386/tcg/decode-new.c.inc | 20 +++++++++++++++-----
target/i386/tcg/decode-new.h | 2 +-
target/i386/tcg/emit.c.inc | 30 +++++++++++++++++++++++++-----
3 files changed, 41 insertions(+), 11 deletions(-)
--
2.41.0