| 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/mips64/lithium-codegen-mips64.h" | 5 #include "src/crankshaft/mips64/lithium-codegen-mips64.h" | 
| 6 | 6 | 
| 7 #include "src/code-factory.h" | 7 #include "src/code-factory.h" | 
| 8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" | 
| 9 #include "src/crankshaft/hydrogen-osr.h" | 9 #include "src/crankshaft/hydrogen-osr.h" | 
| 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 
| (...skipping 2943 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2954     __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 2954     __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 
| 2955     __ Branch(&done, ne, result, Operand(scratch)); | 2955     __ Branch(&done, ne, result, Operand(scratch)); | 
| 2956     if (info()->IsStub()) { | 2956     if (info()->IsStub()) { | 
| 2957       // A stub can safely convert the hole to undefined only if the array | 2957       // A stub can safely convert the hole to undefined only if the array | 
| 2958       // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise | 2958       // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise | 
| 2959       // it needs to bail out. | 2959       // it needs to bail out. | 
| 2960       __ LoadRoot(result, Heap::kArrayProtectorRootIndex); | 2960       __ LoadRoot(result, Heap::kArrayProtectorRootIndex); | 
| 2961       // The comparison only needs LS bits of value, which is a smi. | 2961       // The comparison only needs LS bits of value, which is a smi. | 
| 2962       __ ld(result, FieldMemOperand(result, Cell::kValueOffset)); | 2962       __ ld(result, FieldMemOperand(result, Cell::kValueOffset)); | 
| 2963       DeoptimizeIf(ne, instr, DeoptimizeReason::kHole, result, | 2963       DeoptimizeIf(ne, instr, DeoptimizeReason::kHole, result, | 
| 2964                    Operand(Smi::FromInt(Isolate::kArrayProtectorValid))); | 2964                    Operand(Smi::FromInt(Isolate::kProtectorValid))); | 
| 2965     } | 2965     } | 
| 2966     __ LoadRoot(result, Heap::kUndefinedValueRootIndex); | 2966     __ LoadRoot(result, Heap::kUndefinedValueRootIndex); | 
| 2967     __ bind(&done); | 2967     __ bind(&done); | 
| 2968   } | 2968   } | 
| 2969 } | 2969 } | 
| 2970 | 2970 | 
| 2971 | 2971 | 
| 2972 void LCodeGen::DoLoadKeyed(LLoadKeyed* instr) { | 2972 void LCodeGen::DoLoadKeyed(LLoadKeyed* instr) { | 
| 2973   if (instr->is_fixed_typed_array()) { | 2973   if (instr->is_fixed_typed_array()) { | 
| 2974     DoLoadKeyedExternalArray(instr); | 2974     DoLoadKeyedExternalArray(instr); | 
| (...skipping 2629 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5604   __ ld(result, FieldMemOperand(scratch, | 5604   __ ld(result, FieldMemOperand(scratch, | 
| 5605                                 FixedArray::kHeaderSize - kPointerSize)); | 5605                                 FixedArray::kHeaderSize - kPointerSize)); | 
| 5606   __ bind(deferred->exit()); | 5606   __ bind(deferred->exit()); | 
| 5607   __ bind(&done); | 5607   __ bind(&done); | 
| 5608 } | 5608 } | 
| 5609 | 5609 | 
| 5610 #undef __ | 5610 #undef __ | 
| 5611 | 5611 | 
| 5612 }  // namespace internal | 5612 }  // namespace internal | 
| 5613 }  // namespace v8 | 5613 }  // namespace v8 | 
| OLD | NEW | 
|---|