| 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 "src/crankshaft/arm/lithium-codegen-arm.h" |     5 #include "src/crankshaft/arm/lithium-codegen-arm.h" | 
|     6  |     6  | 
|     7 #include "src/base/bits.h" |     7 #include "src/base/bits.h" | 
|     8 #include "src/code-factory.h" |     8 #include "src/code-factory.h" | 
|     9 #include "src/code-stubs.h" |     9 #include "src/code-stubs.h" | 
|    10 #include "src/crankshaft/arm/lithium-gap-resolver-arm.h" |    10 #include "src/crankshaft/arm/lithium-gap-resolver-arm.h" | 
| (...skipping 2858 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2869     Label done; |  2869     Label done; | 
|  2870     __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); |  2870     __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 
|  2871     __ cmp(result, scratch); |  2871     __ cmp(result, scratch); | 
|  2872     __ b(ne, &done); |  2872     __ b(ne, &done); | 
|  2873     if (info()->IsStub()) { |  2873     if (info()->IsStub()) { | 
|  2874       // A stub can safely convert the hole to undefined only if the array |  2874       // A stub can safely convert the hole to undefined only if the array | 
|  2875       // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise |  2875       // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise | 
|  2876       // it needs to bail out. |  2876       // it needs to bail out. | 
|  2877       __ LoadRoot(result, Heap::kArrayProtectorRootIndex); |  2877       __ LoadRoot(result, Heap::kArrayProtectorRootIndex); | 
|  2878       __ ldr(result, FieldMemOperand(result, Cell::kValueOffset)); |  2878       __ ldr(result, FieldMemOperand(result, Cell::kValueOffset)); | 
|  2879       __ cmp(result, Operand(Smi::FromInt(Isolate::kArrayProtectorValid))); |  2879       __ cmp(result, Operand(Smi::FromInt(Isolate::kProtectorValid))); | 
|  2880       DeoptimizeIf(ne, instr, DeoptimizeReason::kHole); |  2880       DeoptimizeIf(ne, instr, DeoptimizeReason::kHole); | 
|  2881     } |  2881     } | 
|  2882     __ LoadRoot(result, Heap::kUndefinedValueRootIndex); |  2882     __ LoadRoot(result, Heap::kUndefinedValueRootIndex); | 
|  2883     __ bind(&done); |  2883     __ bind(&done); | 
|  2884   } |  2884   } | 
|  2885 } |  2885 } | 
|  2886  |  2886  | 
|  2887  |  2887  | 
|  2888 void LCodeGen::DoLoadKeyed(LLoadKeyed* instr) { |  2888 void LCodeGen::DoLoadKeyed(LLoadKeyed* instr) { | 
|  2889   if (instr->is_fixed_typed_array()) { |  2889   if (instr->is_fixed_typed_array()) { | 
| (...skipping 2494 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5384   __ ldr(result, FieldMemOperand(scratch, |  5384   __ ldr(result, FieldMemOperand(scratch, | 
|  5385                                  FixedArray::kHeaderSize - kPointerSize)); |  5385                                  FixedArray::kHeaderSize - kPointerSize)); | 
|  5386   __ bind(deferred->exit()); |  5386   __ bind(deferred->exit()); | 
|  5387   __ bind(&done); |  5387   __ bind(&done); | 
|  5388 } |  5388 } | 
|  5389  |  5389  | 
|  5390 #undef __ |  5390 #undef __ | 
|  5391  |  5391  | 
|  5392 }  // namespace internal |  5392 }  // namespace internal | 
|  5393 }  // namespace v8 |  5393 }  // namespace v8 | 
| OLD | NEW |