mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-17 17:19:35 +08:00
test: nasm-t -- Add optimization
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
parent
9b6f94a410
commit
2776c76763
BIN
travis/test/optimization-o0.bin.t
Normal file
BIN
travis/test/optimization-o0.bin.t
Normal file
Binary file not shown.
BIN
travis/test/optimization-o1.bin.t
Normal file
BIN
travis/test/optimization-o1.bin.t
Normal file
Binary file not shown.
BIN
travis/test/optimization-ox.bin.t
Normal file
BIN
travis/test/optimization-ox.bin.t
Normal file
Binary file not shown.
100
travis/test/optimization.asm
Normal file
100
travis/test/optimization.asm
Normal file
@ -0,0 +1,100 @@
|
||||
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
|
30
travis/test/optimization.json
Normal file
30
travis/test/optimization.json
Normal file
@ -0,0 +1,30 @@
|
||||
[
|
||||
{
|
||||
"description": "Test optimization options (-Ox)",
|
||||
"id": "optimization",
|
||||
"format": "bin",
|
||||
"source": "optimization.asm",
|
||||
"option": "-Ox",
|
||||
"target": [
|
||||
{ "output": "optimization-ox.bin" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Test optimization options (-O0)",
|
||||
"ref": "optimization",
|
||||
"source": "optimization.asm",
|
||||
"option": "-O0",
|
||||
"target": [
|
||||
{ "output": "optimization-o0.bin" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Test optimization options (-O1)",
|
||||
"ref": "optimization",
|
||||
"source": "optimization.asm",
|
||||
"option": "-O1",
|
||||
"target": [
|
||||
{ "output": "optimization-o1.bin" }
|
||||
]
|
||||
}
|
||||
]
|
Loading…
Reference in New Issue
Block a user