blob: d78209d96e9c2380a76744f65c5bc47dc60b2212 [file] [log] [blame]
Victor van den Elzen5a653cb2009-02-25 17:49:23 +01001;Testname=O0; Arguments=-O0 -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
2;Testname=O1; Arguments=-O1 -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
3;Testname=Ox; Arguments=-Ox -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
Victor van den Elzena5869fb2009-02-23 05:16:35 +01004
5BITS 32
6
Victor van den Elzen154e5922009-02-25 17:32:00 +01007; Simple
Victor van den Elzena5869fb2009-02-23 05:16:35 +01008jmp foo
9times 124 nop
10foo:
11
Victor van den Elzen154e5922009-02-25 17:32:00 +010012; Must start short to converge optimally
Victor van den Elzena5869fb2009-02-23 05:16:35 +010013jmp car
14times 127 nop
15car:
16
Victor van den Elzen154e5922009-02-25 17:32:00 +010017; Always near
18jmp cdr
19times 128 nop
20cdr:
21
22
23; Simple
Victor van den Elzena5869fb2009-02-23 05:16:35 +010024add eax, quux2 - quux1
25quux1:
26times 127 nop
27quux2:
28
Victor van den Elzen154e5922009-02-25 17:32:00 +010029; Must start short
Victor van den Elzena5869fb2009-02-23 05:16:35 +010030corge1:
31add eax, corge2 - corge1
Victor van den Elzen154e5922009-02-25 17:32:00 +010032times 127 - 3 nop
Victor van den Elzena5869fb2009-02-23 05:16:35 +010033corge2:
H. Peter Anvin130360f2009-02-23 17:47:25 -080034
Victor van den Elzen154e5922009-02-25 17:32:00 +010035
36; Simple
37lea eax, [bolug2-bolug1]
38bolug1:
39times 127 nop
40bolug2:
41
42; Must start short
43calog1:
44lea eax, [calog2-calog1]
45times 127 - 3 nop
46calog2:
47
48
H. Peter Anvined2dcb82009-02-26 14:47:17 -080049; Simple
50lea eax, [eax+dolug2-dolug1]
51dolug1:
52times 127 nop
53dolug2:
54
55; Must start short
56ealog1:
57lea eax, [eax+ealog2-ealog1]
58times 127 - 3 nop
59ealog2:
60
61; Must stay long!
62lea eax, [eax+folug2-folug1]
63folug1:
64times 128 nop
65folug2:
66
67; Must stay long!
68galog1:
69lea eax, [eax+galog2-galog1]
70times 128 - 3 nop
71galog2:
72
H. Peter Anvin943c9d72009-02-26 16:34:07 -080073; Sbyte tests...
74onetwentysix equ 126
75onetwentynine equ 129
76
77add eax,onetwentyseven ; sbyte (forward)
78add eax,onetwentyeight ; not sbyte (forward)
79add eax,onetwentyseven ; sbyte (forward)
80add eax,onetwentysix ; sbyte (backward)
81add eax,onetwentynine ; not sbyte (backward)
82add ecx,onetwentyseven ; sbyte (forward)
83add ecx,onetwentyeight ; not sbyte (forward)
84add ecx,onetwentyseven ; sbyte (forward)
85add ecx,onetwentysix ; sbyte (backward)
86add ecx,onetwentynine ; not sbyte (backward)
87
88onetwentyseven equ 127
89onetwentyeight equ 128
90
H. Peter Anvinae2597b2009-02-26 16:37:55 -080091; Simple
92add eax, holug2-holug1
93holug1:
94times 127 nop
95holug2:
96
97; Must start short
98ialog1:
99add eax, ialog2-ialog1
100times 127 - 3 nop
101ialog2:
102
Victor van den Elzen154e5922009-02-25 17:32:00 +0100103; Do not confuse forward references and segmentless addresses!
H. Peter Anvin130360f2009-02-23 17:47:25 -0800104jmp 12345