mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
ae2597b116
A few more sbyte optimization tests.
105 lines
1.7 KiB
NASM
105 lines
1.7 KiB
NASM
;Testname=O0; Arguments=-O0 -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
|
|
;Testname=O1; Arguments=-O1 -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
|
|
;Testname=Ox; Arguments=-Ox -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
|
|
|
|
BITS 32
|
|
|
|
; Simple
|
|
jmp foo
|
|
times 124 nop
|
|
foo:
|
|
|
|
; Must start short to converge optimally
|
|
jmp car
|
|
times 127 nop
|
|
car:
|
|
|
|
; Always near
|
|
jmp cdr
|
|
times 128 nop
|
|
cdr:
|
|
|
|
|
|
; Simple
|
|
add eax, quux2 - quux1
|
|
quux1:
|
|
times 127 nop
|
|
quux2:
|
|
|
|
; Must start short
|
|
corge1:
|
|
add eax, corge2 - corge1
|
|
times 127 - 3 nop
|
|
corge2:
|
|
|
|
|
|
; Simple
|
|
lea eax, [bolug2-bolug1]
|
|
bolug1:
|
|
times 127 nop
|
|
bolug2:
|
|
|
|
; Must start short
|
|
calog1:
|
|
lea eax, [calog2-calog1]
|
|
times 127 - 3 nop
|
|
calog2:
|
|
|
|
|
|
; Simple
|
|
lea eax, [eax+dolug2-dolug1]
|
|
dolug1:
|
|
times 127 nop
|
|
dolug2:
|
|
|
|
; Must start short
|
|
ealog1:
|
|
lea eax, [eax+ealog2-ealog1]
|
|
times 127 - 3 nop
|
|
ealog2:
|
|
|
|
; Must stay long!
|
|
lea eax, [eax+folug2-folug1]
|
|
folug1:
|
|
times 128 nop
|
|
folug2:
|
|
|
|
; Must stay long!
|
|
galog1:
|
|
lea eax, [eax+galog2-galog1]
|
|
times 128 - 3 nop
|
|
galog2:
|
|
|
|
; Sbyte tests...
|
|
onetwentysix equ 126
|
|
onetwentynine equ 129
|
|
|
|
add eax,onetwentyseven ; sbyte (forward)
|
|
add eax,onetwentyeight ; not sbyte (forward)
|
|
add eax,onetwentyseven ; sbyte (forward)
|
|
add eax,onetwentysix ; sbyte (backward)
|
|
add eax,onetwentynine ; not sbyte (backward)
|
|
add ecx,onetwentyseven ; sbyte (forward)
|
|
add ecx,onetwentyeight ; not sbyte (forward)
|
|
add ecx,onetwentyseven ; sbyte (forward)
|
|
add ecx,onetwentysix ; sbyte (backward)
|
|
add ecx,onetwentynine ; not sbyte (backward)
|
|
|
|
onetwentyseven equ 127
|
|
onetwentyeight equ 128
|
|
|
|
; Simple
|
|
add eax, holug2-holug1
|
|
holug1:
|
|
times 127 nop
|
|
holug2:
|
|
|
|
; Must start short
|
|
ialog1:
|
|
add eax, ialog2-ialog1
|
|
times 127 - 3 nop
|
|
ialog2:
|
|
|
|
; Do not confuse forward references and segmentless addresses!
|
|
jmp 12345
|