Home | History | Annotate | Download | only in ia32
      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 
     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