| ;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 |