| Index: src/arm/lithium-codegen-arm.cc
|
| ===================================================================
|
| --- src/arm/lithium-codegen-arm.cc (revision 9418)
|
| +++ src/arm/lithium-codegen-arm.cc (working copy)
|
| @@ -1038,6 +1038,7 @@
|
| virtual void Generate() {
|
| codegen()->DoDeferredBinaryOpStub(instr_, Token::DIV);
|
| }
|
| + virtual LInstruction* instr() { return instr_; }
|
| private:
|
| LDivI* instr_;
|
| };
|
| @@ -2040,9 +2041,8 @@
|
| virtual void Generate() {
|
| codegen()->DoDeferredLInstanceOfKnownGlobal(instr_, &map_check_);
|
| }
|
| -
|
| + virtual LInstruction* instr() { return instr_; }
|
| Label* map_check() { return &map_check_; }
|
| -
|
| private:
|
| LInstanceOfKnownGlobal* instr_;
|
| Label map_check_;
|
| @@ -2945,6 +2945,7 @@
|
| virtual void Generate() {
|
| codegen()->DoDeferredMathAbsTaggedHeapNumber(instr_);
|
| }
|
| + virtual LInstruction* instr() { return instr_; }
|
| private:
|
| LUnaryMathOperation* instr_;
|
| };
|
| @@ -3494,6 +3495,7 @@
|
| DeferredStringCharCodeAt(LCodeGen* codegen, LStringCharCodeAt* instr)
|
| : LDeferredCode(codegen), instr_(instr) { }
|
| virtual void Generate() { codegen()->DoDeferredStringCharCodeAt(instr_); }
|
| + virtual LInstruction* instr() { return instr_; }
|
| private:
|
| LStringCharCodeAt* instr_;
|
| };
|
| @@ -3617,6 +3619,7 @@
|
| DeferredStringCharFromCode(LCodeGen* codegen, LStringCharFromCode* instr)
|
| : LDeferredCode(codegen), instr_(instr) { }
|
| virtual void Generate() { codegen()->DoDeferredStringCharFromCode(instr_); }
|
| + virtual LInstruction* instr() { return instr_; }
|
| private:
|
| LStringCharFromCode* instr_;
|
| };
|
| @@ -3688,6 +3691,7 @@
|
| DeferredNumberTagI(LCodeGen* codegen, LNumberTagI* instr)
|
| : LDeferredCode(codegen), instr_(instr) { }
|
| virtual void Generate() { codegen()->DoDeferredNumberTagI(instr_); }
|
| + virtual LInstruction* instr() { return instr_; }
|
| private:
|
| LNumberTagI* instr_;
|
| };
|
| @@ -3753,6 +3757,7 @@
|
| DeferredNumberTagD(LCodeGen* codegen, LNumberTagD* instr)
|
| : LDeferredCode(codegen), instr_(instr) { }
|
| virtual void Generate() { codegen()->DoDeferredNumberTagD(instr_); }
|
| + virtual LInstruction* instr() { return instr_; }
|
| private:
|
| LNumberTagD* instr_;
|
| };
|
| @@ -3861,16 +3866,6 @@
|
| }
|
|
|
|
|
| -class DeferredTaggedToI: public LDeferredCode {
|
| - public:
|
| - DeferredTaggedToI(LCodeGen* codegen, LTaggedToI* instr)
|
| - : LDeferredCode(codegen), instr_(instr) { }
|
| - virtual void Generate() { codegen()->DoDeferredTaggedToI(instr_); }
|
| - private:
|
| - LTaggedToI* instr_;
|
| -};
|
| -
|
| -
|
| void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
| Register input_reg = ToRegister(instr->InputAt(0));
|
| Register scratch1 = scratch0();
|
| @@ -3953,6 +3948,16 @@
|
|
|
|
|
| void LCodeGen::DoTaggedToI(LTaggedToI* instr) {
|
| + class DeferredTaggedToI: public LDeferredCode {
|
| + public:
|
| + DeferredTaggedToI(LCodeGen* codegen, LTaggedToI* instr)
|
| + : LDeferredCode(codegen), instr_(instr) { }
|
| + virtual void Generate() { codegen()->DoDeferredTaggedToI(instr_); }
|
| + virtual LInstruction* instr() { return instr_; }
|
| + private:
|
| + LTaggedToI* instr_;
|
| + };
|
| +
|
| LOperand* input = instr->InputAt(0);
|
| ASSERT(input->IsRegister());
|
| ASSERT(input->Equals(instr->result()));
|
| @@ -4512,6 +4517,7 @@
|
| DeferredStackCheck(LCodeGen* codegen, LStackCheck* instr)
|
| : LDeferredCode(codegen), instr_(instr) { }
|
| virtual void Generate() { codegen()->DoDeferredStackCheck(instr_); }
|
| + virtual LInstruction* instr() { return instr_; }
|
| private:
|
| LStackCheck* instr_;
|
| };
|
|
|