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