| 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);
|
|
|