Fix overzealous casting that erroneously lead to ASSERTs

R=verwaest@chromium.org

Review URL: https://chromiumcodereview.appspot.com/21372002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
danno@chromium.org 2013-07-31 15:40:24 +00:00
parent 4cdffbf4fe
commit e5e0100504

View File

@ -7729,7 +7729,7 @@ HInstruction* HOptimizedGraphBuilder::BuildBinaryOperation(
break; break;
case Token::BIT_XOR: case Token::BIT_XOR:
case Token::BIT_AND: case Token::BIT_AND:
instr = New<HBitwise>(expr->op(), left, right); instr = NewUncasted<HBitwise>(expr->op(), left, right);
break; break;
case Token::BIT_OR: { case Token::BIT_OR: {
HValue* operand, *shift_amount; HValue* operand, *shift_amount;
@ -7738,7 +7738,7 @@ HInstruction* HOptimizedGraphBuilder::BuildBinaryOperation(
MatchRotateRight(left, right, &operand, &shift_amount)) { MatchRotateRight(left, right, &operand, &shift_amount)) {
instr = new(zone()) HRor(context, operand, shift_amount); instr = new(zone()) HRor(context, operand, shift_amount);
} else { } else {
instr = New<HBitwise>(expr->op(), left, right); instr = NewUncasted<HBitwise>(expr->op(), left, right);
} }
break; break;
} }