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 CallApiFunctionStub. | 163 // Abi for CallApiCallbackStub. |
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 CallApiAccessorStub stub(isolate, is_store, call_data_undefined, | 232 CallApiCallbackStub 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 |