diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-03-20 20:35:37 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-03-20 20:35:37 +0000 |
commit | e829eecc05fa26d9755eadff5896ad2a71c3e8a4 (patch) | |
tree | 55905049da92e3af33b84eef30f1f6733ce52818 /llvm/lib/Target/X86/X86ISelLowering.cpp | |
parent | b1578d36129c731b9348781aead3227a3c299223 (diff) | |
download | bcm5719-llvm-e829eecc05fa26d9755eadff5896ad2a71c3e8a4.tar.gz bcm5719-llvm-e829eecc05fa26d9755eadff5896ad2a71c3e8a4.zip |
[Fuchsia] Use %gs for ABI slots under -mcmodel=kernel
Make x86_64-fuchsia targets under -mcmodel=kernel use %gs rather
than %fs to access ABI slots for stack-protector and safe-stack
Patch by Roland McGrath.
Differential Revision: https://reviews.llvm.org/D30870
llvm-svn: 298302
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index e07c63b4e24..2165e08fa25 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -2077,7 +2077,7 @@ Value *X86TargetLowering::getIRStackGuard(IRBuilder<> &IRB) const { if (hasStackGuardSlotTLS(Subtarget.getTargetTriple())) { if (Subtarget.isTargetFuchsia()) { // <magenta/tls.h> defines MX_TLS_STACK_GUARD_OFFSET with this value. - return SegmentOffset(IRB, 0x10, 257); + return SegmentOffset(IRB, 0x10, getAddressSpace()); } else { // %fs:0x28, unless we're using a Kernel code model, in which case // it's %gs:0x28. gs:0x14 on i386. @@ -2142,7 +2142,7 @@ Value *X86TargetLowering::getSafeStackPointerLocation(IRBuilder<> &IRB) const { // Fuchsia is similar. if (Subtarget.isTargetFuchsia()) { // <magenta/tls.h> defines MX_TLS_UNSAFE_SP_OFFSET with this value. - return SegmentOffset(IRB, 0x18, 257); + return SegmentOffset(IRB, 0x18, getAddressSpace()); } return TargetLowering::getSafeStackPointerLocation(IRB); |