Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 38d2011d0b736badcf452b9254febc7ef6d1fa38..d1bb4aa97570183f993313c476e2d3b7db705cb5 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -5802,6 +5802,7 @@ void LCodeGen::DoCheckMapCommon(Register reg, |
void LCodeGen::DoCheckMaps(LCheckMaps* instr) { |
+ if (instr->hydrogen()->CanOmitMapChecks()) return; |
LOperand* input = instr->value(); |
ASSERT(input->IsRegister()); |
Register reg = ToRegister(input); |
@@ -5992,6 +5993,7 @@ void LCodeGen::DoClampTToUint8NoSSE2(LClampTToUint8NoSSE2* instr) { |
void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) { |
+ if (instr->hydrogen()->CanOmitPrototypeChecks()) return; |
Register reg = ToRegister(instr->temp()); |
ZoneList<Handle<JSObject> >* prototypes = instr->prototypes(); |
@@ -5999,11 +6001,9 @@ void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) { |
ASSERT(prototypes->length() == maps->length()); |
- if (!instr->hydrogen()->CanOmitPrototypeChecks()) { |
- for (int i = 0; i < prototypes->length(); i++) { |
- __ LoadHeapObject(reg, prototypes->at(i)); |
- DoCheckMapCommon(reg, maps->at(i), instr); |
- } |
+ for (int i = 0; i < prototypes->length(); i++) { |
+ __ LoadHeapObject(reg, prototypes->at(i)); |
+ DoCheckMapCommon(reg, maps->at(i), instr); |
} |
} |