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 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 "e7df1f90 bfi r1, r0, #31, #1"); | 398 "e7df1f90 bfi r1, r0, #31, #1"); |
399 | 399 |
400 COMPARE(usat(r0, 1, Operand(r1)), | 400 COMPARE(usat(r0, 1, Operand(r1)), |
401 "e6e10011 usat r0, #1, r1"); | 401 "e6e10011 usat r0, #1, r1"); |
402 COMPARE(usat(r2, 7, Operand(lr)), | 402 COMPARE(usat(r2, 7, Operand(lr)), |
403 "e6e7201e usat r2, #7, lr"); | 403 "e6e7201e usat r2, #7, lr"); |
404 COMPARE(usat(r3, 31, Operand(r4, LSL, 31)), | 404 COMPARE(usat(r3, 31, Operand(r4, LSL, 31)), |
405 "e6ff3f94 usat r3, #31, r4, lsl #31"); | 405 "e6ff3f94 usat r3, #31, r4, lsl #31"); |
406 COMPARE(usat(r8, 0, Operand(r5, ASR, 17)), | 406 COMPARE(usat(r8, 0, Operand(r5, ASR, 17)), |
407 "e6e088d5 usat r8, #0, r5, asr #17"); | 407 "e6e088d5 usat r8, #0, r5, asr #17"); |
| 408 |
| 409 COMPARE(pkhbt(r3, r4, Operand(r5, LSL, 17)), |
| 410 "e6843895 pkhbt r3, r4, r5, lsl #17"); |
| 411 COMPARE(pkhtb(r3, r4, Operand(r5, ASR, 17)), |
| 412 "e68438d5 pkhtb r3, r4, r5, asr #17"); |
| 413 COMPARE(uxtb(r3, Operand(r4, ROR, 8)), |
| 414 "e6ef3474 uxtb r3, r4, ror #8"); |
| 415 COMPARE(uxtab(r3, r4, Operand(r5, ROR, 8)), |
| 416 "e6e43475 uxtab r3, r4, r5, ror #8"); |
| 417 COMPARE(uxtb16(r3, Operand(r4, ROR, 8)), |
| 418 "e6cf3474 uxtb16 r3, r4, ror #8"); |
408 } | 419 } |
409 | 420 |
410 VERIFY_RUN(); | 421 VERIFY_RUN(); |
411 } | 422 } |
412 | 423 |
413 | 424 |
414 | 425 |
415 TEST(Vfp) { | 426 TEST(Vfp) { |
416 SET_UP(); | 427 SET_UP(); |
417 | 428 |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
655 "eebd0be0 vcvt.s32.f64 s0, d16"); | 666 "eebd0be0 vcvt.s32.f64 s0, d16"); |
656 COMPARE(vcvt_f64_u32(d16, s1), | 667 COMPARE(vcvt_f64_u32(d16, s1), |
657 "eef80b60 vcvt.f64.u32 d16, s1"); | 668 "eef80b60 vcvt.f64.u32 d16, s1"); |
658 } | 669 } |
659 } | 670 } |
660 | 671 |
661 VERIFY_RUN(); | 672 VERIFY_RUN(); |
662 } | 673 } |
663 | 674 |
664 | 675 |
| 676 TEST(Neon) { |
| 677 SET_UP(); |
| 678 |
| 679 if (CpuFeatures::IsSupported(NEON)) { |
| 680 CpuFeatureScope scope(&assm, NEON); |
| 681 COMPARE(vld1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(r1)), |
| 682 "f421420f vld1.8 {d4, d5, d6, d7}, [r1]"); |
| 683 COMPARE(vst1(Neon16, NeonListOperand(d17, 4), NeonMemOperand(r9)), |
| 684 "f449124f vst1.16 {d17, d18, d19, d20}, [r9]"); |
| 685 COMPARE(vmovl(NeonU8, q4, d2), |
| 686 "f3884a12 vmovl.u8 q4, d2"); |
| 687 } |
| 688 |
| 689 VERIFY_RUN(); |
| 690 } |
| 691 |
| 692 |
665 TEST(LoadStore) { | 693 TEST(LoadStore) { |
666 SET_UP(); | 694 SET_UP(); |
667 | 695 |
668 COMPARE(ldrb(r0, MemOperand(r1)), | 696 COMPARE(ldrb(r0, MemOperand(r1)), |
669 "e5d10000 ldrb r0, [r1, #+0]"); | 697 "e5d10000 ldrb r0, [r1, #+0]"); |
670 COMPARE(ldrb(r2, MemOperand(r3, 42)), | 698 COMPARE(ldrb(r2, MemOperand(r3, 42)), |
671 "e5d3202a ldrb r2, [r3, #+42]"); | 699 "e5d3202a ldrb r2, [r3, #+42]"); |
672 COMPARE(ldrb(r4, MemOperand(r5, -42)), | 700 COMPARE(ldrb(r4, MemOperand(r5, -42)), |
673 "e555402a ldrb r4, [r5, #-42]"); | 701 "e555402a ldrb r4, [r5, #-42]"); |
674 COMPARE(ldrb(r6, MemOperand(r7, 42, PostIndex)), | 702 COMPARE(ldrb(r6, MemOperand(r7, 42, PostIndex)), |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 COMPARE(strd(r4, r5, MemOperand(r5, -127)), | 879 COMPARE(strd(r4, r5, MemOperand(r5, -127)), |
852 "e14547ff strd r4, [r5, #-127]"); | 880 "e14547ff strd r4, [r5, #-127]"); |
853 COMPARE(strd(r6, r7, MemOperand(r7, 127, PostIndex)), | 881 COMPARE(strd(r6, r7, MemOperand(r7, 127, PostIndex)), |
854 "e0c767ff strd r6, [r7], #+127"); | 882 "e0c767ff strd r6, [r7], #+127"); |
855 COMPARE(strd(r8, r9, MemOperand(r9, -127, PostIndex)), | 883 COMPARE(strd(r8, r9, MemOperand(r9, -127, PostIndex)), |
856 "e04987ff strd r8, [r9], #-127"); | 884 "e04987ff strd r8, [r9], #-127"); |
857 COMPARE(strd(r10, fp, MemOperand(fp, 127, PreIndex)), | 885 COMPARE(strd(r10, fp, MemOperand(fp, 127, PreIndex)), |
858 "e1eba7ff strd r10, [fp, #+127]!"); | 886 "e1eba7ff strd r10, [fp, #+127]!"); |
859 COMPARE(strd(ip, sp, MemOperand(sp, -127, PreIndex)), | 887 COMPARE(strd(ip, sp, MemOperand(sp, -127, PreIndex)), |
860 "e16dc7ff strd ip, [sp, #-127]!"); | 888 "e16dc7ff strd ip, [sp, #-127]!"); |
| 889 |
| 890 COMPARE(pld(MemOperand(r1, 0)), |
| 891 "f5d1f000 pld [r1]"); |
| 892 COMPARE(pld(MemOperand(r2, 128)), |
| 893 "f5d2f080 pld [r2, #+128]"); |
861 } | 894 } |
862 | 895 |
863 VERIFY_RUN(); | 896 VERIFY_RUN(); |
864 } | 897 } |
OLD | NEW |