OLD | NEW |
1 // Copyright 2011 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 |
11 // with the distribution. | 11 // with the distribution. |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 COMPARE(div(v0, v1), | 141 COMPARE(div(v0, v1), |
142 "0043001a div v0, v1"); | 142 "0043001a div v0, v1"); |
143 | 143 |
144 COMPARE(divu(a0, a1), | 144 COMPARE(divu(a0, a1), |
145 "0085001b divu a0, a1"); | 145 "0085001b divu a0, a1"); |
146 COMPARE(divu(t2, t3), | 146 COMPARE(divu(t2, t3), |
147 "014b001b divu t2, t3"); | 147 "014b001b divu t2, t3"); |
148 COMPARE(divu(v0, v1), | 148 COMPARE(divu(v0, v1), |
149 "0043001b divu v0, v1"); | 149 "0043001b divu v0, v1"); |
150 | 150 |
151 COMPARE(mul(a0, a1, a2), | 151 if (kArchVariant != kLoongson) { |
152 "70a62002 mul a0, a1, a2"); | 152 COMPARE(mul(a0, a1, a2), |
153 COMPARE(mul(t2, t3, t4), | 153 "70a62002 mul a0, a1, a2"); |
154 "716c5002 mul t2, t3, t4"); | 154 COMPARE(mul(t2, t3, t4), |
155 COMPARE(mul(v0, v1, s0), | 155 "716c5002 mul t2, t3, t4"); |
156 "70701002 mul v0, v1, s0"); | 156 COMPARE(mul(v0, v1, s0), |
| 157 "70701002 mul v0, v1, s0"); |
| 158 } |
157 | 159 |
158 COMPARE(addiu(a0, a1, 0x0), | 160 COMPARE(addiu(a0, a1, 0x0), |
159 "24a40000 addiu a0, a1, 0"); | 161 "24a40000 addiu a0, a1, 0"); |
160 COMPARE(addiu(s0, s1, 32767), | 162 COMPARE(addiu(s0, s1, 32767), |
161 "26307fff addiu s0, s1, 32767"); | 163 "26307fff addiu s0, s1, 32767"); |
162 COMPARE(addiu(t2, t3, -32768), | 164 COMPARE(addiu(t2, t3, -32768), |
163 "256a8000 addiu t2, t3, -32768"); | 165 "256a8000 addiu t2, t3, -32768"); |
164 COMPARE(addiu(v0, v1, -1), | 166 COMPARE(addiu(v0, v1, -1), |
165 "2462ffff addiu v0, v1, -1"); | 167 "2462ffff addiu v0, v1, -1"); |
166 | 168 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 | 269 |
268 COMPARE(srav(a0, a1, a2), | 270 COMPARE(srav(a0, a1, a2), |
269 "00c52007 srav a0, a1, a2"); | 271 "00c52007 srav a0, a1, a2"); |
270 COMPARE(srav(s0, s1, s2), | 272 COMPARE(srav(s0, s1, s2), |
271 "02518007 srav s0, s1, s2"); | 273 "02518007 srav s0, s1, s2"); |
272 COMPARE(srav(t2, t3, t4), | 274 COMPARE(srav(t2, t3, t4), |
273 "018b5007 srav t2, t3, t4"); | 275 "018b5007 srav t2, t3, t4"); |
274 COMPARE(srav(v0, v1, fp), | 276 COMPARE(srav(v0, v1, fp), |
275 "03c31007 srav v0, v1, fp"); | 277 "03c31007 srav v0, v1, fp"); |
276 | 278 |
277 if (mips32r2) { | 279 if (kArchVariant == kMips32r2) { |
278 COMPARE(rotr(a0, a1, 0), | 280 COMPARE(rotr(a0, a1, 0), |
279 "00252002 rotr a0, a1, 0"); | 281 "00252002 rotr a0, a1, 0"); |
280 COMPARE(rotr(s0, s1, 8), | 282 COMPARE(rotr(s0, s1, 8), |
281 "00318202 rotr s0, s1, 8"); | 283 "00318202 rotr s0, s1, 8"); |
282 COMPARE(rotr(t2, t3, 24), | 284 COMPARE(rotr(t2, t3, 24), |
283 "002b5602 rotr t2, t3, 24"); | 285 "002b5602 rotr t2, t3, 24"); |
284 COMPARE(rotr(v0, v1, 31), | 286 COMPARE(rotr(v0, v1, 31), |
285 "002317c2 rotr v0, v1, 31"); | 287 "002317c2 rotr v0, v1, 31"); |
286 | 288 |
287 COMPARE(rotrv(a0, a1, a2), | 289 COMPARE(rotrv(a0, a1, a2), |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 "2862ffff slti v0, v1, -1"); | 372 "2862ffff slti v0, v1, -1"); |
371 COMPARE(sltiu(a0, a1, 0), | 373 COMPARE(sltiu(a0, a1, 0), |
372 "2ca40000 sltiu a0, a1, 0"); | 374 "2ca40000 sltiu a0, a1, 0"); |
373 COMPARE(sltiu(s0, s1, 32767), | 375 COMPARE(sltiu(s0, s1, 32767), |
374 "2e307fff sltiu s0, s1, 32767"); | 376 "2e307fff sltiu s0, s1, 32767"); |
375 COMPARE(sltiu(t2, t3, -32768), | 377 COMPARE(sltiu(t2, t3, -32768), |
376 "2d6a8000 sltiu t2, t3, -32768"); | 378 "2d6a8000 sltiu t2, t3, -32768"); |
377 COMPARE(sltiu(v0, v1, -1), | 379 COMPARE(sltiu(v0, v1, -1), |
378 "2c62ffff sltiu v0, v1, -1"); | 380 "2c62ffff sltiu v0, v1, -1"); |
379 | 381 |
380 COMPARE(movz(a0, a1, a2), | 382 if (kArchVariant != kLoongson) { |
381 "00a6200a movz a0, a1, a2"); | 383 COMPARE(movz(a0, a1, a2), |
382 COMPARE(movz(s0, s1, s2), | 384 "00a6200a movz a0, a1, a2"); |
383 "0232800a movz s0, s1, s2"); | 385 COMPARE(movz(s0, s1, s2), |
384 COMPARE(movz(t2, t3, t4), | 386 "0232800a movz s0, s1, s2"); |
385 "016c500a movz t2, t3, t4"); | 387 COMPARE(movz(t2, t3, t4), |
386 COMPARE(movz(v0, v1, a2), | 388 "016c500a movz t2, t3, t4"); |
387 "0066100a movz v0, v1, a2"); | 389 COMPARE(movz(v0, v1, a2), |
388 COMPARE(movn(a0, a1, a2), | 390 "0066100a movz v0, v1, a2"); |
389 "00a6200b movn a0, a1, a2"); | 391 COMPARE(movn(a0, a1, a2), |
390 COMPARE(movn(s0, s1, s2), | 392 "00a6200b movn a0, a1, a2"); |
391 "0232800b movn s0, s1, s2"); | 393 COMPARE(movn(s0, s1, s2), |
392 COMPARE(movn(t2, t3, t4), | 394 "0232800b movn s0, s1, s2"); |
393 "016c500b movn t2, t3, t4"); | 395 COMPARE(movn(t2, t3, t4), |
394 COMPARE(movn(v0, v1, a2), | 396 "016c500b movn t2, t3, t4"); |
395 "0066100b movn v0, v1, a2"); | 397 COMPARE(movn(v0, v1, a2), |
| 398 "0066100b movn v0, v1, a2"); |
396 | 399 |
397 COMPARE(movt(a0, a1, 1), | 400 COMPARE(movt(a0, a1, 1), |
398 "00a52001 movt a0, a1, 1"); | 401 "00a52001 movt a0, a1, 1"); |
399 COMPARE(movt(s0, s1, 2), | 402 COMPARE(movt(s0, s1, 2), |
400 "02298001 movt s0, s1, 2"); | 403 "02298001 movt s0, s1, 2"); |
401 COMPARE(movt(t2, t3, 3), | 404 COMPARE(movt(t2, t3, 3), |
402 "016d5001 movt t2, t3, 3"); | 405 "016d5001 movt t2, t3, 3"); |
403 COMPARE(movt(v0, v1, 7), | 406 COMPARE(movt(v0, v1, 7), |
404 "007d1001 movt v0, v1, 7"); | 407 "007d1001 movt v0, v1, 7"); |
405 COMPARE(movf(a0, a1, 0), | 408 COMPARE(movf(a0, a1, 0), |
406 "00a02001 movf a0, a1, 0"); | 409 "00a02001 movf a0, a1, 0"); |
407 COMPARE(movf(s0, s1, 4), | 410 COMPARE(movf(s0, s1, 4), |
408 "02308001 movf s0, s1, 4"); | 411 "02308001 movf s0, s1, 4"); |
409 COMPARE(movf(t2, t3, 5), | 412 COMPARE(movf(t2, t3, 5), |
410 "01745001 movf t2, t3, 5"); | 413 "01745001 movf t2, t3, 5"); |
411 COMPARE(movf(v0, v1, 6), | 414 COMPARE(movf(v0, v1, 6), |
412 "00781001 movf v0, v1, 6"); | 415 "00781001 movf v0, v1, 6"); |
413 | 416 |
414 COMPARE(clz(a0, a1), | 417 COMPARE(clz(a0, a1), |
415 "70a42020 clz a0, a1"); | 418 "70a42020 clz a0, a1"); |
416 COMPARE(clz(s6, s7), | 419 COMPARE(clz(s6, s7), |
417 "72f6b020 clz s6, s7"); | 420 "72f6b020 clz s6, s7"); |
418 COMPARE(clz(v0, v1), | 421 COMPARE(clz(v0, v1), |
419 "70621020 clz v0, v1"); | 422 "70621020 clz v0, v1"); |
| 423 } |
420 | 424 |
421 if (mips32r2) { | 425 if (kArchVariant == kMips32r2) { |
422 COMPARE(ins_(a0, a1, 31, 1), | 426 COMPARE(ins_(a0, a1, 31, 1), |
423 "7ca4ffc4 ins a0, a1, 31, 1"); | 427 "7ca4ffc4 ins a0, a1, 31, 1"); |
424 COMPARE(ins_(s6, s7, 30, 2), | 428 COMPARE(ins_(s6, s7, 30, 2), |
425 "7ef6ff84 ins s6, s7, 30, 2"); | 429 "7ef6ff84 ins s6, s7, 30, 2"); |
426 COMPARE(ins_(v0, v1, 0, 32), | 430 COMPARE(ins_(v0, v1, 0, 32), |
427 "7c62f804 ins v0, v1, 0, 32"); | 431 "7c62f804 ins v0, v1, 0, 32"); |
428 COMPARE(ext_(a0, a1, 31, 1), | 432 COMPARE(ext_(a0, a1, 31, 1), |
429 "7ca407c0 ext a0, a1, 31, 1"); | 433 "7ca407c0 ext a0, a1, 31, 1"); |
430 COMPARE(ext_(s6, s7, 30, 2), | 434 COMPARE(ext_(s6, s7, 30, 2), |
431 "7ef60f80 ext s6, s7, 30, 2"); | 435 "7ef60f80 ext s6, s7, 30, 2"); |
432 COMPARE(ext_(v0, v1, 0, 32), | 436 COMPARE(ext_(v0, v1, 0, 32), |
433 "7c62f800 ext v0, v1, 0, 32"); | 437 "7c62f800 ext v0, v1, 0, 32"); |
434 } | 438 } |
435 | 439 |
436 VERIFY_RUN(); | 440 VERIFY_RUN(); |
437 } | 441 } |
OLD | NEW |