From 88bf0602d09bebbf18213fbf02821e9f63b964a8 Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 19 Jun 2023 22:26:15 +0200 Subject: amd64/emit: fix mov(zx/sx)w --- amd64/emit.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/amd64/emit.c b/amd64/emit.c index 8b74632..955d59d 100644 --- a/amd64/emit.c +++ b/amd64/emit.c @@ -351,8 +351,8 @@ DEFINSTR2(Xmovb, {-1, PMEM, PI8, "\xC6", EN_MI8, .r8=1}, /* MOV m8, imm8 */ ) DEFINSTR2(Xmovw, - {-1, PMEM, PGPR, "\x66\x89", EN_MR}, /* MOV m16, r16 */ - {-1, PMEM, PI16, "\xC6", EN_MI16}, /* MOV m16, imm16 */ + {-1, PMEM, PGPR, "\x66\x89", EN_MR}, /* MOV m16, r16 */ + {-1, PMEM, PI16, "\x66\xC7", EN_MI16}, /* MOV m16, imm16 */ ) static void Xmov(uchar **pcode, enum irclass k, struct oper dst, struct oper src) { @@ -385,16 +385,16 @@ DEFINSTR2(Xmovsxl, {4, PGPR, PGPR, "\x89", EN_RR}, /* MOV r32, r32 */ ) DEFINSTR2(Xmovsxw, - {4|8, PGPR, PMEM, "\x0F\xBF", EN_RM}, /* MOVSX r64, m16 */ - {4|8, PGPR, PGPR, "\x0F\xBF", EN_RR}, /* MOVSX r64, r16 */ + {4|8, PGPR, PMEM, "\x66\x0F\xBF", EN_RM}, /* MOVSX r64, m16 */ + {4|8, PGPR, PGPR, "\x66\x0F\xBF", EN_RR}, /* MOVSX r64, r16 */ ) DEFINSTR2(Xmovsxb, {4|8, PGPR, PMEM, "\x0F\xBE", EN_RM}, /* MOVSX r64, m8 */ {4|8, PGPR, PGPR, "\x0F\xBE", EN_RR, .r8=1}, /* MOVSX r64, r8 */ ) DEFINSTR2(Xmovzxw, - {4|8, PGPR, PMEM, "\x0F\xB7", EN_RM}, /* MOVZX r64, m16 */ - {4|8, PGPR, PGPR, "\x0F\xB7", EN_RR}, /* MOVZX r64, r16 */ + {4|8, PGPR, PMEM, "\x66\x0F\xB7", EN_RM}, /* MOVZX r64, m16 */ + {4|8, PGPR, PGPR, "\x66\x0F\xB7", EN_RR}, /* MOVZX r64, r16 */ ) DEFINSTR2(Xmovzxb, {4|8, PGPR, PMEM, "\x0F\xB6", EN_RM}, /* MOVZX r64, m8 */ -- cgit v1.2.3