| Index: src/ia32/codegen-ia32.cc
|
| ===================================================================
|
| --- src/ia32/codegen-ia32.cc (revision 4480)
|
| +++ src/ia32/codegen-ia32.cc (working copy)
|
| @@ -7047,6 +7047,12 @@
|
| (node->expression()->AsBinaryOperation() != NULL &&
|
| node->expression()->AsBinaryOperation()->ResultOverwriteAllowed());
|
| switch (op) {
|
| + case Token::NOT:
|
| + case Token::DELETE:
|
| + case Token::TYPEOF:
|
| + UNREACHABLE(); // handled above
|
| + break;
|
| +
|
| case Token::SUB: {
|
| GenericUnaryOpStub stub(Token::SUB, overwrite);
|
| Result operand = frame_->Pop();
|
| @@ -7087,11 +7093,7 @@
|
| __ not_(answer.reg());
|
|
|
| continue_label.Bind(&answer);
|
| - if (operand_info.IsInteger32()) {
|
| - answer.set_type_info(TypeInfo::Integer32());
|
| - } else {
|
| - answer.set_type_info(TypeInfo::Number());
|
| - }
|
| + answer.set_type_info(TypeInfo::Integer32());
|
| frame_->Push(&answer);
|
| }
|
| break;
|
| @@ -7121,8 +7123,6 @@
|
| break;
|
| }
|
| default:
|
| - // NOT, DELETE, TYPEOF, and VOID are handled outside the
|
| - // switch.
|
| UNREACHABLE();
|
| }
|
| }
|
| @@ -7333,7 +7333,7 @@
|
| __ setcc(overflow, tmp.reg());
|
| __ or_(Operand(tmp.reg()), new_value.reg());
|
| __ test(tmp.reg(), Immediate(kSmiTagMask));
|
| - tmp.Unuse();
|
| + tmp.Unusec();
|
| deferred->Branch(not_zero);
|
| } else {
|
| // Otherwise we test separately for overflow and smi tag.
|
|
|