3 # We use these macros to test each pattern at every offset from
4 # bundle alignment, i.e. [0,31].
6 .macro offset_insn insn_name, offset
8 \insn_name\()_offset_\offset\():
15 .macro test_offsets insn_name
16 offset_insn \insn_name, 0
17 offset_insn \insn_name, 1
18 offset_insn \insn_name, 2
19 offset_insn \insn_name, 3
20 offset_insn \insn_name, 4
21 offset_insn \insn_name, 5
22 offset_insn \insn_name, 6
23 offset_insn \insn_name, 7
24 offset_insn \insn_name, 8
25 offset_insn \insn_name, 9
26 offset_insn \insn_name, 10
27 offset_insn \insn_name, 11
28 offset_insn \insn_name, 12
29 offset_insn \insn_name, 13
30 offset_insn \insn_name, 14
31 offset_insn \insn_name, 15
32 offset_insn \insn_name, 16
33 offset_insn \insn_name, 17
34 offset_insn \insn_name, 18
35 offset_insn \insn_name, 19
36 offset_insn \insn_name, 20
37 offset_insn \insn_name, 21
38 offset_insn \insn_name, 22
39 offset_insn \insn_name, 23
40 offset_insn \insn_name, 24
41 offset_insn \insn_name, 25
42 offset_insn \insn_name, 26
43 offset_insn \insn_name, 27
44 offset_insn \insn_name, 28
45 offset_insn \insn_name, 29
46 offset_insn \insn_name, 30
47 offset_insn \insn_name, 31
50 # These are vanilla (non-relaxed) instructions of each length.
67 movl %eax,0xaabbccdd(%esi)
70 movl $0xaabbccdd,0x7f(%esi)
73 lock addl $0xaabbccdd,0x10(%esi)
76 lock addl $0xaabbccdd,%fs:0x10(%esi)
79 movl $0xaabbccdd,0x7ff(%esi)
82 lock addl $0xaabbccdd,0x7ff(%esi)
85 lock addl $0xaabbccdd,%fs:0x7ff(%esi)
101 # The only relaxation cases are the jump instructions.
102 # For each of the three flavors of jump (unconditional, conditional,
103 # and conditional with prediction), we test a case that can be relaxed
104 # to its shortest form, and one that must use the long form.
107 movl $0xdeadbeef,%eax
122 movl $0xdeadbeef,%eax
137 movl $0xdeadbeef,%eax