]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/i386/x86-64-mpx.s
x86: convert testcases to use .insn
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / i386 / x86-64-mpx.s
1 # MPX instructions
2 .allow_index_reg
3 .text
4 start:
5 ### bndmk
6 bndmk (%r11), %bnd1
7 bndmk (%rax), %bnd1
8 bndmk (0x399), %bnd1
9 bndmk 0x3(%r9), %bnd1
10 bndmk 0x3(%rax), %bnd1
11 bndmk 0x3(,%r12,1), %bnd1
12 bndmk (%rax,%rcx), %bnd1
13 bndmk 0x3(%r11,%rax,2), %bnd1
14 bndmk 0x3(%rbx,%r9,1), %bnd1
15
16 ### bndmov
17 bndmov (%r11), %bnd1
18 bndmov (%rax), %bnd1
19 bndmov (0x399), %bnd1
20 bndmov 0x3(%r9), %bnd2
21 bndmov 0x3(%rax), %bnd2
22 bndmov 0x3333(%rip), %bnd2
23 bndmov 0x3(,%r12,1), %bnd0
24 bndmov (%rax,%rdx), %bnd2
25 bndmov 0x3(%r11,%rax,2), %bnd1
26 bndmov 0x3(%rbx,%r9,1), %bnd1
27 bndmov %bnd2, %bnd0
28
29 bndmov %bnd1, (%r11)
30 bndmov %bnd1, (%rax)
31 bndmov %bnd1, (0x399)
32 bndmov %bnd2, 0x3(%r9)
33 bndmov %bnd2, 0x3(%rax)
34 bndmov %bnd2, 0x3333(%rip)
35 bndmov %bnd0, 0x3(,%r12,1)
36 bndmov %bnd2, (%rax,%rdx)
37 bndmov %bnd1, 0x3(%r11,%rax,2)
38 bndmov %bnd1, 0x3(%rbx,%r9,1)
39 bndmov %bnd0, %bnd2
40
41 ### bndcl
42 bndcl (%r11), %bnd1
43 bndcl (%rax), %bnd1
44 bndcl %r11, %bnd1
45 bndcl %rcx, %bnd1
46 bndcl (0x399), %bnd1
47 bndcl 0x3(%r9), %bnd2
48 bndcl 0x3(%rax), %bnd2
49 bndcl 0x3333(%rip), %bnd2
50 bndcl 0x3(,%r12,1), %bnd0
51 bndcl (%rax,%rdx), %bnd2
52 bndcl 0x3(%r11,%rax,2), %bnd1
53 bndcl 0x3(%rbx,%r9,1), %bnd1
54
55 ### bndcu
56 bndcu (%r11), %bnd1
57 bndcu (%rax), %bnd1
58 bndcu %r11, %bnd1
59 bndcu %rcx, %bnd1
60 bndcu (0x399), %bnd1
61 bndcu 0x3(%r9), %bnd2
62 bndcu 0x3(%rax), %bnd2
63 bndcu 0x3333(%rip), %bnd2
64 bndcu 0x3(,%r12,1), %bnd0
65 bndcu (%rax,%rdx), %bnd2
66 bndcu 0x3(%r11,%rax,2), %bnd1
67 bndcu 0x3(%rbx,%r9,1), %bnd1
68
69 ### bndcn
70 bndcn (%r11), %bnd1
71 bndcn (%rax), %bnd1
72 bndcn %r11, %bnd1
73 bndcn %rcx, %bnd1
74 bndcn (0x399), %bnd1
75 bndcn 0x3(%r9), %bnd2
76 bndcn 0x3(%rax), %bnd2
77 bndcn 0x3333(%rip), %bnd2
78 bndcn 0x3(,%r12,1), %bnd0
79 bndcn (%rax,%rdx), %bnd2
80 bndcn 0x3(%r11,%rax,2), %bnd1
81 bndcn 0x3(%rbx,%r9,1), %bnd1
82
83 ### bndstx
84 bndstx %bnd0, 0x3(%rax,%rbx,1)
85 bndstx %bnd2, 3(%rbx,%rdx)
86 bndstx %bnd3, 0x399(%r12)
87 bndstx %bnd1, 0x1234(%r11)
88 bndstx %bnd2, 0x1234(%rbx)
89 bndstx %bnd2, 3(,%rbx,1)
90 bndstx %bnd2, 3(,%r12,1)
91 bndstx %bnd1, (%rdx)
92
93 ### bndldx
94 bndldx 0x3(%rax,%rbx,1), %bnd0
95 bndldx 3(%rbx,%rdx), %bnd2
96 bndldx 0x399(%r12), %bnd3
97 bndldx 0x1234(%r11), %bnd1
98 bndldx 0x1234(%rbx), %bnd2
99 bndldx 3(,%rbx,1), %bnd2
100 bndldx 3(,%r12,1), %bnd2
101 bndldx (%rdx), %bnd1
102
103 ### bnd
104 bnd call foo
105 bnd call *(%rax)
106 bnd call *(%r11)
107 bnd je foo
108 bnd jmp foo
109 bnd jmp *(%rcx)
110 bnd jmp *(%r12)
111 bnd ret
112
113 .intel_syntax noprefix
114 bndmk bnd1, [r11]
115 bndmk bnd1, [rax]
116 bndmk bnd1, [0x399]
117 bndmk bnd1, [r9+0x3]
118 bndmk bnd1, [rax+0x3]
119 bndmk bnd1, [1*r12+0x3]
120 bndmk bnd1, [rax+rcx]
121 bndmk bnd1, [r11+1*rax+0x3]
122 bndmk bnd1, [rbx+1*r9+0x3]
123
124 ### bndmov
125 bndmov bnd1, [r11]
126 bndmov bnd1, [rax]
127 bndmov bnd1, [0x399]
128 bndmov bnd2, [r9+0x3]
129 bndmov bnd2, [rax+0x3]
130 bndmov bnd0, [1*r12+0x3]
131 bndmov bnd2, [rax+rdx]
132 bndmov bnd1, [r11+1*rax+0x3]
133 bndmov bnd1, [rbx+1*r9+0x3]
134 bndmov bnd0, bnd2
135
136 bndmov [r11], bnd1
137 bndmov [rax], bnd1
138 bndmov [0x399], bnd1
139 bndmov [r9+0x3], bnd2
140 bndmov [rax+0x3], bnd2
141 bndmov [1*r12+0x3], bnd0
142 bndmov [rax+rdx], bnd2
143 bndmov [r11+1*rax+0x3], bnd1
144 bndmov [rbx+1*r9+0x3], bnd1
145 bndmov bnd2, bnd0
146
147 ### bndcl
148 bndcl bnd1, [r11]
149 bndcl bnd1, [rax]
150 bndcl bnd1, r11
151 bndcl bnd1, rcx
152 bndcl bnd1, [0x399]
153 bndcl bnd1, [r9+0x3]
154 bndcl bnd1, [rax+0x3]
155 bndcl bnd1, [1*r12+0x3]
156 bndcl bnd1, [rax+rcx]
157 bndcl bnd1, [r11+1*rax+0x3]
158 bndcl bnd1, [rbx+1*r9+0x3]
159
160 ### bndcu
161 bndcu bnd1, [r11]
162 bndcu bnd1, [rax]
163 bndcu bnd1, r11
164 bndcu bnd1, rcx
165 bndcu bnd1, [0x399]
166 bndcu bnd1, [r9+0x3]
167 bndcu bnd1, [rax+0x3]
168 bndcu bnd1, [1*r12+0x3]
169 bndcu bnd1, [rax+rcx]
170 bndcu bnd1, [r11+1*rax+0x3]
171 bndcu bnd1, [rbx+1*r9+0x3]
172
173 ### bndcn
174 bndcn bnd1, [r11]
175 bndcn bnd1, [rax]
176 bndcn bnd1, r11
177 bndcn bnd1, rcx
178 bndcn bnd1, [0x399]
179 bndcn bnd1, [r9+0x3]
180 bndcn bnd1, [rax+0x3]
181 bndcn bnd1, [1*r9+0x3]
182 bndcn bnd1, [rax+rcx]
183 bndcn bnd1, [r11+1*rax+0x3]
184 bndcn bnd1, [rbx+1*r9+0x3]
185
186 ### bndstx
187 bndstx [rax+rbx*1+0x3], bnd0
188 bndstx [rbx+rdx+3], bnd2
189 bndstx [r12+0x399], bnd3
190 bndstx [r11+0x1234], bnd1
191 bndstx [rbx+0x1234], bnd2
192 bndstx [1*rbx+3], bnd2
193 bndstx [1*r12+3], bnd2
194 bndstx [rdx], bnd1
195
196 ### bndldx
197 bndldx bnd0, [rax+rbx*1+0x3]
198 bndldx bnd2, [rbx+rdx+3]
199 bndldx bnd3, [r12+0x399]
200 bndldx bnd1, [r11+0x1234]
201 bndldx bnd2, [rbx+0x1234]
202 bndldx bnd2, [1*rbx+3]
203 bndldx bnd2, [1*r12+3]
204 bndldx bnd1, [rdx]
205
206 ### bnd
207 bnd call foo
208 bnd call rax
209 bnd call r11
210 bnd je foo
211 bnd jmp foo
212 bnd jmp rcx
213 bnd jmp r12
214 bnd ret
215
216 foo: bnd ret
217
218 .att_syntax prefix
219 bad:
220 # bndldx (%rax),(bad)
221 .insn 0x0f1a, (%rax), %esi
222
223 # bndmov (bad),%bnd0
224 .insn 0x660f1a, %esp, %bnd0
225
226 # bndmov with REX.B set
227 .insn 0x660f1a, %r8d, %bnd0
228
229 # bndmov with REX.R set
230 .insn 0x660f1a, %bnd0, %r8d
231
232 # bndmk (bad),%bnd0
233 .insn 0xf30f1b, -0x6f6f6f70(%rip), %bnd0