summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-18 00:53:27 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-18 00:53:27 +0000
commit19d968e62f293e05e3b78beb26fcd11bfbb6b3a7 (patch)
tree7564a3dd8e2e58c7cd9e4ed7e7675260ff439a06 /llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
parent35cea3da3562e9eecd36242393d9f8bccbcea13b (diff)
downloadbcm5719-llvm-19d968e62f293e05e3b78beb26fcd11bfbb6b3a7.tar.gz
bcm5719-llvm-19d968e62f293e05e3b78beb26fcd11bfbb6b3a7.zip
Reserve D16-D13 on subtargets that don't support them.
llvm-svn: 133321
Diffstat (limited to 'llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
index 2adcd2cdff3..9dc51b810ed 100644
--- a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
+++ b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
@@ -100,6 +100,12 @@ getReservedRegs(const MachineFunction &MF) const {
// Some targets reserve R9.
if (STI.isR9Reserved())
Reserved.set(ARM::R9);
+ // Reserve D16-D31 if the subtarget doesn't support them.
+ if (!STI.hasVFP3() || STI.hasD16()) {
+ assert(ARM::D31 == ARM::D16 + 15);
+ for (unsigned i = 0; i != 16; ++i)
+ Reserved.set(ARM::D16 + i);
+ }
return Reserved;
}
OpenPOWER on IntegriCloud