Chromium Code Reviews| Index: src/hydrogen-instructions.h |
| =================================================================== |
| --- src/hydrogen-instructions.h (revision 5948) |
| +++ src/hydrogen-instructions.h (working copy) |
| @@ -77,6 +77,7 @@ |
| // HLoadKeyedFastElement |
| // HLoadKeyedGeneric |
| // HLoadNamedGeneric |
| +// HPower |
| // HStoreNamed |
| // HStoreNamedField |
| // HStoreNamedGeneric |
| @@ -223,6 +224,7 @@ |
| V(ObjectLiteral) \ |
| V(OsrEntry) \ |
| V(Parameter) \ |
| + V(Power) \ |
| V(PushArgument) \ |
| V(RegExpLiteral) \ |
| V(Return) \ |
| @@ -1377,6 +1379,7 @@ |
| SetFlag(kFlexibleRepresentation); |
| break; |
| case kMathSqrt: |
| + case kMathPowHalf: |
| default: |
| set_representation(Representation::Double()); |
| } |
| @@ -1395,6 +1398,7 @@ |
| case kMathRound: |
| case kMathCeil: |
| case kMathSqrt: |
| + case kMathPowHalf: |
| return Representation::Double(); |
| break; |
| case kMathAbs: |
| @@ -2184,6 +2188,24 @@ |
| }; |
| +class HPower: public HBinaryOperation { |
| + public: |
| + HPower(HValue* left, HValue* right) |
| + : HBinaryOperation(left, right) { |
| + set_representation(Representation::Double()); |
| + SetFlag(kUseGVN); |
| + } |
| + |
| + virtual bool EmitAtUses() const { return uses()->length() <= 1; } |
|
Florian Schneider
2010/12/08 14:09:27
Remove.
|
| + |
| + virtual Representation RequiredInputRepresentation(int index) const { |
| + return (index == 1) ? Representation::None() : Representation::Double(); |
| + } |
| + |
| + DECLARE_CONCRETE_INSTRUCTION(Power, "power") |
| +}; |
| + |
| + |
| class HAdd: public HArithmeticBinaryOperation { |
| public: |
| HAdd(HValue* left, HValue* right) : HArithmeticBinaryOperation(left, right) { |