| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index d12b229c381323ca0f80f417548b6e29e90e9403..18121821671d58bb762480df85fe175022583d37 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -5230,6 +5230,7 @@ void LCodeGen::DoCheckMapCommon(Register map_reg,
|
|
|
|
|
| void LCodeGen::DoCheckMaps(LCheckMaps* instr) {
|
| + if (instr->hydrogen()->CanOmitMapChecks()) return;
|
| Register map_reg = scratch0();
|
| LOperand* input = instr->value();
|
| ASSERT(input->IsRegister());
|
| @@ -5302,6 +5303,8 @@ void LCodeGen::DoClampTToUint8(LClampTToUint8* instr) {
|
|
|
|
|
| void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) {
|
| + if (instr->hydrogen()->CanOmitPrototypeChecks()) return;
|
| +
|
| Register prototype_reg = ToRegister(instr->temp());
|
| Register map_reg = ToRegister(instr->temp2());
|
|
|
| @@ -5310,12 +5313,10 @@ void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) {
|
|
|
| ASSERT(prototypes->length() == maps->length());
|
|
|
| - if (!instr->hydrogen()->CanOmitPrototypeChecks()) {
|
| - for (int i = 0; i < prototypes->length(); i++) {
|
| - __ LoadHeapObject(prototype_reg, prototypes->at(i));
|
| - __ ldr(map_reg, FieldMemOperand(prototype_reg, HeapObject::kMapOffset));
|
| - DoCheckMapCommon(map_reg, maps->at(i), instr->environment());
|
| - }
|
| + for (int i = 0; i < prototypes->length(); i++) {
|
| + __ LoadHeapObject(prototype_reg, prototypes->at(i));
|
| + __ ldr(map_reg, FieldMemOperand(prototype_reg, HeapObject::kMapOffset));
|
| + DoCheckMapCommon(map_reg, maps->at(i), instr->environment());
|
| }
|
| }
|
|
|
|
|