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