Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index 37d83909a011afd4d859c1413275696fbebeca4e..7fdc58adcac219d368c971a54c700cb8a414ddf9 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -1857,6 +1857,16 @@ LInstruction* LChunkBuilder::DoCheckSmi(HCheckSmi* instr) { |
} |
+LInstruction* LChunkBuilder::DoCheckSmiOrInt32(HCheckSmiOrInt32* instr) { |
+ if (instr->representation().IsTagged() && !instr->type().IsSmi()) { |
+ LOperand* value = UseAtStart(instr->value()); |
+ return AssignEnvironment(new(zone()) LCheckSmi(value)); |
+ } else { |
+ return NULL; |
+ } |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoCheckFunction(HCheckFunction* instr) { |
// If the target is in new space, we'll emit a global cell compare and so |
// want the value in a register. If the target gets promoted before we |