Chromium Code Reviews| Index: src/hydrogen-instructions.h |
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
| index dfffe41fca745672ace8ec5ec05774e91de132ed..57fa4363b512341800daa91f27bb2abd711f2d3b 100644 |
| --- a/src/hydrogen-instructions.h |
| +++ b/src/hydrogen-instructions.h |
| @@ -153,6 +153,7 @@ class LChunkBuilder; |
| V(Random) \ |
| V(RegExpLiteral) \ |
| V(Return) \ |
| + V(Ror) \ |
| V(Sar) \ |
| V(Shl) \ |
| V(Shr) \ |
| @@ -897,6 +898,11 @@ class HInstruction: public HValue { |
| virtual bool IsCall() { return false; } |
| + bool UnusedAndSafeToDelete() const { |
| + bool deleteable_operation = IsBitwiseBinaryOperation(); |
|
ulan
2012/10/01 18:15:19
danno, michael: any suggestions for other instruct
|
| + return HasNoUses() && !HasObservableSideEffects() && deleteable_operation; |
| + } |
| + |
| DECLARE_ABSTRACT_INSTRUCTION(Instruction) |
| protected: |
| @@ -3649,6 +3655,29 @@ class HSar: public HBitwiseBinaryOperation { |
| }; |
| +class HRor: public HBitwiseBinaryOperation { |
| + public: |
| + HRor(HValue* context, HValue* left, HValue* right) |
| + : HBitwiseBinaryOperation(context, left, right) { |
| + ChangeRepresentation(Representation::Integer32()); |
| + } |
| + |
| + virtual Representation RequiredInputRepresentation(int index) { |
| + return Representation::Integer32(); |
| + } |
| + |
| + static HInstruction* NewHRor(Zone* zone, |
| + HValue* context, |
| + HValue* left, |
| + HValue* right); |
| + |
| + DECLARE_CONCRETE_INSTRUCTION(Ror) |
| + |
| + protected: |
| + virtual bool DataEquals(HValue* other) { return true; } |
| +}; |
| + |
| + |
| class HOsrEntry: public HTemplateInstruction<0> { |
| public: |
| explicit HOsrEntry(BailoutId ast_id) : ast_id_(ast_id) { |