Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: test/cctest/test-disasm-mips64.cc

Issue 426863006: MIPS64: Add support for architecture revision 6. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 "00a6202f dsubu a0, a1, a2"); 115 "00a6202f dsubu a0, a1, a2");
116 COMPARE(subu(a6, a7, t0), 116 COMPARE(subu(a6, a7, t0),
117 "016c5023 subu a6, a7, t0"); 117 "016c5023 subu a6, a7, t0");
118 COMPARE(dsubu(a6, a7, t0), 118 COMPARE(dsubu(a6, a7, t0),
119 "016c502f dsubu a6, a7, t0"); 119 "016c502f dsubu a6, a7, t0");
120 COMPARE(subu(v0, v1, s0), 120 COMPARE(subu(v0, v1, s0),
121 "00701023 subu v0, v1, s0"); 121 "00701023 subu v0, v1, s0");
122 COMPARE(dsubu(v0, v1, s0), 122 COMPARE(dsubu(v0, v1, s0),
123 "0070102f dsubu v0, v1, s0"); 123 "0070102f dsubu v0, v1, s0");
124 124
125 COMPARE(mult(a0, a1), 125 if (kArchVariant != kMips64r6) {
126 "00850018 mult a0, a1"); 126 COMPARE(mult(a0, a1),
127 COMPARE(dmult(a0, a1), 127 "00850018 mult a0, a1");
128 "0085001c dmult a0, a1"); 128 COMPARE(dmult(a0, a1),
129 COMPARE(mult(a6, a7), 129 "0085001c dmult a0, a1");
130 "014b0018 mult a6, a7"); 130 COMPARE(mult(a6, a7),
131 COMPARE(dmult(a6, a7), 131 "014b0018 mult a6, a7");
132 "014b001c dmult a6, a7"); 132 COMPARE(dmult(a6, a7),
133 COMPARE(mult(v0, v1), 133 "014b001c dmult a6, a7");
134 "00430018 mult v0, v1"); 134 COMPARE(mult(v0, v1),
135 COMPARE(dmult(v0, v1), 135 "00430018 mult v0, v1");
136 "0043001c dmult v0, v1"); 136 COMPARE(dmult(v0, v1),
137 "0043001c dmult v0, v1");
137 138
138 COMPARE(multu(a0, a1), 139 COMPARE(multu(a0, a1),
139 "00850019 multu a0, a1"); 140 "00850019 multu a0, a1");
140 COMPARE(dmultu(a0, a1), 141 COMPARE(dmultu(a0, a1),
141 "0085001d dmultu a0, a1"); 142 "0085001d dmultu a0, a1");
142 COMPARE(multu(a6, a7), 143 COMPARE(multu(a6, a7),
143 "014b0019 multu a6, a7"); 144 "014b0019 multu a6, a7");
144 COMPARE(dmultu(a6, a7), 145 COMPARE(dmultu(a6, a7),
145 "014b001d dmultu a6, a7"); 146 "014b001d dmultu a6, a7");
146 COMPARE(multu(v0, v1), 147 COMPARE(multu(v0, v1),
147 "00430019 multu v0, v1"); 148 "00430019 multu v0, v1");
148 COMPARE(dmultu(v0, v1), 149 COMPARE(dmultu(v0, v1),
149 "0043001d dmultu v0, v1"); 150 "0043001d dmultu v0, v1");
150 151
151 COMPARE(div(a0, a1), 152 COMPARE(div(a0, a1),
152 "0085001a div a0, a1"); 153 "0085001a div a0, a1");
153 COMPARE(div(a6, a7), 154 COMPARE(div(a6, a7),
154 "014b001a div a6, a7"); 155 "014b001a div a6, a7");
155 COMPARE(div(v0, v1), 156 COMPARE(div(v0, v1),
156 "0043001a div v0, v1"); 157 "0043001a div v0, v1");
157 COMPARE(ddiv(a0, a1), 158 COMPARE(ddiv(a0, a1),
158 "0085001e ddiv a0, a1"); 159 "0085001e ddiv a0, a1");
159 COMPARE(ddiv(a6, a7), 160 COMPARE(ddiv(a6, a7),
160 "014b001e ddiv a6, a7"); 161 "014b001e ddiv a6, a7");
161 COMPARE(ddiv(v0, v1), 162 COMPARE(ddiv(v0, v1),
162 "0043001e ddiv v0, v1"); 163 "0043001e ddiv v0, v1");
163 164
164 COMPARE(divu(a0, a1), 165 COMPARE(divu(a0, a1),
165 "0085001b divu a0, a1"); 166 "0085001b divu a0, a1");
166 COMPARE(divu(a6, a7), 167 COMPARE(divu(a6, a7),
167 "014b001b divu a6, a7"); 168 "014b001b divu a6, a7");
168 COMPARE(divu(v0, v1), 169 COMPARE(divu(v0, v1),
169 "0043001b divu v0, v1"); 170 "0043001b divu v0, v1");
170 COMPARE(ddivu(a0, a1), 171 COMPARE(ddivu(a0, a1),
171 "0085001f ddivu a0, a1"); 172 "0085001f ddivu a0, a1");
172 COMPARE(ddivu(a6, a7), 173 COMPARE(ddivu(a6, a7),
173 "014b001f ddivu a6, a7"); 174 "014b001f ddivu a6, a7");
174 COMPARE(ddivu(v0, v1), 175 COMPARE(ddivu(v0, v1),
175 "0043001f ddivu v0, v1"); 176 "0043001f ddivu v0, v1");
176 177
177 if (kArchVariant != kLoongson) { 178 if (kArchVariant != kLoongson) {
179 COMPARE(mul(a0, a1, a2),
180 "70a62002 mul a0, a1, a2");
181 COMPARE(mul(a6, a7, t0),
182 "716c5002 mul a6, a7, t0");
183 COMPARE(mul(v0, v1, s0),
184 "70701002 mul v0, v1, s0");
185 }
186 } else { // MIPS64r6.
178 COMPARE(mul(a0, a1, a2), 187 COMPARE(mul(a0, a1, a2),
179 "70a62002 mul a0, a1, a2"); 188 "00a62098 mul a0, a1, a2");
180 COMPARE(mul(a6, a7, t0), 189 COMPARE(muh(a0, a1, a2),
181 "716c5002 mul a6, a7, t0"); 190 "00a620d8 muh a0, a1, a2");
182 COMPARE(mul(v0, v1, s0), 191 COMPARE(dmul(a0, a1, a2),
183 "70701002 mul v0, v1, s0"); 192 "00a6209c dmul a0, a1, a2");
193 COMPARE(dmuh(a0, a1, a2),
194 "00a620dc dmuh a0, a1, a2");
195 COMPARE(mul(a5, a6, a7),
196 "014b4898 mul a5, a6, a7");
197 COMPARE(muh(a5, a6, a7),
198 "014b48d8 muh a5, a6, a7");
199 COMPARE(dmul(a5, a6, a7),
200 "014b489c dmul a5, a6, a7");
201 COMPARE(dmuh(a5, a6, a7),
202 "014b48dc dmuh a5, a6, a7");
203 COMPARE(mul(v0, v1, a0),
204 "00641098 mul v0, v1, a0");
205 COMPARE(muh(v0, v1, a0),
206 "006410d8 muh v0, v1, a0");
207 COMPARE(dmul(v0, v1, a0),
208 "0064109c dmul v0, v1, a0");
209 COMPARE(dmuh(v0, v1, a0),
210 "006410dc dmuh v0, v1, a0");
211
212 COMPARE(mulu(a0, a1, a2),
213 "00a62099 mulu a0, a1, a2");
214 COMPARE(muhu(a0, a1, a2),
215 "00a620d9 muhu a0, a1, a2");
216 COMPARE(dmulu(a0, a1, a2),
217 "00a6209d dmulu a0, a1, a2");
218 COMPARE(dmuhu(a0, a1, a2),
219 "00a620dd dmuhu a0, a1, a2");
220 COMPARE(mulu(a5, a6, a7),
221 "014b4899 mulu a5, a6, a7");
222 COMPARE(muhu(a5, a6, a7),
223 "014b48d9 muhu a5, a6, a7");
224 COMPARE(dmulu(a5, a6, a7),
225 "014b489d dmulu a5, a6, a7");
226 COMPARE(dmuhu(a5, a6, a7),
227 "014b48dd dmuhu a5, a6, a7");
228 COMPARE(mulu(v0, v1, a0),
229 "00641099 mulu v0, v1, a0");
230 COMPARE(muhu(v0, v1, a0),
231 "006410d9 muhu v0, v1, a0");
232 COMPARE(dmulu(v0, v1, a0),
233 "0064109d dmulu v0, v1, a0");
234 COMPARE(dmuhu(v0, v1, a0),
235 "006410dd dmuhu v0, v1, a0");
236
237 COMPARE(div(a0, a1, a2),
238 "00a6209a div a0, a1, a2");
239 COMPARE(mod(a0, a1, a2),
240 "00a620da mod a0, a1, a2");
241 COMPARE(ddiv(a0, a1, a2),
242 "00a6209e ddiv a0, a1, a2");
243 COMPARE(dmod(a0, a1, a2),
244 "00a620de dmod a0, a1, a2");
245 COMPARE(div(a5, a6, a7),
246 "014b489a div a5, a6, a7");
247 COMPARE(mod(a5, a6, a7),
248 "014b48da mod a5, a6, a7");
249 COMPARE(ddiv(a5, a6, a7),
250 "014b489e ddiv a5, a6, a7");
251 COMPARE(dmod(a5, a6, a7),
252 "014b48de dmod a5, a6, a7");
253 COMPARE(div(v0, v1, a0),
254 "0064109a div v0, v1, a0");
255 COMPARE(mod(v0, v1, a0),
256 "006410da mod v0, v1, a0");
257 COMPARE(ddiv(v0, v1, a0),
258 "0064109e ddiv v0, v1, a0");
259 COMPARE(dmod(v0, v1, a0),
260 "006410de dmod v0, v1, a0");
261
262 COMPARE(divu(a0, a1, a2),
263 "00a6209b divu a0, a1, a2");
264 COMPARE(modu(a0, a1, a2),
265 "00a620db modu a0, a1, a2");
266 COMPARE(ddivu(a0, a1, a2),
267 "00a6209f ddivu a0, a1, a2");
268 COMPARE(dmodu(a0, a1, a2),
269 "00a620df dmodu a0, a1, a2");
270 COMPARE(divu(a5, a6, a7),
271 "014b489b divu a5, a6, a7");
272 COMPARE(modu(a5, a6, a7),
273 "014b48db modu a5, a6, a7");
274 COMPARE(ddivu(a5, a6, a7),
275 "014b489f ddivu a5, a6, a7");
276 COMPARE(dmodu(a5, a6, a7),
277 "014b48df dmodu a5, a6, a7");
278 COMPARE(divu(v0, v1, a0),
279 "0064109b divu v0, v1, a0");
280 COMPARE(modu(v0, v1, a0),
281 "006410db modu v0, v1, a0");
282 COMPARE(ddivu(v0, v1, a0),
283 "0064109f ddivu v0, v1, a0");
284 COMPARE(dmodu(v0, v1, a0),
285 "006410df dmodu v0, v1, a0");
286
287 COMPARE(bovc(a0, a0, static_cast<int16_t>(0)),
288 "20840000 bovc a0, a0, 0");
289 COMPARE(bovc(a1, a0, static_cast<int16_t>(0)),
290 "20a40000 bovc a1, a0, 0");
291 COMPARE(bovc(a1, a0, 32767),
292 "20a47fff bovc a1, a0, 32767");
293 COMPARE(bovc(a1, a0, -32768),
294 "20a48000 bovc a1, a0, -32768");
295
296 COMPARE(bnvc(a0, a0, static_cast<int16_t>(0)),
297 "60840000 bnvc a0, a0, 0");
298 COMPARE(bnvc(a1, a0, static_cast<int16_t>(0)),
299 "60a40000 bnvc a1, a0, 0");
300 COMPARE(bnvc(a1, a0, 32767),
301 "60a47fff bnvc a1, a0, 32767");
302 COMPARE(bnvc(a1, a0, -32768),
303 "60a48000 bnvc a1, a0, -32768");
304
305 COMPARE(beqzc(a0, 0),
306 "d8800000 beqzc a0, 0x0");
307 COMPARE(beqzc(a0, 0xfffff), // 0x0fffff == 1048575.
308 "d88fffff beqzc a0, 0xfffff");
309 COMPARE(beqzc(a0, 0x100000), // 0x100000 == -1048576.
310 "d8900000 beqzc a0, 0x100000");
311
312 COMPARE(bnezc(a0, 0),
313 "f8800000 bnezc a0, 0x0");
314 COMPARE(bnezc(a0, 0xfffff), // 0x0fffff == 1048575.
315 "f88fffff bnezc a0, 0xfffff");
316 COMPARE(bnezc(a0, 0x100000), // 0x100000 == -1048576.
317 "f8900000 bnezc a0, 0x100000");
184 } 318 }
185 319
186 COMPARE(addiu(a0, a1, 0x0), 320 COMPARE(addiu(a0, a1, 0x0),
187 "24a40000 addiu a0, a1, 0"); 321 "24a40000 addiu a0, a1, 0");
188 COMPARE(addiu(s0, s1, 32767), 322 COMPARE(addiu(s0, s1, 32767),
189 "26307fff addiu s0, s1, 32767"); 323 "26307fff addiu s0, s1, 32767");
190 COMPARE(addiu(a6, a7, -32768), 324 COMPARE(addiu(a6, a7, -32768),
191 "256a8000 addiu a6, a7, -32768"); 325 "256a8000 addiu a6, a7, -32768");
192 COMPARE(addiu(v0, v1, -1), 326 COMPARE(addiu(v0, v1, -1),
193 "2462ffff addiu v0, v1, -1"); 327 "2462ffff addiu v0, v1, -1");
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 "007d1001 movt v0, v1, 7"); 639 "007d1001 movt v0, v1, 7");
506 COMPARE(movf(a0, a1, 0), 640 COMPARE(movf(a0, a1, 0),
507 "00a02001 movf a0, a1, 0"); 641 "00a02001 movf a0, a1, 0");
508 COMPARE(movf(s0, s1, 4), 642 COMPARE(movf(s0, s1, 4),
509 "02308001 movf s0, s1, 4"); 643 "02308001 movf s0, s1, 4");
510 COMPARE(movf(a6, a7, 5), 644 COMPARE(movf(a6, a7, 5),
511 "01745001 movf a6, a7, 5"); 645 "01745001 movf a6, a7, 5");
512 COMPARE(movf(v0, v1, 6), 646 COMPARE(movf(v0, v1, 6),
513 "00781001 movf v0, v1, 6"); 647 "00781001 movf v0, v1, 6");
514 648
515 COMPARE(clz(a0, a1), 649 if (kArchVariant == kMips64r6) {
516 "70a42020 clz a0, a1"); 650 COMPARE(clz(a0, a1),
517 COMPARE(clz(s6, s7), 651 "00a02050 clz a0, a1");
518 "72f6b020 clz s6, s7"); 652 COMPARE(clz(s6, s7),
519 COMPARE(clz(v0, v1), 653 "02e0b050 clz s6, s7");
520 "70621020 clz v0, v1"); 654 COMPARE(clz(v0, v1),
655 "00601050 clz v0, v1");
656 } else {
657 COMPARE(clz(a0, a1),
658 "70a42020 clz a0, a1");
659 COMPARE(clz(s6, s7),
660 "72f6b020 clz s6, s7");
661 COMPARE(clz(v0, v1),
662 "70621020 clz v0, v1");
663 }
521 } 664 }
522 665
523 if (kArchVariant == kMips64r2) { 666 if (kArchVariant == kMips64r2) {
524 COMPARE(ins_(a0, a1, 31, 1), 667 COMPARE(ins_(a0, a1, 31, 1),
525 "7ca4ffc4 ins a0, a1, 31, 1"); 668 "7ca4ffc4 ins a0, a1, 31, 1");
526 COMPARE(ins_(s6, s7, 30, 2), 669 COMPARE(ins_(s6, s7, 30, 2),
527 "7ef6ff84 ins s6, s7, 30, 2"); 670 "7ef6ff84 ins s6, s7, 30, 2");
528 COMPARE(ins_(v0, v1, 0, 32), 671 COMPARE(ins_(v0, v1, 0, 32),
529 "7c62f804 ins v0, v1, 0, 32"); 672 "7c62f804 ins v0, v1, 0, 32");
530 COMPARE(ext_(a0, a1, 31, 1), 673 COMPARE(ext_(a0, a1, 31, 1),
531 "7ca407c0 ext a0, a1, 31, 1"); 674 "7ca407c0 ext a0, a1, 31, 1");
532 COMPARE(ext_(s6, s7, 30, 2), 675 COMPARE(ext_(s6, s7, 30, 2),
533 "7ef60f80 ext s6, s7, 30, 2"); 676 "7ef60f80 ext s6, s7, 30, 2");
534 COMPARE(ext_(v0, v1, 0, 32), 677 COMPARE(ext_(v0, v1, 0, 32),
535 "7c62f800 ext v0, v1, 0, 32"); 678 "7c62f800 ext v0, v1, 0, 32");
536 } 679 }
537 680
538 VERIFY_RUN(); 681 VERIFY_RUN();
539 } 682 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698