| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |