Index: src/x64/macro-assembler-x64.h |
=================================================================== |
--- src/x64/macro-assembler-x64.h (revision 8110) |
+++ src/x64/macro-assembler-x64.h (working copy) |
@@ -29,6 +29,7 @@ |
#define V8_X64_MACRO_ASSEMBLER_X64_H_ |
#include "assembler.h" |
+#include "frames.h" |
#include "v8globals.h" |
namespace v8 { |
@@ -72,6 +73,7 @@ |
ScaleFactor scale; |
}; |
+ |
// MacroAssembler implements a collection of frequently used macros. |
class MacroAssembler: public Assembler { |
public: |
@@ -192,15 +194,6 @@ |
void DebugBreak(); |
#endif |
- // --------------------------------------------------------------------------- |
- // Activation frames |
- |
- void EnterInternalFrame() { EnterFrame(StackFrame::INTERNAL); } |
- void LeaveInternalFrame() { LeaveFrame(StackFrame::INTERNAL); } |
- |
- void EnterConstructFrame() { EnterFrame(StackFrame::CONSTRUCT); } |
- void LeaveConstructFrame() { LeaveFrame(StackFrame::CONSTRUCT); } |
- |
// Enter specific kind of exit frame; either in normal or |
// debug mode. Expects the number of arguments in register rax and |
// sets up the number of arguments in register rdi and the pointer |
@@ -1125,11 +1118,18 @@ |
bool generating_stub() { return generating_stub_; } |
void set_allow_stub_calls(bool value) { allow_stub_calls_ = value; } |
bool allow_stub_calls() { return allow_stub_calls_; } |
+ void set_has_frame(bool value) { has_frame_ = value; } |
+ bool has_frame() { return has_frame_; } |
+ inline bool AllowThisStubCall(CodeStub* stub); |
static int SafepointRegisterStackIndex(Register reg) { |
return SafepointRegisterStackIndex(reg.code()); |
} |
+ // Activation support. |
+ void EnterFrame(StackFrame::Type type); |
+ void LeaveFrame(StackFrame::Type type); |
+ |
private: |
// Order general registers are pushed by Pushad. |
// rax, rcx, rdx, rbx, rsi, rdi, r8, r9, r11, r14, r15. |
@@ -1139,6 +1139,7 @@ |
bool generating_stub_; |
bool allow_stub_calls_; |
+ bool has_frame_; |
bool root_array_available_; |
// Returns a register holding the smi value. The register MUST NOT be |
@@ -1162,10 +1163,6 @@ |
const CallWrapper& call_wrapper = NullCallWrapper(), |
CallKind call_kind = CALL_AS_METHOD); |
- // Activation support. |
- void EnterFrame(StackFrame::Type type); |
- void LeaveFrame(StackFrame::Type type); |
- |
void EnterExitFramePrologue(bool save_rax); |
// Allocates arg_stack_space * kPointerSize memory (not GCed) on the stack |