Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 88 assm.CheckConstPool(true, false) | 88 assm.CheckConstPool(true, false) | 
| 89 | 89 | 
| 90 | 90 | 
| 91 // Verify that all invocations of the COMPARE macro passed successfully. | 91 // Verify that all invocations of the COMPARE macro passed successfully. | 
| 92 // Exit with a failure if at least one of the tests failed. | 92 // Exit with a failure if at least one of the tests failed. | 
| 93 #define VERIFY_RUN() \ | 93 #define VERIFY_RUN() \ | 
| 94 if (failure) { \ | 94 if (failure) { \ | 
| 95 V8_Fatal(__FILE__, __LINE__, "ARM Disassembler tests failed.\n"); \ | 95 V8_Fatal(__FILE__, __LINE__, "ARM Disassembler tests failed.\n"); \ | 
| 96 } | 96 } | 
| 97 | 97 | 
| 98 // clang-format off | |
| 
 
jochen (gone - plz use gerrit)
2015/11/25 13:02:23
please don't do that. clang-format off is supposed
 
 | |
| 99 | |
| 98 | 100 | 
| 99 TEST(Type0) { | 101 TEST(Type0) { | 
| 100 SET_UP(); | 102 SET_UP(); | 
| 101 | 103 | 
| 102 COMPARE(and_(r0, r1, Operand(r2)), | 104 COMPARE(and_(r0, r1, Operand(r2)), | 
| 103 "e0010002 and r0, r1, r2"); | 105 "e0010002 and r0, r1, r2"); | 
| 104 COMPARE(and_(r1, r2, Operand(r3), LeaveCC), | 106 COMPARE(and_(r1, r2, Operand(r3), LeaveCC), | 
| 105 "e0021003 and r1, r2, r3"); | 107 "e0021003 and r1, r2, r3"); | 
| 106 COMPARE(and_(r2, r3, Operand(r4), SetCC), | 108 COMPARE(and_(r2, r3, Operand(r4), SetCC), | 
| 107 "e0132004 ands r2, r3, r4"); | 109 "e0132004 ands r2, r3, r4"); | 
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 473 COMPARE(vmov(s0, r0), | 475 COMPARE(vmov(s0, r0), | 
| 474 "ee000a10 vmov s0, r0"); | 476 "ee000a10 vmov s0, r0"); | 
| 475 COMPARE(vmov(s31, r10), | 477 COMPARE(vmov(s31, r10), | 
| 476 "ee0faa90 vmov s31, r10"); | 478 "ee0faa90 vmov s31, r10"); | 
| 477 | 479 | 
| 478 COMPARE(vabs(d0, d1), | 480 COMPARE(vabs(d0, d1), | 
| 479 "eeb00bc1 vabs.f64 d0, d1"); | 481 "eeb00bc1 vabs.f64 d0, d1"); | 
| 480 COMPARE(vabs(d3, d4, mi), | 482 COMPARE(vabs(d3, d4, mi), | 
| 481 "4eb03bc4 vabsmi.f64 d3, d4"); | 483 "4eb03bc4 vabsmi.f64 d3, d4"); | 
| 482 | 484 | 
| 485 COMPARE(vabs(s0, s1), | |
| 486 "eeb00ae0 vabs.f32 s0, s1"); | |
| 487 COMPARE(vabs(s3, s4, mi), | |
| 488 "4ef01ac2 vabsmi.f32 s3, s4"); | |
| 489 | |
| 483 COMPARE(vneg(d0, d1), | 490 COMPARE(vneg(d0, d1), | 
| 484 "eeb10b41 vneg.f64 d0, d1"); | 491 "eeb10b41 vneg.f64 d0, d1"); | 
| 485 COMPARE(vneg(d3, d4, mi), | 492 COMPARE(vneg(d3, d4, mi), | 
| 486 "4eb13b44 vnegmi.f64 d3, d4"); | 493 "4eb13b44 vnegmi.f64 d3, d4"); | 
| 487 | 494 | 
| 495 COMPARE(vneg(s0, s1), | |
| 496 "eeb10a60 vneg.f32 s0, s1"); | |
| 497 COMPARE(vneg(s3, s4, mi), | |
| 498 "4ef11a42 vnegmi.f32 s3, s4"); | |
| 499 | |
| 488 COMPARE(vadd(d0, d1, d2), | 500 COMPARE(vadd(d0, d1, d2), | 
| 489 "ee310b02 vadd.f64 d0, d1, d2"); | 501 "ee310b02 vadd.f64 d0, d1, d2"); | 
| 490 COMPARE(vadd(d3, d4, d5, mi), | 502 COMPARE(vadd(d3, d4, d5, mi), | 
| 491 "4e343b05 vaddmi.f64 d3, d4, d5"); | 503 "4e343b05 vaddmi.f64 d3, d4, d5"); | 
| 492 | 504 | 
| 505 COMPARE(vadd(s0, s1, s2), | |
| 506 "ee300a81 vadd.f32 s0, s1, s2"); | |
| 507 COMPARE(vadd(s3, s4, s5, mi), | |
| 508 "4e721a22 vaddmi.f32 s3, s4, s5"); | |
| 509 | |
| 493 COMPARE(vsub(d0, d1, d2), | 510 COMPARE(vsub(d0, d1, d2), | 
| 494 "ee310b42 vsub.f64 d0, d1, d2"); | 511 "ee310b42 vsub.f64 d0, d1, d2"); | 
| 495 COMPARE(vsub(d3, d4, d5, ne), | 512 COMPARE(vsub(d3, d4, d5, ne), | 
| 496 "1e343b45 vsubne.f64 d3, d4, d5"); | 513 "1e343b45 vsubne.f64 d3, d4, d5"); | 
| 497 | 514 | 
| 515 COMPARE(vsub(s0, s1, s2), | |
| 516 "ee300ac1 vsub.f32 s0, s1, s2"); | |
| 517 COMPARE(vsub(s3, s4, s5, ne), | |
| 518 "1e721a62 vsubne.f32 s3, s4, s5"); | |
| 519 | |
| 498 COMPARE(vmul(d2, d1, d0), | 520 COMPARE(vmul(d2, d1, d0), | 
| 499 "ee212b00 vmul.f64 d2, d1, d0"); | 521 "ee212b00 vmul.f64 d2, d1, d0"); | 
| 500 COMPARE(vmul(d6, d4, d5, cc), | 522 COMPARE(vmul(d6, d4, d5, cc), | 
| 501 "3e246b05 vmulcc.f64 d6, d4, d5"); | 523 "3e246b05 vmulcc.f64 d6, d4, d5"); | 
| 502 | 524 | 
| 525 COMPARE(vmul(s2, s1, s0), | |
| 526 "ee201a80 vmul.f32 s2, s1, s0"); | |
| 527 COMPARE(vmul(s6, s4, s5, cc), | |
| 528 "3e223a22 vmulcc.f32 s6, s4, s5"); | |
| 529 | |
| 503 COMPARE(vdiv(d2, d2, d2), | 530 COMPARE(vdiv(d2, d2, d2), | 
| 504 "ee822b02 vdiv.f64 d2, d2, d2"); | 531 "ee822b02 vdiv.f64 d2, d2, d2"); | 
| 505 COMPARE(vdiv(d6, d7, d7, hi), | 532 COMPARE(vdiv(d6, d7, d7, hi), | 
| 506 "8e876b07 vdivhi.f64 d6, d7, d7"); | 533 "8e876b07 vdivhi.f64 d6, d7, d7"); | 
| 507 | 534 | 
| 535 COMPARE(vdiv(s2, s2, s2), | |
| 536 "ee811a01 vdiv.f32 s2, s2, s2"); | |
| 537 COMPARE(vdiv(s6, s7, s7, hi), | |
| 538 "8e833aa3 vdivhi.f32 s6, s7, s7"); | |
| 539 | |
| 508 COMPARE(vcmp(d0, d1), | 540 COMPARE(vcmp(d0, d1), | 
| 509 "eeb40b41 vcmp.f64 d0, d1"); | 541 "eeb40b41 vcmp.f64 d0, d1"); | 
| 510 COMPARE(vcmp(d0, 0.0), | 542 COMPARE(vcmp(d0, 0.0), | 
| 511 "eeb50b40 vcmp.f64 d0, #0.0"); | 543 "eeb50b40 vcmp.f64 d0, #0.0"); | 
| 512 | 544 | 
| 545 COMPARE(vcmp(s0, s1), | |
| 546 "eeb40a60 vcmp.f32 s0, s1"); | |
| 547 COMPARE(vcmp(s0, 0.0f), | |
| 548 "eeb50a40 vcmp.f32 s0, #0.0"); | |
| 549 | |
| 513 COMPARE(vsqrt(d0, d0), | 550 COMPARE(vsqrt(d0, d0), | 
| 514 "eeb10bc0 vsqrt.f64 d0, d0"); | 551 "eeb10bc0 vsqrt.f64 d0, d0"); | 
| 515 COMPARE(vsqrt(d2, d3, ne), | 552 COMPARE(vsqrt(d2, d3, ne), | 
| 516 "1eb12bc3 vsqrtne.f64 d2, d3"); | 553 "1eb12bc3 vsqrtne.f64 d2, d3"); | 
| 517 | 554 | 
| 555 COMPARE(vsqrt(s0, s0), | |
| 556 "eeb10ac0 vsqrt.f32 s0, s0"); | |
| 557 COMPARE(vsqrt(s2, s3, ne), | |
| 558 "1eb11ae1 vsqrtne.f32 s2, s3"); | |
| 559 | |
| 518 COMPARE(vmov(d0, 1.0), | 560 COMPARE(vmov(d0, 1.0), | 
| 519 "eeb70b00 vmov.f64 d0, #1"); | 561 "eeb70b00 vmov.f64 d0, #1"); | 
| 520 COMPARE(vmov(d2, -13.0), | 562 COMPARE(vmov(d2, -13.0), | 
| 521 "eeba2b0a vmov.f64 d2, #-13"); | 563 "eeba2b0a vmov.f64 d2, #-13"); | 
| 522 | 564 | 
| 523 COMPARE(vmov(d0, VmovIndexLo, r0), | 565 COMPARE(vmov(d0, VmovIndexLo, r0), | 
| 524 "ee000b10 vmov.32 d0[0], r0"); | 566 "ee000b10 vmov.32 d0[0], r0"); | 
| 525 COMPARE(vmov(d0, VmovIndexHi, r0), | 567 COMPARE(vmov(d0, VmovIndexHi, r0), | 
| 526 "ee200b10 vmov.32 d0[1], r0"); | 568 "ee200b10 vmov.32 d0[1], r0"); | 
| 527 | 569 | 
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 593 COMPARE(vstm(ia, r6, s0, s31), | 635 COMPARE(vstm(ia, r6, s0, s31), | 
| 594 "ec860a20 vstmia r6, {s0-s31}"); | 636 "ec860a20 vstmia r6, {s0-s31}"); | 
| 595 COMPARE(vldm(ia, r7, s0, s31), | 637 COMPARE(vldm(ia, r7, s0, s31), | 
| 596 "ec970a20 vldmia r7, {s0-s31}"); | 638 "ec970a20 vldmia r7, {s0-s31}"); | 
| 597 | 639 | 
| 598 COMPARE(vmla(d2, d1, d0), | 640 COMPARE(vmla(d2, d1, d0), | 
| 599 "ee012b00 vmla.f64 d2, d1, d0"); | 641 "ee012b00 vmla.f64 d2, d1, d0"); | 
| 600 COMPARE(vmla(d6, d4, d5, cc), | 642 COMPARE(vmla(d6, d4, d5, cc), | 
| 601 "3e046b05 vmlacc.f64 d6, d4, d5"); | 643 "3e046b05 vmlacc.f64 d6, d4, d5"); | 
| 602 | 644 | 
| 645 COMPARE(vmla(s2, s1, s0), | |
| 646 "ee001a80 vmla.f32 s2, s1, s0"); | |
| 647 COMPARE(vmla(s6, s4, s5, cc), | |
| 648 "3e023a22 vmlacc.f32 s6, s4, s5"); | |
| 649 | |
| 603 COMPARE(vmls(d2, d1, d0), | 650 COMPARE(vmls(d2, d1, d0), | 
| 604 "ee012b40 vmls.f64 d2, d1, d0"); | 651 "ee012b40 vmls.f64 d2, d1, d0"); | 
| 605 COMPARE(vmls(d6, d4, d5, cc), | 652 COMPARE(vmls(d6, d4, d5, cc), | 
| 606 "3e046b45 vmlscc.f64 d6, d4, d5"); | 653 "3e046b45 vmlscc.f64 d6, d4, d5"); | 
| 607 | 654 | 
| 655 COMPARE(vmls(s2, s1, s0), | |
| 656 "ee001ac0 vmls.f32 s2, s1, s0"); | |
| 657 COMPARE(vmls(s6, s4, s5, cc), | |
| 658 "3e023a62 vmlscc.f32 s6, s4, s5"); | |
| 659 | |
| 608 COMPARE(vcvt_u32_f64(s0, d0), | 660 COMPARE(vcvt_u32_f64(s0, d0), | 
| 609 "eebc0bc0 vcvt.u32.f64 s0, d0"); | 661 "eebc0bc0 vcvt.u32.f64 s0, d0"); | 
| 610 COMPARE(vcvt_s32_f64(s0, d0), | 662 COMPARE(vcvt_s32_f64(s0, d0), | 
| 611 "eebd0bc0 vcvt.s32.f64 s0, d0"); | 663 "eebd0bc0 vcvt.s32.f64 s0, d0"); | 
| 612 COMPARE(vcvt_f64_u32(d0, s1), | 664 COMPARE(vcvt_f64_u32(d0, s1), | 
| 613 "eeb80b60 vcvt.f64.u32 d0, s1"); | 665 "eeb80b60 vcvt.f64.u32 d0, s1"); | 
| 614 COMPARE(vcvt_f64_s32(d0, s1), | 666 COMPARE(vcvt_f64_s32(d0, s1), | 
| 615 "eeb80be0 vcvt.f64.s32 d0, s1"); | 667 "eeb80be0 vcvt.f64.s32 d0, s1"); | 
| 616 COMPARE(vcvt_f32_s32(s0, s2), | 668 COMPARE(vcvt_f32_s32(s0, s2), | 
| 617 "eeb80ac1 vcvt.f32.s32 s0, s2"); | 669 "eeb80ac1 vcvt.f32.s32 s0, s2"); | 
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 944 "e16dc7ff strd ip, [sp, #-127]!"); | 996 "e16dc7ff strd ip, [sp, #-127]!"); | 
| 945 | 997 | 
| 946 COMPARE(pld(MemOperand(r1, 0)), | 998 COMPARE(pld(MemOperand(r1, 0)), | 
| 947 "f5d1f000 pld [r1]"); | 999 "f5d1f000 pld [r1]"); | 
| 948 COMPARE(pld(MemOperand(r2, 128)), | 1000 COMPARE(pld(MemOperand(r2, 128)), | 
| 949 "f5d2f080 pld [r2, #+128]"); | 1001 "f5d2f080 pld [r2, #+128]"); | 
| 950 } | 1002 } | 
| 951 | 1003 | 
| 952 VERIFY_RUN(); | 1004 VERIFY_RUN(); | 
| 953 } | 1005 } | 
| OLD | NEW |