Line data Source code
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
3 : // found in the LICENSE file.
4 :
5 : #if V8_TARGET_ARCH_X64
6 :
7 : #include "src/ic/access-compiler.h"
8 : #include "src/objects-inl.h"
9 :
10 : namespace v8 {
11 : namespace internal {
12 :
13 : #define __ ACCESS_MASM(masm)
14 :
15 38670 : void PropertyAccessCompiler::GenerateTailCall(MacroAssembler* masm,
16 : Handle<Code> code) {
17 38670 : __ jmp(code, RelocInfo::CODE_TARGET);
18 38670 : }
19 :
20 4029 : void PropertyAccessCompiler::InitializePlatformSpecific(
21 : AccessCompilerData* data) {
22 4029 : Register receiver = LoadDescriptor::ReceiverRegister();
23 4029 : Register name = LoadDescriptor::NameRegister();
24 :
25 : // Load calling convention.
26 : // receiver, name, scratch1, scratch2, scratch3.
27 4029 : Register load_registers[] = {receiver, name, rax, rbx, rdi};
28 :
29 : // Store calling convention.
30 : // receiver, name, scratch1, scratch2.
31 4029 : Register store_registers[] = {receiver, name, rbx, rdi};
32 :
33 : data->Initialize(arraysize(load_registers), load_registers,
34 4029 : arraysize(store_registers), store_registers);
35 4029 : }
36 :
37 : #undef __
38 : } // namespace internal
39 : } // namespace v8
40 :
41 : #endif // V8_TARGET_ARCH_X64
|