| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #include "v8.h" |     5 #include "v8.h" | 
|     6  |     6  | 
|     7 #include "arm/lithium-codegen-arm.h" |     7 #include "arm/lithium-codegen-arm.h" | 
|     8 #include "arm/lithium-gap-resolver-arm.h" |     8 #include "arm/lithium-gap-resolver-arm.h" | 
|     9 #include "code-stubs.h" |     9 #include "code-stubs.h" | 
|    10 #include "stub-cache.h" |    10 #include "stub-cache.h" | 
| (...skipping 5137 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5148   Register reg = ToRegister(input); |  5148   Register reg = ToRegister(input); | 
|  5149  |  5149  | 
|  5150   __ ldr(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset)); |  5150   __ ldr(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset)); | 
|  5151  |  5151  | 
|  5152   DeferredCheckMaps* deferred = NULL; |  5152   DeferredCheckMaps* deferred = NULL; | 
|  5153   if (instr->hydrogen()->has_migration_target()) { |  5153   if (instr->hydrogen()->has_migration_target()) { | 
|  5154     deferred = new(zone()) DeferredCheckMaps(this, instr, reg); |  5154     deferred = new(zone()) DeferredCheckMaps(this, instr, reg); | 
|  5155     __ bind(deferred->check_maps()); |  5155     __ bind(deferred->check_maps()); | 
|  5156   } |  5156   } | 
|  5157  |  5157  | 
|  5158   const UniqueSet<Map>* map_set = instr->hydrogen()->map_set(); |  5158   const UniqueSet<Map>* maps = instr->hydrogen()->maps(); | 
|  5159   Label success; |  5159   Label success; | 
|  5160   for (int i = 0; i < map_set->size() - 1; i++) { |  5160   for (int i = 0; i < maps->size() - 1; i++) { | 
|  5161     Handle<Map> map = map_set->at(i).handle(); |  5161     Handle<Map> map = maps->at(i).handle(); | 
|  5162     __ CompareMap(map_reg, map, &success); |  5162     __ CompareMap(map_reg, map, &success); | 
|  5163     __ b(eq, &success); |  5163     __ b(eq, &success); | 
|  5164   } |  5164   } | 
|  5165  |  5165  | 
|  5166   Handle<Map> map = map_set->at(map_set->size() - 1).handle(); |  5166   Handle<Map> map = maps->at(maps->size() - 1).handle(); | 
|  5167   __ CompareMap(map_reg, map, &success); |  5167   __ CompareMap(map_reg, map, &success); | 
|  5168   if (instr->hydrogen()->has_migration_target()) { |  5168   if (instr->hydrogen()->has_migration_target()) { | 
|  5169     __ b(ne, deferred->entry()); |  5169     __ b(ne, deferred->entry()); | 
|  5170   } else { |  5170   } else { | 
|  5171     DeoptimizeIf(ne, instr->environment()); |  5171     DeoptimizeIf(ne, instr->environment()); | 
|  5172   } |  5172   } | 
|  5173  |  5173  | 
|  5174   __ bind(&success); |  5174   __ bind(&success); | 
|  5175 } |  5175 } | 
|  5176  |  5176  | 
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5830   __ ldr(result, FieldMemOperand(scratch, |  5830   __ ldr(result, FieldMemOperand(scratch, | 
|  5831                                  FixedArray::kHeaderSize - kPointerSize)); |  5831                                  FixedArray::kHeaderSize - kPointerSize)); | 
|  5832   __ bind(deferred->exit()); |  5832   __ bind(deferred->exit()); | 
|  5833   __ bind(&done); |  5833   __ bind(&done); | 
|  5834 } |  5834 } | 
|  5835  |  5835  | 
|  5836  |  5836  | 
|  5837 #undef __ |  5837 #undef __ | 
|  5838  |  5838  | 
|  5839 } }  // namespace v8::internal |  5839 } }  // namespace v8::internal | 
| OLD | NEW |