Index: src/full-codegen.cc |
=================================================================== |
--- src/full-codegen.cc (revision 6981) |
+++ src/full-codegen.cc (working copy) |
@@ -739,25 +739,13 @@ |
case Token::SHL: |
case Token::SHR: |
case Token::SAR: { |
- // Figure out if either of the operands is a constant. |
- ConstantOperand constant = ShouldInlineSmiCase(op) |
- ? GetConstantOperand(op, left, right) |
- : kNoConstants; |
+ // Load both operands. |
+ VisitForStackValue(left); |
+ VisitForAccumulatorValue(right); |
- // Load only the operands that we need to materialize. |
- if (constant == kNoConstants) { |
- VisitForStackValue(left); |
- VisitForAccumulatorValue(right); |
- } else if (constant == kRightConstant) { |
- VisitForAccumulatorValue(left); |
- } else { |
- ASSERT(constant == kLeftConstant); |
- VisitForAccumulatorValue(right); |
- } |
- |
SetSourcePosition(expr->position()); |
if (ShouldInlineSmiCase(op)) { |
- EmitInlineSmiBinaryOp(expr, op, mode, left, right, constant); |
+ EmitInlineSmiBinaryOp(expr, op, mode, left, right); |
} else { |
EmitBinaryOp(op, mode); |
} |