i386: Add tests for -malign-branch-boundary and -malign-branch
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / mpx.s
1 # MPX instructions
2 .allow_index_reg
3 .text
4 start:
5 ### bndmk
6 bndmk (%eax), %bnd1
7 bndmk (0x399), %bnd1
8 bndmk 0x3(%edx), %bnd1
9 bndmk (%eax,%ecx), %bnd1
10 bndmk (,%ecx,1), %bnd1
11 bndmk 0x3(%ecx,%eax,1), %bnd1
12
13 ### bndmov
14 bndmov (%eax), %bnd1
15 bndmov (0x399), %bnd1
16 bndmov 0x3(%edx), %bnd2
17 bndmov (%eax,%edx), %bnd2
18 bndmov (,%eax,1), %bnd2
19 bndmov 0x3(%ecx,%eax,1), %bnd1
20 bndmov %bnd2, %bnd0
21
22 bndmov %bnd1, (%eax)
23 bndmov %bnd1, (0x399)
24 bndmov %bnd2, 0x3(%edx)
25 bndmov %bnd2, (%eax,%edx)
26 bndmov %bnd2, (,%eax,1)
27 bndmov %bnd1, 0x3(%ecx,%eax,1)
28 bndmov %bnd0, %bnd2
29
30 ### bndcl
31 bndcl (%ecx), %bnd1
32 bndcl %ecx, %bnd1
33 bndcl (0x399), %bnd1
34 bndcl 0x3(%edx), %bnd1
35 bndcl (%eax,%ecx), %bnd1
36 bndcl (,%ecx,1), %bnd1
37 bndcl 0x3(%ecx,%eax,1), %bnd1
38
39 ### bndcu
40 bndcu (%ecx), %bnd1
41 bndcu %ecx, %bnd1
42 bndcu (0x399), %bnd1
43 bndcu 0x3(%edx), %bnd1
44 bndcu (%eax,%ecx), %bnd1
45 bndcu (,%ecx,1), %bnd1
46 bndcu 0x3(%ecx,%eax,1), %bnd1
47
48 ### bndcn
49 bndcn (%ecx), %bnd1
50 bndcn %ecx, %bnd1
51 bndcn (0x399), %bnd1
52 bndcn 0x3(%edx), %bnd1
53 bndcn (%eax,%ecx), %bnd1
54 bndcn (,%ecx,1), %bnd1
55 bndcn 0x3(%ecx,%eax,1), %bnd1
56
57 ### bndstx
58 bndstx %bnd0, 0x3(%eax,%ebx,1)
59 bndstx %bnd2, 3(%ebx,%edx)
60 bndstx %bnd2, 3(,%edx,1)
61 bndstx %bnd3, 0x399(%edx)
62 bndstx %bnd2, 0x1234(%ebx)
63 bndstx %bnd2, 3(%ebx,1)
64 bndstx %bnd1, (%edx)
65
66 ### bndldx
67 bndldx 0x3(%eax,%ebx,1), %bnd0
68 bndldx 3(%ebx,%edx), %bnd2
69 bndldx 3(,%edx,1), %bnd2
70 bndldx 0x399(%edx), %bnd3
71 bndldx 0x1234(%ebx), %bnd2
72 bndldx 3(%ebx,1), %bnd2
73 bndldx (%edx), %bnd1
74
75 ### bnd
76 bnd call foo
77 bnd call *(%eax)
78 bnd je foo
79 bnd jmp foo
80 bnd jmp *(%ecx)
81 bnd ret
82
83 .intel_syntax noprefix
84 bndmk bnd1, [eax]
85 bndmk bnd1, [0x399]
86 bndmk bnd1, [ecx+0x3]
87 bndmk bnd1, [eax+ecx]
88 bndmk bnd1, [ecx*1]
89 bndmk bnd1, [edx+1*eax+0x3]
90
91 ### bndmov
92 bndmov bnd1, [eax]
93 bndmov bnd1, [0x399]
94 bndmov bnd1, [ecx+0x3]
95 bndmov bnd1, [eax+ecx]
96 bndmov bnd1, [ecx*1]
97 bndmov bnd1, [edx+1*eax+0x3]
98 bndmov bnd0, bnd1
99
100 bndmov [eax], bnd1
101 bndmov [0x399], bnd1
102 bndmov [ecx+0x3], bnd1
103 bndmov [eax+ecx], bnd1
104 bndmov [ecx*1], bnd1
105 bndmov [edx+1*eax+0x3], bnd1
106 bndmov bnd1, bnd0
107
108 ### bndcl
109 bndcl bnd1, [eax]
110 bndcl bnd1, ecx
111 bndcl bnd1, [0x399]
112 bndcl bnd1, [ecx+0x3]
113 bndcl bnd1, [eax+ecx]
114 bndcl bnd1, [ecx*1]
115 bndcl bnd1, [edx+1*eax+0x3]
116
117 ### bndcu
118 bndcu bnd1, [eax]
119 bndcu bnd1, ecx
120 bndcu bnd1, [0x399]
121 bndcu bnd1, [ecx+0x3]
122 bndcu bnd1, [eax+ecx]
123 bndcu bnd1, [ecx*1]
124 bndcu bnd1, [edx+1*eax+0x3]
125
126 ### bndcn
127 bndcn bnd1, [eax]
128 bndcn bnd1, ecx
129 bndcn bnd1, [0x399]
130 bndcn bnd1, [ecx+0x3]
131 bndcn bnd1, [eax+ecx]
132 bndcn bnd1, [ecx*1]
133 bndcn bnd1, [edx+1*eax+0x3]
134
135 ### bndstx
136 bndstx [eax+ebx*1+0x3], bnd0
137 bndstx [ebx+edx+3], bnd2
138 bndstx [ecx*1], bnd2
139 bndstx [edx+0x399], bnd3
140 bndstx [1*ebx+3], bnd2
141 bndstx [edx], bnd1
142
143 ### bndldx
144 bndldx bnd0, [eax+ebx*1+0x3]
145 bndldx bnd2, [ebx+edx+3]
146 bndldx bnd2, [ecx*1]
147 bndldx bnd3, [edx+0x399]
148 bndldx bnd2, [1*ebx+3]
149 bndldx bnd1, [edx]
150
151 ### bnd
152 bnd call foo
153 bnd call eax
154 bnd je foo
155 bnd jmp foo
156 bnd jmp ecx
157 bnd ret
158
159 foo: bnd ret
160
161 bad:
162 # bndldx (%eax),(bad)
163 .byte 0x0f
164 .byte 0x1a
165 .byte 0x30
166
167 # bndmov (bad),%bnd0
168 .byte 0x66
169 .byte 0x0f
170 .byte 0x1a
171 .byte 0xc4
This page took 0.035375 seconds and 4 git commands to generate.