Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(231)

Side by Side Diff: src/s390/code-stubs-s390.cc

Issue 1936953004: S390: Fix storing to below stack to avoid sampler handler corrupting stored value (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: remove insertdoublehigh/low Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/s390/assembler-s390.cc ('k') | src/s390/macro-assembler-s390.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #if V8_TARGET_ARCH_S390 5 #if V8_TARGET_ARCH_S390
6 6
7 #include "src/code-stubs.h" 7 #include "src/code-stubs.h"
8 #include "src/api-arguments.h" 8 #include "src/api-arguments.h"
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 4242 matching lines...) Expand 10 before | Expand all | Expand 10 after
4253 // Function descriptor 4253 // Function descriptor
4254 __ LoadP(ToRegister(ABI_TOC_REGISTER), MemOperand(ip, kPointerSize)); 4254 __ LoadP(ToRegister(ABI_TOC_REGISTER), MemOperand(ip, kPointerSize));
4255 __ LoadP(ip, MemOperand(ip, 0)); 4255 __ LoadP(ip, MemOperand(ip, 0));
4256 // ip already set. 4256 // ip already set.
4257 #endif 4257 #endif
4258 #endif 4258 #endif
4259 4259
4260 // zLinux ABI requires caller's frame to have sufficient space for callee 4260 // zLinux ABI requires caller's frame to have sufficient space for callee
4261 // preserved regsiter save area. 4261 // preserved regsiter save area.
4262 __ LoadImmP(r0, Operand::Zero()); 4262 __ LoadImmP(r0, Operand::Zero());
4263 __ StoreP(r0, MemOperand(sp, -kCalleeRegisterSaveAreaSize -
4264 kNumRequiredStackFrameSlots * kPointerSize));
4265 __ lay(sp, MemOperand(sp, -kCalleeRegisterSaveAreaSize - 4263 __ lay(sp, MemOperand(sp, -kCalleeRegisterSaveAreaSize -
4266 kNumRequiredStackFrameSlots * kPointerSize)); 4264 kNumRequiredStackFrameSlots * kPointerSize));
4265 __ StoreP(r0, MemOperand(sp));
4267 #if defined(USE_SIMULATOR) 4266 #if defined(USE_SIMULATOR)
4268 // Under the simulator we need to indirect the entry hook through a 4267 // Under the simulator we need to indirect the entry hook through a
4269 // trampoline function at a known address. 4268 // trampoline function at a known address.
4270 // It additionally takes an isolate as a third parameter 4269 // It additionally takes an isolate as a third parameter
4271 __ mov(r4, Operand(ExternalReference::isolate_address(isolate()))); 4270 __ mov(r4, Operand(ExternalReference::isolate_address(isolate())));
4272 4271
4273 ApiFunction dispatcher(FUNCTION_ADDR(EntryHookTrampoline)); 4272 ApiFunction dispatcher(FUNCTION_ADDR(EntryHookTrampoline));
4274 __ mov(ip, Operand(ExternalReference( 4273 __ mov(ip, Operand(ExternalReference(
4275 &dispatcher, ExternalReference::BUILTIN_CALL, isolate()))); 4274 &dispatcher, ExternalReference::BUILTIN_CALL, isolate())));
4276 #endif 4275 #endif
(...skipping 1448 matching lines...) Expand 10 before | Expand all | Expand 10 after
5725 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, 5724 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
5726 kStackUnwindSpace, NULL, return_value_operand, NULL); 5725 kStackUnwindSpace, NULL, return_value_operand, NULL);
5727 } 5726 }
5728 5727
5729 #undef __ 5728 #undef __
5730 5729
5731 } // namespace internal 5730 } // namespace internal
5732 } // namespace v8 5731 } // namespace v8
5733 5732
5734 #endif // V8_TARGET_ARCH_S390 5733 #endif // V8_TARGET_ARCH_S390
OLDNEW
« no previous file with comments | « src/s390/assembler-s390.cc ('k') | src/s390/macro-assembler-s390.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698