mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
9df010725f
Handle immediate-size optimization for "mov r64,imm" -- reduce it to "mov r32,imm32" or "mov r64,imm32" as appropriate. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
62 lines
2.0 KiB
NASM
62 lines
2.0 KiB
NASM
;Testname=imm64-O0; Arguments=-O0 -fbin -oimm64.bin; Files=stdout stderr imm64.bin
|
|
;Testname=imm64-O1; Arguments=-O1 -fbin -oimm64.bin; Files=stdout stderr imm64.bin
|
|
;Testname=imm64-Ox; Arguments=-Ox -fbin -oimm64.bin; Files=stdout stderr imm64.bin
|
|
|
|
bits 64
|
|
mov rax,11223344h
|
|
mov rax,dword 11223344h
|
|
mov eax,11223344h
|
|
mov [rax],dword 11223344h ; 32-bit operation
|
|
mov qword [rax],11223344h
|
|
mov qword [rax],dword 11223344h
|
|
|
|
mov rax,0_ffffffff_8899aabbh
|
|
mov rax,dword 0_ffffffff_8899aabbh
|
|
mov eax,0_ffffffff_8899aabbh
|
|
mov [rax],dword 0_ffffffff_8899aabbh ; 32-bit operation
|
|
mov qword [rax],0_ffffffff_8899aabbh
|
|
mov qword [rax],dword 0_ffffffff_8899aabbh
|
|
|
|
mov rax,7fffffffh
|
|
mov rax,80000000h
|
|
mov rax,0_ffffffffh
|
|
mov rax,1_00000000h
|
|
mov rax,0_ffffffff_7fffffffh
|
|
mov rax,0_ffffffff_80000000h
|
|
|
|
mov rax,0_11223344_8899aabbh
|
|
mov rax,dword 0_11223344_8899aabbh
|
|
mov eax,0_11223344_8899aabbh
|
|
mov [rax],dword 0_11223344_8899aabbh ; 32-bit operation
|
|
mov qword [rax],0_11223344_8899aabbh
|
|
mov qword [rax],dword 0_11223344_8899aabbh
|
|
|
|
mov rax,strict 11223344h
|
|
mov rax,strict dword 11223344h
|
|
mov eax,strict 11223344h
|
|
mov [rax],strict dword 11223344h ; 32-bit operation
|
|
mov qword [rax],strict 11223344h
|
|
mov qword [rax],strict dword 11223344h
|
|
|
|
mov rax,strict 0_ffffffff_8899aabbh
|
|
mov rax,strict dword 0_ffffffff_8899aabbh
|
|
mov eax,strict 0_ffffffff_8899aabbh
|
|
mov [rax],strict dword 0_ffffffff_8899aabbh ; 32-bit operation
|
|
mov qword [rax],strict 0_ffffffff_8899aabbh
|
|
mov qword [rax],strict dword 0_ffffffff_8899aabbh
|
|
|
|
mov rax,strict 7fffffffh
|
|
mov rax,strict 80000000h
|
|
mov rax,strict 0_ffffffffh
|
|
mov rax,strict 1_00000000h
|
|
mov rax,strict 0_ffffffff_7fffffffh
|
|
mov rax,strict 0_ffffffff_80000000h
|
|
|
|
mov rax,strict 0_11223344_8899aabbh
|
|
mov rax,strict dword 0_11223344_8899aabbh
|
|
mov eax,strict 0_11223344_8899aabbh
|
|
mov [rax],strict dword 0_11223344_8899aabbh ; 32-bit operation
|
|
mov qword [rax],strict 0_11223344_8899aabbh
|
|
mov qword [rax],strict dword 0_11223344_8899aabbh
|
|
|