x86-64/MPX: bndmk, bndldx, and bndstx don't allow RIP-relative addressing
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-mpx-inval-2.l
1 .*: Assembler messages:
2 .*:6: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
3 .*:7: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
4 .*:8: Error: `\(%rip\)' cannot be used here
5 .*:9: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
6 .*:12: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
7 .*:13: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
8 .*:15: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
9 .*:16: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
10 .*:19: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
11 .*:20: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
12 .*:23: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
13 .*:24: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
14 .*:27: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
15 .*:28: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
16 .*:31: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
17 .*:32: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
18 .*:33: Warning: register scaling is being ignored here
19 .*:34: Error: `base\(%rip\)' cannot be used here
20 .*:35: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
21 .*:38: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
22 .*:39: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
23 .*:40: Warning: register scaling is being ignored here
24 .*:41: Error: `base\(%rip\)' cannot be used here
25 .*:42: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
26 .*:45: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
27 .*:46: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
28 .*:47: Error: `\[rip\]' cannot be used here
29 .*:48: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
30 .*:51: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
31 .*:52: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
32 .*:54: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
33 .*:55: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
34 .*:58: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
35 .*:59: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
36 .*:62: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
37 .*:63: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
38 .*:66: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
39 .*:67: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
40 .*:70: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
41 .*:71: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
42 .*:72: Warning: register scaling is being ignored here
43 .*:73: Error: `\[rip\+base\]' cannot be used here
44 .*:74: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
45 .*:77: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
46 .*:78: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
47 .*:79: Warning: register scaling is being ignored here
48 .*:80: Error: `\[rip\+base\]' cannot be used here
49 .*:81: Error: 32-bit address isn't allowed in 64-bit MPX instructions.
50 GAS LISTING .*
51
52
53 [       ]*1[    ]+\# MPX instructions
54 [       ]*2[    ]+\.allow_index_reg
55 [       ]*3[    ]+\.text
56 [       ]*4[    ]+
57 [       ]*5[    ]+\#\#\# bndmk
58 [       ]*6[    ]+\?\?\?\? 67F30F1B             bndmk \(%eax\), %bnd1
59 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
60 [       ]*6[    ]+08
61 [       ]*7[    ]+\?\?\?\? 67F30F1B             bndmk 0x3\(%ecx,%ebx,1\), %bnd1
62 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
63 [       ]*7[    ]+4C1903
64 [       ]*8[    ]+bndmk \(%rip\), %bnd3
65 [       ]*9[    ]+\?\?\?\? 67F30F1B             bndmk \(%eip\), %bnd2
66 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
67 [       ]*9[    ]+15000000 
68 [       ]*9[    ]+00
69 [       ]*10[   ]+
70 [       ]*11[   ]+\#\#\# bndmov
71 [       ]*12[   ]+\?\?\?\? 6766410F             bndmov \(%r8d\), %bnd1
72 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
73 [       ]*12[   ]+1A08
74 [       ]*13[   ]+\?\?\?\? 6766410F             bndmov 0x3\(%r9d,%edx,1\), %bnd1
75 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
76 [       ]*13[   ]+1A4C1103 
77 [       ]*14[   ]+
78 [       ]*15[   ]+\?\?\?\? 67660F1B             bndmov %bnd1, \(%eax\)
79 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
80 [       ]*15[   ]+08
81 [       ]*16[   ]+\?\?\?\? 67660F1B             bndmov %bnd1, 0x3\(%ecx,%eax,1\)
82 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
83 [       ]*16[   ]+4C0103
84 [       ]*17[   ]+
85 [       ]*18[   ]+\#\#\# bndcl
86 [       ]*19[   ]+\?\?\?\? 67F30F1A             bndcl \(%ecx\), %bnd1
87 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
88 [       ]*19[   ]+09
89 [       ]*20[   ]+\?\?\?\? 67F30F1A             bndcl 0x3\(%ecx,%eax,1\), %bnd1
90 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
91 [       ]*20[   ]+4C0103
92 [       ]*21[   ]+
93 [       ]*22[   ]+\#\#\# bndcu
94 [       ]*23[   ]+\?\?\?\? 67F20F1A             bndcu \(%ecx\), %bnd1
95 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
96 [       ]*23[   ]+09
97 [       ]*24[   ]+\?\?\?\? 67F20F1A             bndcu 0x3\(%ecx,%eax,1\), %bnd1
98 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
99 [       ]*24[   ]+4C0103
100 [       ]*25[   ]+
101 [       ]*26[   ]+\#\#\# bndcn
102 [       ]*27[   ]+\?\?\?\? 67F20F1B             bndcn \(%ecx\), %bnd1
103 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
104 [       ]*27[   ]+09
105 [       ]*28[   ]+\?\?\?\? 67F20F1B             bndcn 0x3\(%ecx,%eax,1\), %bnd1
106 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
107 [       ]*28[   ]+4C0103
108 [       ]*29[   ]+
109 [       ]*30[   ]+\#\#\# bndstx
110 \fGAS LISTING .*
111
112
113 [       ]*31[   ]+\?\?\?\? 670F1B44             bndstx %bnd0, 0x3\(%eax,%ebx,1\)
114 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
115 [       ]*31[   ]+1803
116 [       ]*32[   ]+\?\?\?\? 670F1B53             bndstx %bnd2, 3\(%ebx,1\)
117 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
118 [       ]*32[   ]+03
119 [       ]*33[   ]+\?\?\?\? 410F1B0C             bndstx %bnd1, \(%r15,%rax,2\)
120 .*  Warning: register scaling is being ignored here
121 [       ]*33[   ]+47
122 [       ]*34[   ]+bndstx %bnd3, base\(%rip\)
123 [       ]*35[   ]+\?\?\?\? 670F1B0D             bndstx %bnd1, base\(%eip\)
124 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
125 [       ]*35[   ]+00000000 
126 [       ]*36[   ]+
127 [       ]*37[   ]+\#\#\# bndldx
128 [       ]*38[   ]+\?\?\?\? 670F1A44             bndldx 0x3\(%eax,%ebx,1\), %bnd0
129 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
130 [       ]*38[   ]+1803
131 [       ]*39[   ]+\?\?\?\? 670F1A53             bndldx 3\(%ebx,1\), %bnd2
132 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
133 [       ]*39[   ]+03
134 [       ]*40[   ]*\?\?\?\? 420F1A1C             bndldx \(%rax,%r15,4\), %bnd3
135 .*  Warning: register scaling is being ignored here
136 [       ]*40[   ]*B8
137 [       ]*41[   ]*bndldx base\(%rip\), %bnd1
138 [       ]*42[   ]*\?\?\?\? 670F1A1D             bndldx base\(%eip\), %bnd3
139 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
140 [       ]*42[   ]*00000000 
141 [       ]*43[   ]+
142 [       ]*44[   ]+\.intel_syntax noprefix
143 [       ]*45[   ]+\?\?\?\? 67F30F1B             bndmk bnd1, \[eax\]
144 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
145 [       ]*45[   ]+08
146 [       ]*46[   ]+\?\?\?\? 67F30F1B             bndmk bnd1, \[edx\+1\*eax\+0x3\]
147 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
148 [       ]*46[   ]+4C0203
149 [       ]*47[   ]*bndmk bnd3, \[rip\]
150 [       ]*48[   ]*\?\?\?\? 67F30F1B             bndmk bnd2, \[eip\]
151 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions.
152 [       ]*48[   ]*15000000 
153 [       ]*48[   ]*00
154 [       ]*49[   ]+
155 [       ]*50[   ]+\#\#\# bndmov
156 [       ]*51[   ]+\?\?\?\? 67660F1A             bndmov bnd1, \[eax\]
157 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
158 [       ]*51[   ]+08
159 [       ]*52[   ]+\?\?\?\? 67660F1A             bndmov bnd1, \[edx\+1\*eax\+0x3\]
160 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
161 [       ]*52[   ]+4C0203
162 [       ]*53[   ]+
163 [       ]*54[   ]+\?\?\?\? 67660F1B             bndmov \[eax\], bnd1
164 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
165 [       ]*54[   ]+08
166 [       ]*55[   ]+\?\?\?\? 67660F1B             bndmov \[edx\+1\*eax\+0x3\], bnd1
167 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
168 [       ]*55[   ]+4C0203
169 [       ]*56[   ]+
170 \fGAS LISTING .*
171
172
173 [       ]*57[   ]+\#\#\# bndcl
174 [       ]*58[   ]+\?\?\?\? 67F30F1A             bndcl bnd1, \[eax\]
175 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
176 [       ]*58[   ]+08
177 [       ]*59[   ]+\?\?\?\? 67F30F1A             bndcl bnd1, \[edx\+1\*eax\+0x3\]
178 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
179 [       ]*59[   ]+4C0203
180 [       ]*60[   ]+
181 [       ]*61[   ]+\#\#\# bndcu
182 [       ]*62[   ]+\?\?\?\? 67F20F1A             bndcu bnd1, \[eax\]
183 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
184 [       ]*62[   ]+08
185 [       ]*63[   ]+\?\?\?\? 67F20F1A             bndcu bnd1, \[edx\+1\*eax\+0x3\]
186 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
187 [       ]*63[   ]+4C0203
188 [       ]*64[   ]+
189 [       ]*65[   ]+\#\#\# bndcn
190 [       ]*66[   ]+\?\?\?\? 67F20F1B             bndcn bnd1, \[eax\]
191 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
192 [       ]*66[   ]+08
193 [       ]*67[   ]+\?\?\?\? 67F20F1B             bndcn bnd1, \[edx\+1\*eax\+0x3\]
194 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
195 [       ]*67[   ]+4C0203
196 [       ]*68[   ]+
197 [       ]*69[   ]+\#\#\# bndstx
198 [       ]*70[   ]+\?\?\?\? 670F1B44             bndstx \[eax\+ebx\*1\+0x3\], bnd0
199 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
200 [       ]*70[   ]+1803
201 [       ]*71[   ]+\?\?\?\? 670F1B14             bndstx \[1\*ebx\+3\], bnd2
202 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
203 [       ]*71[   ]+1D030000 
204 [       ]*71[   ]+00
205 [       ]*72[   ]+\?\?\?\? 410F1B14             bndstx \[r8\+rdi\*4\], bnd2
206 .*  Warning: register scaling is being ignored here
207 [       ]*72[   ]+B8
208 [       ]*73[   ]+bndstx \[rip\+base\], bnd1
209 [       ]*74[   ]+\?\?\?\? 670F1B1D             bndstx \[eip\+base\], bnd3
210 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
211 [       ]*74[   ]+00000000 
212 [       ]*75[   ]+
213 [       ]*76[   ]+\#\#\# bndldx
214 [       ]*77[   ]+\?\?\?\? 670F1A44             bndldx bnd0, \[eax\+ebx\*1\+0x3\]
215 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
216 [       ]*77[   ]+1803
217 [       ]*78[   ]+\?\?\?\? 670F1A14             bndldx bnd2, \[1\*ebx\+3\]
218 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
219 [       ]*78[   ]+1D030000 
220 [       ]*78[   ]+00
221 [       ]*79[   ]+\?\?\?\? 420F1A14             bndldx bnd2, \[rdi\+r8\*8\]
222 .*  Warning: register scaling is being ignored here
223 [       ]*79[   ]+C7
224 [       ]*80[   ]+bndldx bnd1, \[rip\+base\]
225 [       ]*81[   ]+\?\?\?\? 670F1A1D             bndldx bnd3, \[eip\+base\]
226 .*  Error: 32-bit address isn't allowed in 64-bit MPX instructions\.
227 [       ]*81      00000000 
228 #pass