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

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

Issue 17858002: ARM: Implement memcpy using NEON. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove "unaligned accesses" from C++ code Created 7 years, 5 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
« src/v8utils.h ('K') | « test/cctest/test-assembler-arm.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 }
OLDNEW
« src/v8utils.h ('K') | « test/cctest/test-assembler-arm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698