Index: src/ia32/lithium-codegen-ia32.cc |
=================================================================== |
--- src/ia32/lithium-codegen-ia32.cc (revision 7203) |
+++ src/ia32/lithium-codegen-ia32.cc (working copy) |
@@ -3497,12 +3497,18 @@ |
void LCodeGen::DoCheckSmi(LCheckSmi* instr) { |
LOperand* input = instr->InputAt(0); |
- ASSERT(input->IsRegister()); |
__ test(ToRegister(input), Immediate(kSmiTagMask)); |
- DeoptimizeIf(instr->condition(), instr->environment()); |
+ DeoptimizeIf(not_zero, instr->environment()); |
} |
+void LCodeGen::DoCheckNonSmi(LCheckNonSmi* instr) { |
+ LOperand* input = instr->InputAt(0); |
+ __ test(ToRegister(input), Immediate(kSmiTagMask)); |
+ DeoptimizeIf(zero, instr->environment()); |
+} |
+ |
+ |
void LCodeGen::DoCheckInstanceType(LCheckInstanceType* instr) { |
Register input = ToRegister(instr->InputAt(0)); |
Register temp = ToRegister(instr->TempAt(0)); |