From: Jakob Stoklund Olesen Date: Sat, 18 Jun 2011 00:53:27 +0000 (+0000) Subject: Reserve D16-D13 on subtargets that don't support them. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=3b6434e360315849a65b1ac85e16d160131a77a4;p=oota-llvm.git Reserve D16-D13 on subtargets that don't support them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133321 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp index 2adcd2cdff3..9dc51b810ed 100644 --- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/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; }