| 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();
|
| + 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) {
|
|
|