• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_IA32
6 
7 #include "src/ic/ic.h"
8 #include "src/ic/ic-compiler.h"
9 
10 namespace v8 {
11 namespace internal {
12 
13 #define __ ACCESS_MASM(masm)
14 
15 
GenerateRuntimeSetProperty(MacroAssembler * masm,LanguageMode language_mode)16 void PropertyICCompiler::GenerateRuntimeSetProperty(
17     MacroAssembler* masm, LanguageMode language_mode) {
18   // Return address is on the stack.
19   DCHECK(!ebx.is(StoreDescriptor::ReceiverRegister()) &&
20          !ebx.is(StoreDescriptor::NameRegister()) &&
21          !ebx.is(StoreDescriptor::ValueRegister()));
22   __ pop(ebx);
23   __ push(StoreDescriptor::ReceiverRegister());
24   __ push(StoreDescriptor::NameRegister());
25   __ push(StoreDescriptor::ValueRegister());
26   __ push(Immediate(Smi::FromInt(language_mode)));
27   __ push(ebx);  // return address
28 
29   // Do tail-call to runtime routine.
30   __ TailCallRuntime(Runtime::kSetProperty);
31 }
32 
33 
34 #undef __
35 }  // namespace internal
36 }  // namespace v8
37 
38 #endif  // V8_TARGET_ARCH_IA32
39