Commit | Line | Data |
---|---|---|
5f74bc13 CD |
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 |