diff options
| author | 2023-06-19 22:26:15 +0200 | |
|---|---|---|
| committer | 2023-06-19 22:26:15 +0200 | |
| commit | 88bf0602d09bebbf18213fbf02821e9f63b964a8 (patch) | |
| tree | 4fe503eaf8a62c8c321fa6b8db2211edd07ff60b /amd64/emit.c | |
| parent | ae24f6756d850c1dcc5dd7683a55601ddd7a52de (diff) | |
amd64/emit: fix mov(zx/sx)w
Diffstat (limited to 'amd64/emit.c')
| -rw-r--r-- | amd64/emit.c | 12 |
1 files 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 */ |