Index: src/codegen.h |
=================================================================== |
--- src/codegen.h (revision 3774) |
+++ src/codegen.h (working copy) |
@@ -330,26 +330,31 @@ |
class CEntryStub : public CodeStub { |
public: |
- explicit CEntryStub(int result_size) : result_size_(result_size) { } |
+ explicit CEntryStub(int result_size, |
+ ExitFrame::Mode mode = ExitFrame::MODE_NORMAL) |
+ : result_size_(result_size), mode_(mode) { } |
- void Generate(MacroAssembler* masm) { GenerateBody(masm, false); } |
+ void Generate(MacroAssembler* masm); |
- protected: |
- void GenerateBody(MacroAssembler* masm, bool is_debug_break); |
+ private: |
void GenerateCore(MacroAssembler* masm, |
Label* throw_normal_exception, |
Label* throw_termination_exception, |
Label* throw_out_of_memory_exception, |
- ExitFrame::Mode mode, |
bool do_gc, |
bool always_allocate_scope); |
void GenerateThrowTOS(MacroAssembler* masm); |
void GenerateThrowUncatchable(MacroAssembler* masm, |
UncatchableExceptionType type); |
- private: |
+ |
// Number of pointers/values returned. |
- int result_size_; |
+ int const result_size_; |
+ ExitFrame::Mode const mode_; |
+ // Minor key encoding |
+ class ExitFrameModeBits: public BitField<ExitFrame::Mode, 0, 1> {}; |
+ class IndirectResultBits: public BitField<bool, 1, 1> {}; |
+ |
Major MajorKey() { return CEntry; } |
// Minor key must differ if different result_size_ values means different |
// code is generated. |
@@ -385,7 +390,7 @@ |
}; |
-// Mark the debugger statemet to be recognized bu debugger (by the MajorKey) |
+// Mark the debugger statemet to be recognized by debugger (by the MajorKey) |
class DebugerStatementStub : public CodeStub { |
public: |
DebugerStatementStub() { } |