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

Side by Side Diff: src/a64/macro-assembler-a64.cc

Issue 152673002: A64: Implement Peek/PokePair (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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
« no previous file with comments | « src/a64/macro-assembler-a64.h ('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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 766 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 ASSERT(offset.immediate() >= 0); 777 ASSERT(offset.immediate() >= 0);
778 } else if (emit_debug_code()) { 778 } else if (emit_debug_code()) {
779 Cmp(xzr, offset); 779 Cmp(xzr, offset);
780 Check(le, kStackAccessBelowStackPointer); 780 Check(le, kStackAccessBelowStackPointer);
781 } 781 }
782 782
783 Ldr(dst, MemOperand(StackPointer(), offset)); 783 Ldr(dst, MemOperand(StackPointer(), offset));
784 } 784 }
785 785
786 786
787 void MacroAssembler::PokePair(const CPURegister& src1,
788 const CPURegister& src2,
789 int offset) {
790 ASSERT(AreSameSizeAndType(src1, src2));
791 ASSERT((offset >= 0) && ((offset % src1.SizeInBytes()) == 0));
792 Stp(src1, src2, MemOperand(StackPointer(), offset));
793 }
794
795
796 void MacroAssembler::PeekPair(const CPURegister& dst1,
797 const CPURegister& dst2,
798 int offset) {
799 ASSERT(AreSameSizeAndType(dst1, dst2));
800 ASSERT((offset >= 0) && ((offset % dst1.SizeInBytes()) == 0));
801 Ldp(dst1, dst2, MemOperand(StackPointer(), offset));
802 }
803
804
787 void MacroAssembler::PushCalleeSavedRegisters() { 805 void MacroAssembler::PushCalleeSavedRegisters() {
788 // Ensure that the macro-assembler doesn't use any scratch registers. 806 // Ensure that the macro-assembler doesn't use any scratch registers.
789 InstructionAccurateScope scope(this); 807 InstructionAccurateScope scope(this);
790 808
791 // This method must not be called unless the current stack pointer is the 809 // This method must not be called unless the current stack pointer is the
792 // system stack pointer (csp). 810 // system stack pointer (csp).
793 ASSERT(csp.Is(StackPointer())); 811 ASSERT(csp.Is(StackPointer()));
794 812
795 MemOperand tos(csp, -2 * kXRegSizeInBytes, PreIndex); 813 MemOperand tos(csp, -2 * kXRegSizeInBytes, PreIndex);
796 814
(...skipping 3824 matching lines...) Expand 10 before | Expand all | Expand 10 after
4621 } 4639 }
4622 } 4640 }
4623 4641
4624 4642
4625 #undef __ 4643 #undef __
4626 4644
4627 4645
4628 } } // namespace v8::internal 4646 } } // namespace v8::internal
4629 4647
4630 #endif // V8_TARGET_ARCH_A64 4648 #endif // V8_TARGET_ARCH_A64
OLDNEW
« no previous file with comments | « src/a64/macro-assembler-a64.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698