OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/frames.h" | 10 #include "src/frames.h" |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 LoadP(src2, MemOperand(sp, 3 * kPointerSize)); | 335 LoadP(src2, MemOperand(sp, 3 * kPointerSize)); |
336 LoadP(src1, MemOperand(sp, 4 * kPointerSize)); | 336 LoadP(src1, MemOperand(sp, 4 * kPointerSize)); |
337 addi(sp, sp, Operand(5 * kPointerSize)); | 337 addi(sp, sp, Operand(5 * kPointerSize)); |
338 } | 338 } |
339 | 339 |
340 // Push a fixed frame, consisting of lr, fp, context and | 340 // Push a fixed frame, consisting of lr, fp, context and |
341 // JS function / marker id if marker_reg is a valid register. | 341 // JS function / marker id if marker_reg is a valid register. |
342 void PushFixedFrame(Register marker_reg = no_reg); | 342 void PushFixedFrame(Register marker_reg = no_reg); |
343 void PopFixedFrame(Register marker_reg = no_reg); | 343 void PopFixedFrame(Register marker_reg = no_reg); |
344 | 344 |
| 345 // Restore caller's frame pointer and return address prior to being |
| 346 // overwritten by tail call stack preparation. |
| 347 void RestoreFrameStateForTailCall(); |
| 348 |
345 // Push and pop the registers that can hold pointers, as defined by the | 349 // Push and pop the registers that can hold pointers, as defined by the |
346 // RegList constant kSafepointSavedRegisters. | 350 // RegList constant kSafepointSavedRegisters. |
347 void PushSafepointRegisters(); | 351 void PushSafepointRegisters(); |
348 void PopSafepointRegisters(); | 352 void PopSafepointRegisters(); |
349 // Store value in register src in the safepoint stack slot for | 353 // Store value in register src in the safepoint stack slot for |
350 // register dst. | 354 // register dst. |
351 void StoreToSafepointRegisterSlot(Register src, Register dst); | 355 void StoreToSafepointRegisterSlot(Register src, Register dst); |
352 // Load the value of the src register from its safepoint stack slot | 356 // Load the value of the src register from its safepoint stack slot |
353 // into register dst. | 357 // into register dst. |
354 void LoadFromSafepointRegisterSlot(Register dst, Register src); | 358 void LoadFromSafepointRegisterSlot(Register dst, Register src); |
(...skipping 1229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1584 #define ACCESS_MASM(masm) \ | 1588 #define ACCESS_MASM(masm) \ |
1585 masm->stop(__FILE_LINE__); \ | 1589 masm->stop(__FILE_LINE__); \ |
1586 masm-> | 1590 masm-> |
1587 #else | 1591 #else |
1588 #define ACCESS_MASM(masm) masm-> | 1592 #define ACCESS_MASM(masm) masm-> |
1589 #endif | 1593 #endif |
1590 } // namespace internal | 1594 } // namespace internal |
1591 } // namespace v8 | 1595 } // namespace v8 |
1592 | 1596 |
1593 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 1597 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
OLD | NEW |