| Index: src/x64/lithium-x64.h
|
| diff --git a/src/x64/lithium-x64.h b/src/x64/lithium-x64.h
|
| index 0aab4431e3532ce041e5c52bcf09ec4b819a4bc0..a58208c816f4f0471be89a44f6e6374b2bc0acdc 100644
|
| --- a/src/x64/lithium-x64.h
|
| +++ b/src/x64/lithium-x64.h
|
| @@ -91,13 +91,10 @@ class LCodeGen;
|
| V(Drop) \
|
| V(DummyUse) \
|
| V(Dummy) \
|
| - V(ElementsKind) \
|
| V(ForInCacheArray) \
|
| V(ForInPrepareMap) \
|
| V(FunctionLiteral) \
|
| V(GetCachedArrayIndex) \
|
| - V(GlobalObject) \
|
| - V(GlobalReceiver) \
|
| V(Goto) \
|
| V(HasCachedArrayIndexAndBranch) \
|
| V(HasInstanceTypeAndBranch) \
|
| @@ -116,7 +113,6 @@ class LCodeGen;
|
| V(Label) \
|
| V(LazyBailout) \
|
| V(LoadContextSlot) \
|
| - V(LoadExternalArrayPointer) \
|
| V(LoadRoot) \
|
| V(LoadFieldByIndex) \
|
| V(LoadFunctionPrototype) \
|
| @@ -128,6 +124,7 @@ class LCodeGen;
|
| V(LoadNamedGeneric) \
|
| V(MapEnumLength) \
|
| V(MathAbs) \
|
| + V(MathClz32) \
|
| V(MathExp) \
|
| V(MathFloor) \
|
| V(MathFloorOfDiv) \
|
| @@ -143,7 +140,6 @@ class LCodeGen;
|
| V(NumberTagU) \
|
| V(NumberUntagD) \
|
| V(OsrEntry) \
|
| - V(OuterContext) \
|
| V(Parameter) \
|
| V(Power) \
|
| V(PushArgument) \
|
| @@ -169,7 +165,6 @@ class LCodeGen;
|
| V(SubI) \
|
| V(TaggedToI) \
|
| V(ThisFunction) \
|
| - V(Throw) \
|
| V(ToFastProperties) \
|
| V(TransitionElementsKind) \
|
| V(TrapAllocationMemento) \
|
| @@ -178,7 +173,6 @@ class LCodeGen;
|
| V(Uint32ToDouble) \
|
| V(Uint32ToSmi) \
|
| V(UnknownOSRValue) \
|
| - V(ValueOf) \
|
| V(WrapReceiver)
|
|
|
|
|
| @@ -559,6 +553,7 @@ class LWrapReceiver V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| LOperand* function() { return inputs_[1]; }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(WrapReceiver, "wrap-receiver")
|
| + DECLARE_HYDROGEN_ACCESSOR(WrapReceiver)
|
| };
|
|
|
|
|
| @@ -766,6 +761,18 @@ class LMathLog V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| +class LMathClz32 V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| + public:
|
| + explicit LMathClz32(LOperand* value) {
|
| + inputs_[0] = value;
|
| + }
|
| +
|
| + LOperand* value() { return inputs_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
|
| +};
|
| +
|
| +
|
| class LMathExp V8_FINAL : public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| LMathExp(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| @@ -1240,32 +1247,6 @@ class LMapEnumLength V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LElementsKind V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| - public:
|
| - explicit LElementsKind(LOperand* value) {
|
| - inputs_[0] = value;
|
| - }
|
| -
|
| - LOperand* value() { return inputs_[0]; }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(ElementsKind, "elements-kind")
|
| - DECLARE_HYDROGEN_ACCESSOR(ElementsKind)
|
| -};
|
| -
|
| -
|
| -class LValueOf V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| - public:
|
| - explicit LValueOf(LOperand* value) {
|
| - inputs_[0] = value;
|
| - }
|
| -
|
| - LOperand* value() { return inputs_[0]; }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(ValueOf, "value-of")
|
| - DECLARE_HYDROGEN_ACCESSOR(ValueOf)
|
| -};
|
| -
|
| -
|
| class LDateField V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| LDateField(LOperand* date, Smi* index) : index_(index) {
|
| @@ -1319,20 +1300,6 @@ class LSeqStringSetChar V8_FINAL : public LTemplateInstruction<1, 4, 0> {
|
| };
|
|
|
|
|
| -class LThrow V8_FINAL : public LTemplateInstruction<0, 2, 0> {
|
| - public:
|
| - explicit LThrow(LOperand* context, LOperand* value) {
|
| - inputs_[0] = context;
|
| - inputs_[1] = value;
|
| - }
|
| -
|
| - LOperand* context() { return inputs_[0]; }
|
| - LOperand* value() { return inputs_[1]; }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(Throw, "throw")
|
| -};
|
| -
|
| -
|
| class LAddI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LAddI(LOperand* left, LOperand* right) {
|
| @@ -1512,20 +1479,6 @@ class LLoadRoot V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LLoadExternalArrayPointer V8_FINAL
|
| - : public LTemplateInstruction<1, 1, 0> {
|
| - public:
|
| - explicit LLoadExternalArrayPointer(LOperand* object) {
|
| - inputs_[0] = object;
|
| - }
|
| -
|
| - LOperand* object() { return inputs_[0]; }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(LoadExternalArrayPointer,
|
| - "load-external-array-pointer")
|
| -};
|
| -
|
| -
|
| class LLoadKeyed V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LLoadKeyed(LOperand* elements, LOperand* key) {
|
| @@ -1720,18 +1673,6 @@ class LContext V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LOuterContext V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| - public:
|
| - explicit LOuterContext(LOperand* context) {
|
| - inputs_[0] = context;
|
| - }
|
| -
|
| - LOperand* context() { return inputs_[0]; }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(OuterContext, "outer-context")
|
| -};
|
| -
|
| -
|
| class LDeclareGlobals V8_FINAL : public LTemplateInstruction<0, 1, 0> {
|
| public:
|
| explicit LDeclareGlobals(LOperand* context) {
|
| @@ -1745,30 +1686,6 @@ class LDeclareGlobals V8_FINAL : public LTemplateInstruction<0, 1, 0> {
|
| };
|
|
|
|
|
| -class LGlobalObject V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| - public:
|
| - explicit LGlobalObject(LOperand* context) {
|
| - inputs_[0] = context;
|
| - }
|
| -
|
| - LOperand* context() { return inputs_[0]; }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(GlobalObject, "global-object")
|
| -};
|
| -
|
| -
|
| -class LGlobalReceiver V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| - public:
|
| - explicit LGlobalReceiver(LOperand* global_object) {
|
| - inputs_[0] = global_object;
|
| - }
|
| -
|
| - LOperand* global() { return inputs_[0]; }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(GlobalReceiver, "global-receiver")
|
| -};
|
| -
|
| -
|
| class LCallJSFunction V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LCallJSFunction(LOperand* function) {
|
| @@ -1791,8 +1708,7 @@ class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> {
|
| LCallWithDescriptor(const CallInterfaceDescriptor* descriptor,
|
| ZoneList<LOperand*>& operands,
|
| Zone* zone)
|
| - : descriptor_(descriptor),
|
| - inputs_(descriptor->environment_length() + 1, zone) {
|
| + : inputs_(descriptor->environment_length() + 1, zone) {
|
| ASSERT(descriptor->environment_length() + 1 == operands.length());
|
| inputs_.AddAll(operands, zone);
|
| }
|
| @@ -1807,7 +1723,6 @@ class LCallWithDescriptor V8_FINAL : public LTemplateResultInstruction<1> {
|
|
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
|
|
| - const CallInterfaceDescriptor* descriptor_;
|
| ZoneList<LOperand*> inputs_;
|
|
|
| // Iterator support.
|
| @@ -2620,8 +2535,6 @@ class LChunkBuilder V8_FINAL : public LChunkBuilderBase {
|
| HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO)
|
| #undef DECLARE_DO
|
|
|
| - static HValue* SimplifiedDivisorForMathFloorOfDiv(HValue* val);
|
| -
|
| LInstruction* DoMathFloor(HUnaryMathOperation* instr);
|
| LInstruction* DoMathRound(HUnaryMathOperation* instr);
|
| LInstruction* DoMathAbs(HUnaryMathOperation* instr);
|
| @@ -2629,6 +2542,7 @@ class LChunkBuilder V8_FINAL : public LChunkBuilderBase {
|
| LInstruction* DoMathExp(HUnaryMathOperation* instr);
|
| LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
|
| LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
|
| + LInstruction* DoMathClz32(HUnaryMathOperation* instr);
|
|
|
| private:
|
| enum Status {
|
|
|