| OLD | NEW | 
|---|
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/ppc/lithium-codegen-ppc.h" | 5 #include "src/crankshaft/ppc/lithium-codegen-ppc.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/hydrogen-osr.h" | 10 #include "src/crankshaft/hydrogen-osr.h" | 
| (...skipping 3018 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3029     Label done; | 3029     Label done; | 
| 3030     __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 3030     __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); | 
| 3031     __ cmp(result, scratch); | 3031     __ cmp(result, scratch); | 
| 3032     __ bne(&done); | 3032     __ bne(&done); | 
| 3033     if (info()->IsStub()) { | 3033     if (info()->IsStub()) { | 
| 3034       // A stub can safely convert the hole to undefined only if the array | 3034       // A stub can safely convert the hole to undefined only if the array | 
| 3035       // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise | 3035       // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise | 
| 3036       // it needs to bail out. | 3036       // it needs to bail out. | 
| 3037       __ LoadRoot(result, Heap::kArrayProtectorRootIndex); | 3037       __ LoadRoot(result, Heap::kArrayProtectorRootIndex); | 
| 3038       __ LoadP(result, FieldMemOperand(result, Cell::kValueOffset)); | 3038       __ LoadP(result, FieldMemOperand(result, Cell::kValueOffset)); | 
| 3039       __ CmpSmiLiteral(result, Smi::FromInt(Isolate::kArrayProtectorValid), r0); | 3039       __ CmpSmiLiteral(result, Smi::FromInt(Isolate::kProtectorValid), r0); | 
| 3040       DeoptimizeIf(ne, instr, DeoptimizeReason::kHole); | 3040       DeoptimizeIf(ne, instr, DeoptimizeReason::kHole); | 
| 3041     } | 3041     } | 
| 3042     __ LoadRoot(result, Heap::kUndefinedValueRootIndex); | 3042     __ LoadRoot(result, Heap::kUndefinedValueRootIndex); | 
| 3043     __ bind(&done); | 3043     __ bind(&done); | 
| 3044   } | 3044   } | 
| 3045 } | 3045 } | 
| 3046 | 3046 | 
| 3047 | 3047 | 
| 3048 void LCodeGen::DoLoadKeyed(LLoadKeyed* instr) { | 3048 void LCodeGen::DoLoadKeyed(LLoadKeyed* instr) { | 
| 3049   if (instr->is_fixed_typed_array()) { | 3049   if (instr->is_fixed_typed_array()) { | 
| (...skipping 2588 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5638   __ LoadP(result, | 5638   __ LoadP(result, | 
| 5639            FieldMemOperand(scratch, FixedArray::kHeaderSize - kPointerSize)); | 5639            FieldMemOperand(scratch, FixedArray::kHeaderSize - kPointerSize)); | 
| 5640   __ bind(deferred->exit()); | 5640   __ bind(deferred->exit()); | 
| 5641   __ bind(&done); | 5641   __ bind(&done); | 
| 5642 } | 5642 } | 
| 5643 | 5643 | 
| 5644 #undef __ | 5644 #undef __ | 
| 5645 | 5645 | 
| 5646 }  // namespace internal | 5646 }  // namespace internal | 
| 5647 }  // namespace v8 | 5647 }  // namespace v8 | 
| OLD | NEW | 
|---|