| Index: sdk/lib/_internal/compiler/implementation/ssa/nodes.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/ssa/nodes.dart (revision 30633)
|
| +++ sdk/lib/_internal/compiler/implementation/ssa/nodes.dart (working copy)
|
| @@ -55,6 +55,7 @@
|
| R visitRangeConversion(HRangeConversion node);
|
| R visitReturn(HReturn node);
|
| R visitShiftLeft(HShiftLeft node);
|
| + R visitShiftRight(HShiftRight node);
|
| R visitStatic(HStatic node);
|
| R visitStaticStore(HStaticStore node);
|
| R visitStringConcat(HStringConcat node);
|
| @@ -336,6 +337,7 @@
|
| visitRangeConversion(HRangeConversion node) => visitCheck(node);
|
| visitReturn(HReturn node) => visitControlFlow(node);
|
| visitShiftLeft(HShiftLeft node) => visitBinaryBitOp(node);
|
| + visitShiftRight(HShiftRight node) => visitBinaryBitOp(node);
|
| visitSubtract(HSubtract node) => visitBinaryArithmetic(node);
|
| visitSwitch(HSwitch node) => visitControlFlow(node);
|
| visitStatic(HStatic node) => visitInstruction(node);
|
| @@ -801,6 +803,7 @@
|
| static const int INDEX_TYPECODE = 27;
|
| static const int IS_TYPECODE = 28;
|
| static const int INVOKE_DYNAMIC_TYPECODE = 29;
|
| + static const int SHIFT_RIGHT_TYPECODE = 30;
|
|
|
| HInstruction(this.inputs, this.instructionType)
|
| : id = idCounter++, usedBy = <HInstruction>[] {
|
| @@ -1727,6 +1730,17 @@
|
| bool dataEquals(HInstruction other) => true;
|
| }
|
|
|
| +class HShiftRight extends HBinaryBitOp {
|
| + HShiftRight(left, right, selector, type) : super(left, right, selector, type);
|
| + accept(HVisitor visitor) => visitor.visitShiftRight(this);
|
| +
|
| + BinaryOperation operation(ConstantSystem constantSystem)
|
| + => constantSystem.shiftRight;
|
| + int typeCode() => HInstruction.SHIFT_RIGHT_TYPECODE;
|
| + bool typeEquals(other) => other is HShiftRight;
|
| + bool dataEquals(HInstruction other) => true;
|
| +}
|
| +
|
| class HBitOr extends HBinaryBitOp {
|
| HBitOr(left, right, selector, type) : super(left, right, selector, type);
|
| accept(HVisitor visitor) => visitor.visitBitOr(this);
|
|
|