Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / mips / mips64r2-ill.s
1 # source file to test illegal mips64r2 instructions
2
3         .set noreorder
4       .set noat
5
6       .text
7 text_label:
8
9       # dext macro position/size checks
10
11         # constraint: 0 <= pos < 64
12         dext    $4, $5, -1, 1           # error (position)
13         dext    $4, $5, 0, 1
14         dext    $4, $5, 63, 1
15         dext    $4, $5, 64, 1           # error (position)
16
17         # constraint: 0 < size <= 64
18         dext    $4, $5, 0, 0            # error (size)
19         dext    $4, $5, 0, 1
20         dext    $4, $5, 0, 64
21         dext    $4, $5, 0, 65           # error (size)
22
23         # constraint: 0 < (pos+size) <= 64
24         dext    $4, $5, 0, 1
25         dext    $4, $5, 0, 2
26         dext    $4, $5, 0, 63
27         dext    $4, $5, 0, 64
28         dext    $4, $5, 1, 1
29         dext    $4, $5, 1, 2
30         dext    $4, $5, 1, 63
31         dext    $4, $5, 1, 64           # error (size)
32         dext    $4, $5, 63, 1
33         dext    $4, $5, 63, 2           # error (size)
34         dext    $4, $5, 63, 63          # error (size)
35         dext    $4, $5, 63, 64          # error (size)
36
37       # dextm instruction position/size checks
38
39         # constraint: 0 <= pos < 32
40         dextm   $4, $5, -1, 33          # error (position)
41         dextm   $4, $5, 0, 33
42         dextm   $4, $5, 31, 33
43         dextm   $4, $5, 32, 33          # error (position)
44
45         # constraint: 32 < size <= 64
46         dextm   $4, $5, 0, 32           # error (size)
47         dextm   $4, $5, 0, 33
48         dextm   $4, $5, 0, 64
49         dextm   $4, $5, 0, 65           # error (size)
50
51         # constraint: 32 < (pos+size) <= 64
52         dextm   $4, $5, 0, 33
53         dextm   $4, $5, 0, 34
54         dextm   $4, $5, 0, 63
55         dextm   $4, $5, 0, 64
56         dextm   $4, $5, 1, 33
57         dextm   $4, $5, 1, 34
58         dextm   $4, $5, 1, 63
59         dextm   $4, $5, 1, 64           # error (size)
60         dextm   $4, $5, 31, 33
61         dextm   $4, $5, 31, 34          # error (size)
62         dextm   $4, $5, 31, 63          # error (size)
63         dextm   $4, $5, 31, 64          # error (size)
64
65       # dextu instruction position/size checks
66
67         # constraint: 32 <= pos < 64
68         dextu   $4, $5, 31, 1           # error (position)
69         dextu   $4, $5, 32, 1
70         dextu   $4, $5, 63, 1
71         dextu   $4, $5, 64, 1           # error (position)
72
73         # constraint: 0 < size <= 32
74         dextu   $4, $5, 32, 0           # error (size)
75         dextu   $4, $5, 32, 1
76         dextu   $4, $5, 32, 32
77         dextu   $4, $5, 32, 33          # error (size)
78
79         # constraint: 32 < (pos+size) <= 64
80         dextu   $4, $5, 32, 1
81         dextu   $4, $5, 32, 2
82         dextu   $4, $5, 32, 31
83         dextu   $4, $5, 32, 32
84         dextu   $4, $5, 33, 1
85         dextu   $4, $5, 33, 2
86         dextu   $4, $5, 33, 31
87         dextu   $4, $5, 33, 32          # error (size)
88         dextu   $4, $5, 63, 1
89         dextu   $4, $5, 63, 2           # error (size)
90         dextu   $4, $5, 63, 31          # error (size)
91         dextu   $4, $5, 63, 32          # error (size)
92
93       # dins macro position/size checks
94
95         # constraint: 0 <= pos < 64
96         dins    $4, $5, -1, 1           # error (position)
97         dins    $4, $5, 0, 1
98         dins    $4, $5, 63, 1
99         dins    $4, $5, 64, 1           # error (position)
100
101         # constraint: 0 < size <= 64
102         dins    $4, $5, 0, 0            # error (size)
103         dins    $4, $5, 0, 1
104         dins    $4, $5, 0, 64
105         dins    $4, $5, 0, 65           # error (size)
106
107         # constraint: 0 < (pos+size) <= 64
108         dins    $4, $5, 0, 1
109         dins    $4, $5, 0, 2
110         dins    $4, $5, 0, 63
111         dins    $4, $5, 0, 64
112         dins    $4, $5, 1, 1
113         dins    $4, $5, 1, 2
114         dins    $4, $5, 1, 63
115         dins    $4, $5, 1, 64           # error (size)
116         dins    $4, $5, 63, 1
117         dins    $4, $5, 63, 2           # error (size)
118         dins    $4, $5, 63, 63          # error (size)
119         dins    $4, $5, 63, 64          # error (size)
120
121       # dinsm instruction position/size checks
122
123         # constraint: 0 <= pos < 32
124         dinsm   $4, $5, -1, 33          # error (position)
125         dinsm   $4, $5, 0, 33
126         dinsm   $4, $5, 31, 33
127         dinsm   $4, $5, 32, 33          # error (position)
128
129         # constraint: 2 <= size <= 64
130         dinsm   $4, $5, 31, 1           # error (size)
131         dinsm   $4, $5, 31, 2
132         dinsm   $4, $5, 0, 64
133         dinsm   $4, $5, 0, 65           # error (size)
134
135         # constraint: 32 < (pos+size) <= 64
136         dinsm   $4, $5, 0, 2            # error (size)
137         dinsm   $4, $5, 0, 3            # error (size)
138         dinsm   $4, $5, 0, 63
139         dinsm   $4, $5, 0, 64
140         dinsm   $4, $5, 1, 2            # error (size)
141         dinsm   $4, $5, 1, 3            # error (size)
142         dinsm   $4, $5, 1, 63
143         dinsm   $4, $5, 1, 64           # error (size)
144         dinsm   $4, $5, 30, 2           # error (size)
145         dinsm   $4, $5, 30, 3
146         dinsm   $4, $5, 30, 63          # error (size)
147         dinsm   $4, $5, 30, 64          # error (size)
148         dinsm   $4, $5, 31, 2
149         dinsm   $4, $5, 31, 3
150         dinsm   $4, $5, 31, 63          # error (size)
151         dinsm   $4, $5, 31, 64          # error (size)
152
153       # dinsu instruction position/size checks
154
155         # constraint: 32 <= pos < 64
156         dinsu   $4, $5, 31, 1           # error (position)
157         dinsu   $4, $5, 32, 1
158         dinsu   $4, $5, 63, 1
159         dinsu   $4, $5, 64, 1           # error (position)
160
161         # constraint: 1 <= size <= 32
162         dinsu   $4, $5, 32, 0           # error (size)
163         dinsu   $4, $5, 32, 1
164         dinsu   $4, $5, 32, 32
165         dinsu   $4, $5, 32, 33          # error (size)
166
167         # constraint: 32 < (pos+size) <= 64
168         dinsu   $4, $5, 32, 1
169         dinsu   $4, $5, 32, 2
170         dinsu   $4, $5, 32, 31
171         dinsu   $4, $5, 32, 32
172         dinsu   $4, $5, 33, 1
173         dinsu   $4, $5, 33, 2
174         dinsu   $4, $5, 33, 31
175         dinsu   $4, $5, 33, 32          # error (size)
176         dinsu   $4, $5, 62, 1
177         dinsu   $4, $5, 62, 2
178         dinsu   $4, $5, 62, 31          # error (size)
179         dinsu   $4, $5, 62, 32          # error (size)
180         dinsu   $4, $5, 63, 1
181         dinsu   $4, $5, 63, 2           # error (size)
182         dinsu   $4, $5, 63, 31          # error (size)
183         dinsu   $4, $5, 63, 32          # error (size)
184
185 # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
186         .space  8