| Index: src/ia32/lithium-ia32.h
|
| ===================================================================
|
| --- src/ia32/lithium-ia32.h (revision 9531)
|
| +++ src/ia32/lithium-ia32.h (working copy)
|
| @@ -101,7 +101,7 @@
|
| V(Integer32ToDouble) \
|
| V(InvokeFunction) \
|
| V(IsConstructCallAndBranch) \
|
| - V(IsNullAndBranch) \
|
| + V(IsNilAndBranch) \
|
| V(IsObjectAndBranch) \
|
| V(IsSmiAndBranch) \
|
| V(IsUndetectableAndBranch) \
|
| @@ -615,17 +615,18 @@
|
| };
|
|
|
|
|
| -class LIsNullAndBranch: public LControlInstruction<1, 1> {
|
| +class LIsNilAndBranch: public LControlInstruction<1, 1> {
|
| public:
|
| - LIsNullAndBranch(LOperand* value, LOperand* temp) {
|
| + LIsNilAndBranch(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| temps_[0] = temp;
|
| }
|
|
|
| - DECLARE_CONCRETE_INSTRUCTION(IsNullAndBranch, "is-null-and-branch")
|
| - DECLARE_HYDROGEN_ACCESSOR(IsNullAndBranch)
|
| + DECLARE_CONCRETE_INSTRUCTION(IsNilAndBranch, "is-nil-and-branch")
|
| + DECLARE_HYDROGEN_ACCESSOR(IsNilAndBranch)
|
|
|
| - bool is_strict() const { return hydrogen()->is_strict(); }
|
| + EqualityKind kind() const { return hydrogen()->kind(); }
|
| + NilValue nil() const { return hydrogen()->nil(); }
|
|
|
| virtual void PrintDataTo(StringStream* stream);
|
| };
|
| @@ -1230,10 +1231,12 @@
|
| };
|
|
|
|
|
| -class LStoreGlobalCell: public LTemplateInstruction<0, 1, 0> {
|
| +class LStoreGlobalCell: public LTemplateInstruction<0, 1, 2> {
|
| public:
|
| - explicit LStoreGlobalCell(LOperand* value) {
|
| + explicit LStoreGlobalCell(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| + temps_[0] = temp1;
|
| + temps_[1] = temp2;
|
| }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell, "store-global-cell")
|
| @@ -1798,6 +1801,8 @@
|
| inputs_[0] = value;
|
| }
|
|
|
| + LOperand* value() { return inputs_[0]; }
|
| +
|
| DECLARE_CONCRETE_INSTRUCTION(CheckFunction, "check-function")
|
| DECLARE_HYDROGEN_ACCESSOR(CheckFunction)
|
| };
|
| @@ -2070,6 +2075,7 @@
|
| graph_(graph),
|
| instructions_(32),
|
| pointer_maps_(8),
|
| + num_double_slots_(0),
|
| inlined_closures_(1) { }
|
|
|
| void AddInstruction(LInstruction* instruction, HBasicBlock* block);
|
| @@ -2083,6 +2089,8 @@
|
| int ParameterAt(int index);
|
| int GetParameterStackSlot(int index) const;
|
| int spill_slot_count() const { return spill_slot_count_; }
|
| + int num_double_slots() const { return num_double_slots_; }
|
| +
|
| CompilationInfo* info() const { return info_; }
|
| HGraph* graph() const { return graph_; }
|
| const ZoneList<LInstruction*>* instructions() const { return &instructions_; }
|
| @@ -2124,6 +2132,7 @@
|
| HGraph* const graph_;
|
| ZoneList<LInstruction*> instructions_;
|
| ZoneList<LPointerMap*> pointer_maps_;
|
| + int num_double_slots_;
|
| ZoneList<Handle<JSFunction> > inlined_closures_;
|
| };
|
|
|
| @@ -2259,7 +2268,8 @@
|
| LInstruction* instr, int ast_id);
|
| void ClearInstructionPendingDeoptimizationEnvironment();
|
|
|
| - LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env);
|
| + LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env,
|
| + int* argument_index_accumulator);
|
|
|
| void VisitInstruction(HInstruction* current);
|
|
|
|
|