| Index: src/ia32/lithium-codegen-ia32.h
|
| ===================================================================
|
| --- src/ia32/lithium-codegen-ia32.h (revision 9531)
|
| +++ src/ia32/lithium-codegen-ia32.h (working copy)
|
| @@ -58,6 +58,7 @@
|
| inlined_function_count_(0),
|
| scope_(info->scope()),
|
| status_(UNUSED),
|
| + dynamic_frame_alignment_(false),
|
| deferred_(8),
|
| osr_pc_offset_(-1),
|
| deoptimization_reloc_size(),
|
| @@ -133,6 +134,10 @@
|
| int strict_mode_flag() const {
|
| return info()->is_strict_mode() ? kStrictMode : kNonStrictMode;
|
| }
|
| + bool dynamic_frame_alignment() const { return dynamic_frame_alignment_; }
|
| + void set_dynamic_frame_alignment(bool value) {
|
| + dynamic_frame_alignment_ = value;
|
| + }
|
|
|
| LChunk* chunk() const { return chunk_; }
|
| Scope* scope() const { return scope_; }
|
| @@ -297,6 +302,7 @@
|
| int inlined_function_count_;
|
| Scope* const scope_;
|
| Status status_;
|
| + bool dynamic_frame_alignment_;
|
| TranslationBuffer translations_;
|
| ZoneList<LDeferredCode*> deferred_;
|
| int osr_pc_offset_;
|
| @@ -346,16 +352,20 @@
|
| class LDeferredCode: public ZoneObject {
|
| public:
|
| explicit LDeferredCode(LCodeGen* codegen)
|
| - : codegen_(codegen), external_exit_(NULL) {
|
| + : codegen_(codegen),
|
| + external_exit_(NULL),
|
| + instruction_index_(codegen->current_instruction_) {
|
| codegen->AddDeferredCode(this);
|
| }
|
|
|
| virtual ~LDeferredCode() { }
|
| virtual void Generate() = 0;
|
| + virtual LInstruction* instr() = 0;
|
|
|
| void SetExit(Label *exit) { external_exit_ = exit; }
|
| Label* entry() { return &entry_; }
|
| Label* exit() { return external_exit_ != NULL ? external_exit_ : &exit_; }
|
| + int instruction_index() const { return instruction_index_; }
|
|
|
| protected:
|
| LCodeGen* codegen() const { return codegen_; }
|
| @@ -366,6 +376,7 @@
|
| Label entry_;
|
| Label exit_;
|
| Label* external_exit_;
|
| + int instruction_index_;
|
| };
|
|
|
| } } // namespace v8::internal
|
|
|