mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-03-19 18:00:23 +08:00
Try again to fix our handling of MOVD/MOVQ
Try to implement the handling of MOVD as attempted in checkin: 70712c0df6c437c50452c4997aa2e3de5a0e0299 and reverted in: d279fbbd80aab6f79584249629a4aea90b851458 due to BR3392199. This time make sure to use the SX flag to only match when a size is explicitly given, and also don't duplicate the 0F 6F/7F opcodes, which are documented as MOVQ by AMD as well as Intel. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
9d91ff5b12
commit
b106ba161f
16
insns.dat
16
insns.dat
@ -834,14 +834,14 @@ MOV rm64,imm32 [mi: hlexr o64 c7 /0 idx] X64
|
||||
MOV mem,imm8 [mi: hlexr c6 /0 ib] 8086,SM
|
||||
MOV mem,imm16 [mi: hlexr o16 c7 /0 iw] 8086,SM
|
||||
MOV mem,imm32 [mi: hlexr o32 c7 /0 id] 386,SM
|
||||
MOVD mmxreg,rm32 [rm: np 0f 6e /r] PENT,MMX
|
||||
MOVD rm32,mmxreg [mr: np 0f 7e /r] PENT,MMX
|
||||
MOVD xmmreg,rm32 [rm: np o16 0f 6e /r] SSE2
|
||||
MOVD rm32,xmmreg [mr: np o16 0f 7e /r] SSE2
|
||||
MOVQ mmxreg,mmxrm [rm: np o64nw 0f 6f /r] PENT,MMX,SQ
|
||||
MOVQ mmxrm,mmxreg [mr: np o64nw 0f 7f /r] PENT,MMX,SQ
|
||||
MOVQ mmxreg,rm64 [rm: np 0f 6e /r] X64,MMX
|
||||
MOVQ rm64,mmxreg [mr: np 0f 7e /r] X64,MMX
|
||||
MOVD mmxreg,rm32 [rm: np 0f 6e /r] PENT,MMX,SD
|
||||
MOVD rm32,mmxreg [mr: np 0f 7e /r] PENT,MMX,SD
|
||||
MOVD mmxreg,rm64 [rm: np o64 0f 6e /r] X64,MMX,SX,ND
|
||||
MOVD rm64,mmxreg [mr: np o64 0f 7e /r] X64,MMX,SX,ND
|
||||
MOVQ mmxreg,mmxrm [rm: np 0f 6f /r] PENT,MMX,SQ
|
||||
MOVQ mmxrm,mmxreg [mr: np 0f 7f /r] PENT,MMX,SQ
|
||||
MOVQ mmxreg,rm64 [rm: np o64 0f 6e /r] X64,MMX
|
||||
MOVQ rm64,mmxreg [mr: np o64 0f 7e /r] X64,MMX
|
||||
MOVSB void [ a4] 8086
|
||||
MOVSD void [ o32 a5] 386
|
||||
MOVSQ void [ o64 a5] X64
|
||||
|
15
test/movd64.asm
Normal file
15
test/movd64.asm
Normal file
@ -0,0 +1,15 @@
|
||||
bits 64
|
||||
|
||||
movd r8d, mm1
|
||||
movd r8, mm1
|
||||
movq r8, mm1
|
||||
|
||||
movd [rax], mm1
|
||||
movq [rax], mm1
|
||||
movd dword [rax], mm1
|
||||
; movq dword [rax], mm1
|
||||
movd qword [rax], mm1
|
||||
movq qword [rax], mm1
|
||||
|
||||
; movd mm2, mm1
|
||||
movq mm2, mm1
|
Loading…
x
Reference in New Issue
Block a user