diff options
author | Akira Hatanaka <ahatanaka@apple.com> | 2015-07-20 23:51:12 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@apple.com> | 2015-07-20 23:51:12 +0000 |
commit | 42427d2c3833ece68daae2d405e2a840bde31a82 (patch) | |
tree | a2b73877391013e652e3f2264c450aad32ab200f /llvm/lib/Target/ARM/ARMSubtarget.cpp | |
parent | e35c220c8b10e3f21381ef95f7138cad273e6d96 (diff) | |
download | llvm-42427d2c3833ece68daae2d405e2a840bde31a82.zip llvm-42427d2c3833ece68daae2d405e2a840bde31a82.tar.gz llvm-42427d2c3833ece68daae2d405e2a840bde31a82.tar.bz2 |
Revert r242737.
This caused builds to fail with the following error message:
error:Too many subtarget features! Bump MAX_SUBTARGET_FEATURES.
llvm-svn: 242740
Diffstat (limited to 'llvm/lib/Target/ARM/ARMSubtarget.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMSubtarget.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.cpp b/llvm/lib/Target/ARM/ARMSubtarget.cpp index 9d2f029..3180480 100644 --- a/llvm/lib/Target/ARM/ARMSubtarget.cpp +++ b/llvm/lib/Target/ARM/ARMSubtarget.cpp @@ -40,6 +40,10 @@ using namespace llvm; #include "ARMGenSubtargetInfo.inc" static cl::opt<bool> +ReserveR9("arm-reserve-r9", cl::Hidden, + cl::desc("Reserve R9, making it unavailable as GPR")); + +static cl::opt<bool> UseFusedMulOps("arm-use-mulops", cl::init(true), cl::Hidden); @@ -140,7 +144,7 @@ void ARMSubtarget::initializeEnvironment() { UseSoftFloat = false; HasThumb2 = false; NoARM = false; - ReserveR9 = false; + IsR9Reserved = ReserveR9; NoMovt = false; SupportsTailCall = false; HasFP16 = false; @@ -208,10 +212,13 @@ void ARMSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) { if (isTargetNaCl()) stackAlignment = 16; - if (isTargetMachO()) + if (isTargetMachO()) { + IsR9Reserved = ReserveR9 || !HasV6Ops; SupportsTailCall = !isTargetIOS() || !getTargetTriple().isOSVersionLT(5, 0); - else + } else { + IsR9Reserved = ReserveR9; SupportsTailCall = !isThumb1Only(); + } if (Align == DefaultAlign) { // Assume pre-ARMv6 doesn't support unaligned accesses. |