mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
588df78b0d
Add a new opcode for 32->64 bit sign-extended immediate, with warning on the number not matching. This unfortunately calls for an audit of all the \4[0123] opcodes, if they should be replaced by \25[4567]. This only replaces one instruction (MOV reg64,imm32); other instructions need to be considered. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
92 lines
1.4 KiB
NASM
92 lines
1.4 KiB
NASM
;Testname=onowarn; Arguments=-Ox -DOPT=1 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
|
|
;Testname=owarn; Arguments=-Ox -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
|
|
;Testname=nowarn; Arguments=-O0 -DOPT=0 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
|
|
;Testname=warn; Arguments=-O0 -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
|
|
|
|
%ifndef WARN
|
|
%define WARN 1
|
|
%endif
|
|
|
|
bits 16
|
|
push 1
|
|
%if WARN
|
|
push 0ffffffffh
|
|
%endif
|
|
push -1
|
|
push 0ffffh
|
|
push byte 0FFFFh
|
|
|
|
add ax,0FFFFh
|
|
%if WARN
|
|
add ax,0FFFFFFFFh
|
|
%endif
|
|
add ax,-1
|
|
add ax,byte 0FFFFh
|
|
%if WARN
|
|
add ax,byte 0FFFFFFFFh
|
|
%endif
|
|
add ax,-1
|
|
|
|
add cx,0FFFFh
|
|
%if WARN
|
|
add cx,0FFFFFFFFh
|
|
%endif
|
|
add cx,-1
|
|
add cx,byte 0FFFFh
|
|
%if WARN
|
|
add cx,byte 0FFFFFFFFh
|
|
%endif
|
|
add cx,-1
|
|
|
|
bits 32
|
|
push 1
|
|
push 0ffffffffh
|
|
push -1
|
|
push 0ffffh
|
|
|
|
push byte 1
|
|
%if WARN
|
|
push byte 0ffffh
|
|
%endif
|
|
push byte -1
|
|
|
|
push word 1
|
|
push word 0ffffh
|
|
push word -1
|
|
|
|
push dword 1
|
|
push dword 0ffffffffh
|
|
push dword -1
|
|
|
|
add eax,0FFFFh
|
|
add eax,0FFFFFFFFh
|
|
add eax,-1
|
|
|
|
add ecx,0FFFFh
|
|
add ecx,0FFFFFFFFh
|
|
add ecx,-1
|
|
|
|
bits 64
|
|
mov eax,7fffffffh
|
|
mov eax,80000000h
|
|
mov rax,7fffffffh
|
|
mov rax,80000000h
|
|
%if WARN
|
|
mov rax,dword 80000000h
|
|
%endif
|
|
add rcx,0FFFFh
|
|
%if WARN
|
|
add rcx,0FFFFFFFFh
|
|
%endif
|
|
add rcx,-1
|
|
|
|
add ecx,0FFFFh
|
|
add ecx,0FFFFFFFFh
|
|
add ecx,-1
|
|
|
|
push byte 1
|
|
%if WARN
|
|
push byte 0ffffffffh
|
|
%endif
|
|
push byte -1
|