summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2015-11-13 23:05:46 +0000
committerJustin Bogner <mail@justinbogner.com>2015-11-13 23:05:46 +0000
commitfff708db923499ee5db932b2d440aa12b5a4ed5c (patch)
tree4b57ac8ff5caae4da055fd488ded686e75885ce6 /llvm/lib
parenta2c156edad38040fc7836208967d067c8ad798b1 (diff)
downloadbcm5719-llvm-fff708db923499ee5db932b2d440aa12b5a4ed5c.tar.gz
bcm5719-llvm-fff708db923499ee5db932b2d440aa12b5a4ed5c.zip
AArch64: Default AArch64Subtarget::ReserveX18 to true on darwin
Darwin reserves x18, so it's never ABI compliant to generate code that uses it. Set the default value based on the OS part of the triple rather than forcing front-ends to set the +reserve-x18 target feature in order to build correct code for Darwin. This will make r243310 redundant, so I'll revert that shortly. llvm-svn: 253102
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AArch64/AArch64Subtarget.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
index 88af9602322..14ad44db800 100644
--- a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
+++ b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
@@ -53,8 +53,9 @@ AArch64Subtarget::AArch64Subtarget(const Triple &TT, const std::string &CPU,
: AArch64GenSubtargetInfo(TT, CPU, FS), ARMProcFamily(Others),
HasV8_1aOps(false), HasFPARMv8(false), HasNEON(false), HasCrypto(false),
HasCRC(false), HasPerfMon(false), HasZeroCycleRegMove(false),
- HasZeroCycleZeroing(false), StrictAlign(false), ReserveX18(false),
- IsLittle(LittleEndian), CPUString(CPU), TargetTriple(TT), FrameLowering(),
+ HasZeroCycleZeroing(false), StrictAlign(false),
+ ReserveX18(TT.isOSDarwin()), IsLittle(LittleEndian), CPUString(CPU),
+ TargetTriple(TT), FrameLowering(),
InstrInfo(initializeSubtargetDependencies(FS)), TSInfo(),
TLInfo(TM, *this) {}
OpenPOWER on IntegriCloud