16474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org// Copyright 2014 the V8 project authors. All rights reserved. 26474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be 36474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org// found in the LICENSE file. 46474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 56474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org#include "src/v8.h" 66474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 76474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org#if V8_TARGET_ARCH_X87 86474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 96474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org#include "src/ic/access-compiler.h" 106474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 116474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.orgnamespace v8 { 126474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.orgnamespace internal { 136474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 146474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org#define __ ACCESS_MASM(masm) 156474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 166474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.orgvoid PropertyAccessCompiler::GenerateTailCall(MacroAssembler* masm, 176474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org Handle<Code> code) { 186474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org __ jmp(code, RelocInfo::CODE_TARGET); 196474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org} 206474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 216474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 226474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.orgRegister* PropertyAccessCompiler::load_calling_convention() { 236474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org // receiver, name, scratch1, scratch2, scratch3, scratch4. 2442ed2fc449e83fab2ccbf1b769a5e83715c9d783machenbach@chromium.org Register receiver = LoadDescriptor::ReceiverRegister(); 2542ed2fc449e83fab2ccbf1b769a5e83715c9d783machenbach@chromium.org Register name = LoadDescriptor::NameRegister(); 266474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org static Register registers[] = {receiver, name, ebx, eax, edi, no_reg}; 276474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org return registers; 286474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org} 296474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 306474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 316474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.orgRegister* PropertyAccessCompiler::store_calling_convention() { 326474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org // receiver, name, scratch1, scratch2, scratch3. 3342ed2fc449e83fab2ccbf1b769a5e83715c9d783machenbach@chromium.org Register receiver = StoreDescriptor::ReceiverRegister(); 3442ed2fc449e83fab2ccbf1b769a5e83715c9d783machenbach@chromium.org Register name = StoreDescriptor::NameRegister(); 3542ed2fc449e83fab2ccbf1b769a5e83715c9d783machenbach@chromium.org DCHECK(ebx.is(ElementTransitionAndStoreDescriptor::MapRegister())); 366474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org static Register registers[] = {receiver, name, ebx, edi, no_reg}; 376474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org return registers; 386474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org} 396474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 406474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org#undef __ 416474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org} 426474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org} // namespace v8::internal 436474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org 446474a1cfee1cdad45de5cc96960085e1c7daf11cmachenbach@chromium.org#endif // V8_TARGET_ARCH_X87 45