| 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 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
| 6 | 6 |
| 7 #include "src/ic/handler-compiler.h" | 7 #include "src/ic/handler-compiler.h" |
| 8 | 8 |
| 9 #include "src/field-type.h" | 9 #include "src/field-type.h" |
| 10 #include "src/ic/call-optimization.h" | 10 #include "src/ic/call-optimization.h" |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 // Write the arguments to the stack frame. | 153 // Write the arguments to the stack frame. |
| 154 if (is_store) { | 154 if (is_store) { |
| 155 DCHECK(!receiver.is(store_parameter)); | 155 DCHECK(!receiver.is(store_parameter)); |
| 156 DCHECK(!scratch.is(store_parameter)); | 156 DCHECK(!scratch.is(store_parameter)); |
| 157 queue.Queue(store_parameter); | 157 queue.Queue(store_parameter); |
| 158 } | 158 } |
| 159 queue.PushQueued(); | 159 queue.PushQueued(); |
| 160 | 160 |
| 161 DCHECK(optimization.is_simple_api_call()); | 161 DCHECK(optimization.is_simple_api_call()); |
| 162 | 162 |
| 163 // Abi for CallApiCallbackStub. | 163 // Abi for CallApiFunctionStub. |
| 164 Register callee = x0; | 164 Register callee = x0; |
| 165 Register data = x4; | 165 Register data = x4; |
| 166 Register holder = x2; | 166 Register holder = x2; |
| 167 Register api_function_address = x1; | 167 Register api_function_address = x1; |
| 168 | 168 |
| 169 // Put callee in place. | 169 // Put callee in place. |
| 170 __ LoadAccessor(callee, accessor_holder, accessor_index, | 170 __ LoadAccessor(callee, accessor_holder, accessor_index, |
| 171 is_store ? ACCESSOR_SETTER : ACCESSOR_GETTER); | 171 is_store ? ACCESSOR_SETTER : ACCESSOR_GETTER); |
| 172 | 172 |
| 173 // Put holder in place. | 173 // Put holder in place. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 } | 222 } |
| 223 | 223 |
| 224 // Put api_function_address in place. | 224 // Put api_function_address in place. |
| 225 Address function_address = v8::ToCData<Address>(api_call_info->callback()); | 225 Address function_address = v8::ToCData<Address>(api_call_info->callback()); |
| 226 ApiFunction fun(function_address); | 226 ApiFunction fun(function_address); |
| 227 ExternalReference ref = ExternalReference( | 227 ExternalReference ref = ExternalReference( |
| 228 &fun, ExternalReference::DIRECT_API_CALL, masm->isolate()); | 228 &fun, ExternalReference::DIRECT_API_CALL, masm->isolate()); |
| 229 __ Mov(api_function_address, ref); | 229 __ Mov(api_function_address, ref); |
| 230 | 230 |
| 231 // Jump to stub. | 231 // Jump to stub. |
| 232 CallApiCallbackStub stub(isolate, is_store, call_data_undefined, | 232 CallApiAccessorStub stub(isolate, is_store, call_data_undefined, |
| 233 !optimization.is_constant_call()); | 233 !optimization.is_constant_call()); |
| 234 __ TailCallStub(&stub); | 234 __ TailCallStub(&stub); |
| 235 } | 235 } |
| 236 | 236 |
| 237 | 237 |
| 238 void NamedStoreHandlerCompiler::GenerateStoreViaSetter( | 238 void NamedStoreHandlerCompiler::GenerateStoreViaSetter( |
| 239 MacroAssembler* masm, Handle<Map> map, Register receiver, Register holder, | 239 MacroAssembler* masm, Handle<Map> map, Register receiver, Register holder, |
| 240 int accessor_index, int expected_arguments, Register scratch) { | 240 int accessor_index, int expected_arguments, Register scratch) { |
| 241 // ----------- S t a t e ------------- | 241 // ----------- S t a t e ------------- |
| 242 // -- lr : return address | 242 // -- lr : return address |
| (...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 799 // Return the generated code. | 799 // Return the generated code. |
| 800 return GetCode(kind(), Code::FAST, name); | 800 return GetCode(kind(), Code::FAST, name); |
| 801 } | 801 } |
| 802 | 802 |
| 803 | 803 |
| 804 #undef __ | 804 #undef __ |
| 805 } // namespace internal | 805 } // namespace internal |
| 806 } // namespace v8 | 806 } // namespace v8 |
| 807 | 807 |
| 808 #endif // V8_TARGET_ARCH_IA32 | 808 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |