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#include "src/v8.h" 6 7#if V8_TARGET_ARCH_X87 8 9#include "src/ic/access-compiler.h" 10 11namespace v8 { 12namespace internal { 13 14#define __ ACCESS_MASM(masm) 15 16void PropertyAccessCompiler::GenerateTailCall(MacroAssembler* masm, 17 Handle<Code> code) { 18 __ jmp(code, RelocInfo::CODE_TARGET); 19} 20 21 22Register* PropertyAccessCompiler::load_calling_convention() { 23 // receiver, name, scratch1, scratch2, scratch3, scratch4. 24 Register receiver = LoadDescriptor::ReceiverRegister(); 25 Register name = LoadDescriptor::NameRegister(); 26 static Register registers[] = {receiver, name, ebx, eax, edi, no_reg}; 27 return registers; 28} 29 30 31Register* PropertyAccessCompiler::store_calling_convention() { 32 // receiver, name, scratch1, scratch2, scratch3. 33 Register receiver = StoreDescriptor::ReceiverRegister(); 34 Register name = StoreDescriptor::NameRegister(); 35 DCHECK(ebx.is(ElementTransitionAndStoreDescriptor::MapRegister())); 36 static Register registers[] = {receiver, name, ebx, edi, no_reg}; 37 return registers; 38} 39 40#undef __ 41} 42} // namespace v8::internal 43 44#endif // V8_TARGET_ARCH_X87 45