| Index: src/ia32/lithium-ia32.h
 | 
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h
 | 
| index f4056c10d9115b8652b713f8a66c13ba526b6030..cf85374267d46ab654ace6e4650f0048c64004af 100644
 | 
| --- a/src/ia32/lithium-ia32.h
 | 
| +++ b/src/ia32/lithium-ia32.h
 | 
| @@ -250,11 +250,7 @@ class LInstruction: public ZoneObject {
 | 
|    void MarkAsCall() { is_call_ = true; }
 | 
|  
 | 
|    // Interface to the register allocator and iterators.
 | 
| -  bool ClobbersTemps() const { return is_call_; }
 | 
| -  bool ClobbersRegisters() const { return is_call_; }
 | 
| -  virtual bool ClobbersDoubleRegisters() const {
 | 
| -    return is_call_ || !CpuFeatures::IsSupported(SSE2);
 | 
| -  }
 | 
| +  bool IsMarkedAsCall() const { return is_call_; }
 | 
|  
 | 
|    virtual bool HasResult() const = 0;
 | 
|    virtual LOperand* result() = 0;
 | 
| @@ -360,7 +356,6 @@ class LGap: public LTemplateInstruction<0, 0, 0> {
 | 
|  class LInstructionGap: public LGap {
 | 
|   public:
 | 
|    explicit LInstructionGap(HBasicBlock* block) : LGap(block) { }
 | 
| -  virtual bool ClobbersDoubleRegisters() const { return false; }
 | 
|  
 | 
|    DECLARE_CONCRETE_INSTRUCTION(InstructionGap, "gap")
 | 
|  };
 | 
| @@ -1443,6 +1438,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> {
 | 
|      inputs_[0] = elements;
 | 
|      inputs_[1] = key;
 | 
|    }
 | 
| +
 | 
|    LOperand* elements() { return inputs_[0]; }
 | 
|    LOperand* key() { return inputs_[1]; }
 | 
|    ElementsKind elements_kind() const {
 | 
| @@ -1452,18 +1448,11 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> {
 | 
|      return hydrogen()->is_external();
 | 
|    }
 | 
|  
 | 
| -  virtual bool ClobbersDoubleRegisters() const {
 | 
| -    return !IsDoubleOrFloatElementsKind(hydrogen()->elements_kind());
 | 
| -  }
 | 
| -
 | 
|    DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed")
 | 
|    DECLARE_HYDROGEN_ACCESSOR(LoadKeyed)
 | 
|  
 | 
|    virtual void PrintDataTo(StringStream* stream);
 | 
|    uint32_t additional_index() const { return hydrogen()->index_offset(); }
 | 
| -  bool key_is_smi() {
 | 
| -    return hydrogen()->key()->representation().IsTagged();
 | 
| -  }
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -2444,9 +2433,8 @@ class LOsrEntry: public LTemplateInstruction<0, 0, 0> {
 | 
|    // slot, i.e., that must also be restored to the spill slot on OSR entry.
 | 
|    // NULL if the register has no assigned spill slot.  Indexed by allocation
 | 
|    // index.
 | 
| -  LOperand* register_spills_[Register::kMaxNumAllocatableRegisters];
 | 
| -  LOperand* double_register_spills_[
 | 
| -      DoubleRegister::kMaxNumAllocatableRegisters];
 | 
| +  LOperand* register_spills_[Register::kNumAllocatableRegisters];
 | 
| +  LOperand* double_register_spills_[DoubleRegister::kNumAllocatableRegisters];
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -2610,7 +2598,6 @@ class LChunkBuilder BASE_EMBEDDED {
 | 
|    // Methods for getting operands for Use / Define / Temp.
 | 
|    LUnallocated* ToUnallocated(Register reg);
 | 
|    LUnallocated* ToUnallocated(XMMRegister reg);
 | 
| -  LUnallocated* ToUnallocated(X87TopOfStackRegister reg);
 | 
|  
 | 
|    // Methods for setting up define-use relationships.
 | 
|    MUST_USE_RESULT LOperand* Use(HValue* value, LUnallocated* operand);
 | 
| @@ -2671,8 +2658,6 @@ class LChunkBuilder BASE_EMBEDDED {
 | 
|    template<int I, int T>
 | 
|        LInstruction* DefineFixedDouble(LTemplateInstruction<1, I, T>* instr,
 | 
|                                        XMMRegister reg);
 | 
| -  template<int I, int T>
 | 
| -      LInstruction* DefineX87TOS(LTemplateInstruction<1, I, T>* instr);
 | 
|    // Assigns an environment to an instruction.  An instruction which can
 | 
|    // deoptimize must have an environment.
 | 
|    LInstruction* AssignEnvironment(LInstruction* instr);
 | 
| 
 |