| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/arm64/lithium-codegen-arm64.h" | 5 #include "src/crankshaft/arm64/lithium-codegen-arm64.h" |
| 6 | 6 |
| 7 #include "src/arm64/frames-arm64.h" | 7 #include "src/arm64/frames-arm64.h" |
| 8 #include "src/base/bits.h" | 8 #include "src/base/bits.h" |
| 9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 5781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5792 __ JumpIfRoot(receiver, Heap::kUndefinedValueRootIndex, &global_object); | 5792 __ JumpIfRoot(receiver, Heap::kUndefinedValueRootIndex, &global_object); |
| 5793 | 5793 |
| 5794 // Deoptimize if the receiver is not a JS object. | 5794 // Deoptimize if the receiver is not a JS object. |
| 5795 DeoptimizeIfSmi(receiver, instr, Deoptimizer::kSmi); | 5795 DeoptimizeIfSmi(receiver, instr, Deoptimizer::kSmi); |
| 5796 __ CompareObjectType(receiver, result, result, FIRST_SPEC_OBJECT_TYPE); | 5796 __ CompareObjectType(receiver, result, result, FIRST_SPEC_OBJECT_TYPE); |
| 5797 __ B(ge, ©_receiver); | 5797 __ B(ge, ©_receiver); |
| 5798 Deoptimize(instr, Deoptimizer::kNotAJavaScriptObject); | 5798 Deoptimize(instr, Deoptimizer::kNotAJavaScriptObject); |
| 5799 | 5799 |
| 5800 __ Bind(&global_object); | 5800 __ Bind(&global_object); |
| 5801 __ Ldr(result, FieldMemOperand(function, JSFunction::kContextOffset)); | 5801 __ Ldr(result, FieldMemOperand(function, JSFunction::kContextOffset)); |
| 5802 __ Ldr(result, ContextMemOperand(result, Context::NATIVE_CONTEXT_INDEX)); | 5802 __ Ldr(result, ContextMemOperand(result, Context::GLOBAL_OBJECT_INDEX)); |
| 5803 __ Ldr(result, ContextMemOperand(result, Context::GLOBAL_PROXY_INDEX)); | 5803 __ Ldr(result, FieldMemOperand(result, JSGlobalObject::kGlobalProxyOffset)); |
| 5804 __ B(&done); | 5804 __ B(&done); |
| 5805 | 5805 |
| 5806 __ Bind(©_receiver); | 5806 __ Bind(©_receiver); |
| 5807 __ Mov(result, receiver); | 5807 __ Mov(result, receiver); |
| 5808 __ Bind(&done); | 5808 __ Bind(&done); |
| 5809 } | 5809 } |
| 5810 | 5810 |
| 5811 | 5811 |
| 5812 void LCodeGen::DoDeferredLoadMutableDouble(LLoadFieldByIndex* instr, | 5812 void LCodeGen::DoDeferredLoadMutableDouble(LLoadFieldByIndex* instr, |
| 5813 Register result, | 5813 Register result, |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5895 Handle<ScopeInfo> scope_info = instr->scope_info(); | 5895 Handle<ScopeInfo> scope_info = instr->scope_info(); |
| 5896 __ Push(scope_info); | 5896 __ Push(scope_info); |
| 5897 __ Push(ToRegister(instr->function())); | 5897 __ Push(ToRegister(instr->function())); |
| 5898 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 5898 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
| 5899 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5899 RecordSafepoint(Safepoint::kNoLazyDeopt); |
| 5900 } | 5900 } |
| 5901 | 5901 |
| 5902 | 5902 |
| 5903 } // namespace internal | 5903 } // namespace internal |
| 5904 } // namespace v8 | 5904 } // namespace v8 |
| OLD | NEW |