diff options
Diffstat (limited to 'deps/v8/src/ic/ia32/access-compiler-ia32.cc')
-rw-r--r-- | deps/v8/src/ic/ia32/access-compiler-ia32.cc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/deps/v8/src/ic/ia32/access-compiler-ia32.cc b/deps/v8/src/ic/ia32/access-compiler-ia32.cc new file mode 100644 index 0000000000..9bcbef0b6f --- /dev/null +++ b/deps/v8/src/ic/ia32/access-compiler-ia32.cc @@ -0,0 +1,44 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "src/v8.h" + +#if V8_TARGET_ARCH_IA32 + +#include "src/ic/access-compiler.h" + +namespace v8 { +namespace internal { + +#define __ ACCESS_MASM(masm) + +void PropertyAccessCompiler::GenerateTailCall(MacroAssembler* masm, + Handle<Code> code) { + __ jmp(code, RelocInfo::CODE_TARGET); +} + + +Register* PropertyAccessCompiler::load_calling_convention() { + // receiver, name, scratch1, scratch2, scratch3, scratch4. + Register receiver = LoadDescriptor::ReceiverRegister(); + Register name = LoadDescriptor::NameRegister(); + static Register registers[] = {receiver, name, ebx, eax, edi, no_reg}; + return registers; +} + + +Register* PropertyAccessCompiler::store_calling_convention() { + // receiver, name, scratch1, scratch2, scratch3. + Register receiver = StoreDescriptor::ReceiverRegister(); + Register name = StoreDescriptor::NameRegister(); + DCHECK(ebx.is(ElementTransitionAndStoreDescriptor::MapRegister())); + static Register registers[] = {receiver, name, ebx, edi, no_reg}; + return registers; +} + +#undef __ +} +} // namespace v8::internal + +#endif // V8_TARGET_ARCH_IA32 |