| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_X64 | 7 #if V8_TARGET_ARCH_X64 |
| 8 | 8 |
| 9 #include "src/ic/ic-compiler.h" | 9 #include "src/ic/ic-compiler.h" |
| 10 | 10 |
| (...skipping 950 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 961 __ bind(&miss); | 961 __ bind(&miss); |
| 962 // ----------- S t a t e ------------- | 962 // ----------- S t a t e ------------- |
| 963 // -- rcx : key | 963 // -- rcx : key |
| 964 // -- rdx : receiver | 964 // -- rdx : receiver |
| 965 // -- rsp[0] : return address | 965 // -- rsp[0] : return address |
| 966 // ----------------------------------- | 966 // ----------------------------------- |
| 967 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); | 967 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); |
| 968 } | 968 } |
| 969 | 969 |
| 970 | 970 |
| 971 void PropertyICCompiler::GenerateRuntimeSetProperty(MacroAssembler* masm, |
| 972 StrictMode strict_mode) { |
| 973 // Return address is on the stack. |
| 974 DCHECK(!rbx.is(StoreIC::ReceiverRegister()) && |
| 975 !rbx.is(StoreIC::NameRegister()) && !rbx.is(StoreIC::ValueRegister())); |
| 976 |
| 977 __ PopReturnAddressTo(rbx); |
| 978 __ Push(StoreIC::ReceiverRegister()); |
| 979 __ Push(StoreIC::NameRegister()); |
| 980 __ Push(StoreIC::ValueRegister()); |
| 981 __ Push(Smi::FromInt(strict_mode)); |
| 982 __ PushReturnAddressFrom(rbx); |
| 983 |
| 984 // Do tail-call to runtime routine. |
| 985 __ TailCallRuntime(Runtime::kSetProperty, 4, 1); |
| 986 } |
| 987 |
| 988 |
| 971 #undef __ | 989 #undef __ |
| 972 } | 990 } |
| 973 } // namespace v8::internal | 991 } // namespace v8::internal |
| 974 | 992 |
| 975 #endif // V8_TARGET_ARCH_X64 | 993 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |