| Index: src/ia32/lithium-ia32.h
|
| ===================================================================
|
| --- src/ia32/lithium-ia32.h (revision 6170)
|
| +++ src/ia32/lithium-ia32.h (working copy)
|
| @@ -104,7 +104,6 @@
|
| // LStoreNamedField
|
| // LStoreNamedGeneric
|
| // LUnaryOperation
|
| -// LArrayLength
|
| // LBitNotI
|
| // LBranch
|
| // LCallNew
|
| @@ -117,6 +116,7 @@
|
| // LClassOfTestAndBranch
|
| // LDeleteProperty
|
| // LDoubleToI
|
| +// LFixedArrayLength
|
| // LHasCachedArrayIndex
|
| // LHasCachedArrayIndexAndBranch
|
| // LHasInstanceType
|
| @@ -128,8 +128,10 @@
|
| // LIsObjectAndBranch
|
| // LIsSmi
|
| // LIsSmiAndBranch
|
| +// LJSArrayLength
|
| // LLoadNamedField
|
| // LLoadNamedGeneric
|
| +// LLoadFunctionPrototype
|
| // LNumberTagD
|
| // LNumberTagI
|
| // LPushArgument
|
| @@ -164,7 +166,6 @@
|
| V(ArgumentsLength) \
|
| V(ArithmeticD) \
|
| V(ArithmeticT) \
|
| - V(ArrayLength) \
|
| V(ArrayLiteral) \
|
| V(BitI) \
|
| V(BitNotI) \
|
| @@ -203,6 +204,7 @@
|
| V(GlobalObject) \
|
| V(GlobalReceiver) \
|
| V(Goto) \
|
| + V(FixedArrayLength) \
|
| V(InstanceOf) \
|
| V(InstanceOfAndBranch) \
|
| V(Integer32ToDouble) \
|
| @@ -212,6 +214,7 @@
|
| V(IsObjectAndBranch) \
|
| V(IsSmi) \
|
| V(IsSmiAndBranch) \
|
| + V(JSArrayLength) \
|
| V(HasInstanceType) \
|
| V(HasInstanceTypeAndBranch) \
|
| V(HasCachedArrayIndex) \
|
| @@ -226,6 +229,7 @@
|
| V(LoadKeyedGeneric) \
|
| V(LoadNamedField) \
|
| V(LoadNamedGeneric) \
|
| + V(LoadFunctionPrototype) \
|
| V(ModI) \
|
| V(MulI) \
|
| V(NumberTagD) \
|
| @@ -1146,18 +1150,21 @@
|
| };
|
|
|
|
|
| -class LArrayLength: public LUnaryOperation {
|
| +class LJSArrayLength: public LUnaryOperation {
|
| public:
|
| - LArrayLength(LOperand* input, LOperand* temporary)
|
| - : LUnaryOperation(input), temporary_(temporary) { }
|
| + explicit LJSArrayLength(LOperand* input) : LUnaryOperation(input) { }
|
|
|
| - LOperand* temporary() const { return temporary_; }
|
| + DECLARE_CONCRETE_INSTRUCTION(JSArrayLength, "js-array-length")
|
| + DECLARE_HYDROGEN_ACCESSOR(JSArrayLength)
|
| +};
|
|
|
| - DECLARE_CONCRETE_INSTRUCTION(ArrayLength, "array-length")
|
| - DECLARE_HYDROGEN_ACCESSOR(ArrayLength)
|
|
|
| - private:
|
| - LOperand* temporary_;
|
| +class LFixedArrayLength: public LUnaryOperation {
|
| + public:
|
| + explicit LFixedArrayLength(LOperand* input) : LUnaryOperation(input) { }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(FixedArrayLength, "fixed-array-length")
|
| + DECLARE_HYDROGEN_ACCESSOR(FixedArrayLength)
|
| };
|
|
|
|
|
| @@ -1271,6 +1278,22 @@
|
| };
|
|
|
|
|
| +class LLoadFunctionPrototype: public LUnaryOperation {
|
| + public:
|
| + LLoadFunctionPrototype(LOperand* function, LOperand* temporary)
|
| + : LUnaryOperation(function), temporary_(temporary) { }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load-function-prototype")
|
| + DECLARE_HYDROGEN_ACCESSOR(LoadFunctionPrototype)
|
| +
|
| + LOperand* function() const { return input(); }
|
| + LOperand* temporary() const { return temporary_; }
|
| +
|
| + private:
|
| + LOperand* temporary_;
|
| +};
|
| +
|
| +
|
| class LLoadElements: public LUnaryOperation {
|
| public:
|
| explicit LLoadElements(LOperand* obj) : LUnaryOperation(obj) { }
|
| @@ -2064,7 +2087,6 @@
|
| LInstruction* Define(LInstruction* instr);
|
| LInstruction* DefineAsRegister(LInstruction* instr);
|
| LInstruction* DefineAsSpilled(LInstruction* instr, int index);
|
| - LInstruction* DefineSameAsAny(LInstruction* instr);
|
| LInstruction* DefineSameAsFirst(LInstruction* instr);
|
| LInstruction* DefineFixed(LInstruction* instr, Register reg);
|
| LInstruction* DefineFixedDouble(LInstruction* instr, XMMRegister reg);
|
|
|