Chromium Code Reviews| Index: src/x64/lithium-x64.h |
| =================================================================== |
| --- src/x64/lithium-x64.h (revision 6645) |
| +++ src/x64/lithium-x64.h (working copy) |
| @@ -39,119 +39,8 @@ |
| // Forward declarations. |
| class LCodeGen; |
| - |
| -// Type hierarchy: |
|
Kevin Millikin (Chromium)
2011/02/08 10:34:44
Yay!
|
| -// |
| -// LInstruction |
| -// LTemplateInstruction |
| -// LControlInstruction |
| -// LBranch |
| -// LClassOfTestAndBranch |
| -// LCmpJSObjectEqAndBranch |
| -// LCmpIDAndBranch |
| -// LHasCachedArrayIndexAndBranch |
| -// LHasInstanceTypeAndBranch |
| -// LInstanceOfAndBranch |
| -// LIsNullAndBranch |
| -// LIsObjectAndBranch |
| -// LIsSmiAndBranch |
| -// LTypeofIsAndBranch |
| -// LAccessArgumentsAt |
| -// LArgumentsElements |
| -// LArgumentsLength |
| -// LAddI |
| -// LApplyArguments |
| -// LArithmeticD |
| -// LArithmeticT |
| -// LBitI |
| -// LBoundsCheck |
| -// LCmpID |
| -// LCmpJSObjectEq |
| -// LCmpT |
| -// LDivI |
| -// LInstanceOf |
| -// LInstanceOfKnownGlobal |
| -// LLoadKeyedFastElement |
| -// LLoadKeyedGeneric |
| -// LModI |
| -// LMulI |
| -// LPower |
| -// LShiftI |
| -// LSubI |
| -// LCallConstantFunction |
| -// LCallFunction |
| -// LCallGlobal |
| -// LCallKeyed |
| -// LCallKnownGlobal |
| -// LCallNamed |
| -// LCallRuntime |
| -// LCallStub |
| -// LConstant |
| -// LConstantD |
| -// LConstantI |
| -// LConstantT |
| -// LDeoptimize |
| -// LFunctionLiteral |
| -// LGap |
| -// LLabel |
| -// LGlobalObject |
| -// LGlobalReceiver |
| -// LGoto |
| -// LLazyBailout |
| -// LLoadGlobal |
| -// LCheckPrototypeMaps |
| -// LLoadContextSlot |
| -// LArrayLiteral |
| -// LObjectLiteral |
| -// LRegExpLiteral |
| -// LOsrEntry |
| -// LParameter |
| -// LRegExpConstructResult |
| -// LStackCheck |
| -// LStoreKeyed |
| -// LStoreKeyedFastElement |
| -// LStoreKeyedGeneric |
| -// LStoreNamed |
| -// LStoreNamedField |
| -// LStoreNamedGeneric |
| -// LBitNotI |
| -// LCallNew |
| -// LCheckFunction |
| -// LCheckPrototypeMaps |
| -// LCheckInstanceType |
| -// LCheckMap |
| -// LCheckSmi |
| -// LClassOfTest |
| -// LDeleteProperty |
| -// LDoubleToI |
| -// LFixedArrayLength |
| -// LHasCachedArrayIndex |
| -// LHasInstanceType |
| -// LInteger32ToDouble |
| -// LIsNull |
| -// LIsObject |
| -// LIsSmi |
| -// LJSArrayLength |
| -// LLoadNamedField |
| -// LLoadNamedGeneric |
| -// LLoadFunctionPrototype |
| -// LNumberTagD |
| -// LNumberTagI |
| -// LPushArgument |
| -// LReturn |
| -// LSmiTag |
| -// LStoreGlobal |
| -// LTaggedToI |
| -// LThrow |
| -// LTypeof |
| -// LTypeofIs |
| -// LUnaryMathOperation |
| -// LValueOf |
| -// LUnknownOSRValue |
| - |
| #define LITHIUM_ALL_INSTRUCTION_LIST(V) \ |
| V(ControlInstruction) \ |
| - V(Constant) \ |
| V(Call) \ |
| V(StoreKeyed) \ |
| V(StoreNamed) \ |
| @@ -1013,47 +902,33 @@ |
| }; |
| -template <int temp_count> |
| -class LConstant: public LTemplateInstruction<1, 0, temp_count> { |
| - DECLARE_INSTRUCTION(Constant) |
| -}; |
| - |
| - |
| -class LConstantI: public LConstant<0> { |
| +class LConstantI: public LTemplateInstruction<1, 0, 0> { |
| public: |
| - explicit LConstantI(int32_t value) : value_(value) { } |
| - int32_t value() const { return value_; } |
| - |
| DECLARE_CONCRETE_INSTRUCTION(ConstantI, "constant-i") |
| + DECLARE_HYDROGEN_ACCESSOR(Constant) |
| - private: |
| - int32_t value_; |
| + int32_t value() const { return hydrogen()->Integer32Value(); } |
| }; |
| -class LConstantD: public LConstant<1> { |
| +class LConstantD: public LTemplateInstruction<1, 0, 1> { |
| public: |
| - explicit LConstantD(double value, LOperand* temp) : value_(value) { |
| + explicit LConstantD(LOperand* temp) { |
| temps_[0] = temp; |
| } |
| - double value() const { return value_; } |
| - |
| DECLARE_CONCRETE_INSTRUCTION(ConstantD, "constant-d") |
| + DECLARE_HYDROGEN_ACCESSOR(Constant) |
| - private: |
| - double value_; |
| + double value() const { return hydrogen()->DoubleValue(); } |
| }; |
| -class LConstantT: public LConstant<0> { |
| +class LConstantT: public LTemplateInstruction<1, 0, 0> { |
| public: |
| - explicit LConstantT(Handle<Object> value) : value_(value) { } |
| - Handle<Object> value() const { return value_; } |
| - |
| DECLARE_CONCRETE_INSTRUCTION(ConstantT, "constant-t") |
| + DECLARE_HYDROGEN_ACCESSOR(Constant) |
| - private: |
| - Handle<Object> value_; |
| + Handle<Object> value() const { return hydrogen()->handle(); } |
| }; |