summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2015-01-17 03:57:34 +0000
committerHal Finkel <hfinkel@anl.gov>2015-01-17 03:57:34 +0000
commitc19805a75d8abff8b251eb9112c823a54a2e70b1 (patch)
tree2f61a1475321c1ae5b8b832149be3355152b3b94 /llvm
parent0e39c55d229a5311751784705896f3dcdf8d8a11 (diff)
downloadbcm5719-llvm-c19805a75d8abff8b251eb9112c823a54a2e70b1.tar.gz
bcm5719-llvm-c19805a75d8abff8b251eb9112c823a54a2e70b1.zip
[PowerPC] Don't list R11 as a patchpoint scratch register
R11's status is the same under both the PPC64 ELF V1 and V2 ABIs: it is reserved for use as an "environment pointer" for compilation models that require such a thing. We don't, we also don't need a second scratch register, and because we support only "local" patchpoint call targets, we might as well let R11 be used for anyregcc patchpoints. llvm-svn: 226369
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/PowerPC/PPCISelLowering.cpp10
-rw-r--r--llvm/test/CodeGen/PowerPC/ppc64-anyregcc.ll4
-rw-r--r--llvm/test/CodeGen/PowerPC/ppc64-stackmap.ll2
3 files changed, 4 insertions, 12 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index e17c4e675c6..20e5115445e 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -9910,16 +9910,8 @@ PPCTargetLowering::getScratchRegisters(CallingConv::ID) const {
// site. Hence we include LR in the scratch registers, which are in turn added
// as implicit-defs for stackmaps and patchpoints. The same reasoning applies
// to CTR, which is used by any indirect call.
- if (Subtarget.isELFv2ABI()) {
- static const MCPhysReg ScratchRegs[] = {
- PPC::X12, PPC::LR8, PPC::CTR8, 0
- };
-
- return ScratchRegs;
- }
-
static const MCPhysReg ScratchRegs[] = {
- PPC::X12, PPC::X11, PPC::LR8, PPC::CTR8, 0
+ PPC::X12, PPC::LR8, PPC::CTR8, 0
};
return ScratchRegs;
diff --git a/llvm/test/CodeGen/PowerPC/ppc64-anyregcc.ll b/llvm/test/CodeGen/PowerPC/ppc64-anyregcc.ll
index 7cd3c4b3820..8b4cec5dabd 100644
--- a/llvm/test/CodeGen/PowerPC/ppc64-anyregcc.ll
+++ b/llvm/test/CodeGen/PowerPC/ppc64-anyregcc.ll
@@ -26,9 +26,9 @@ target triple = "powerpc64-unknown-linux-gnu"
; CHECK-NEXT: .quad property_access3
; CHECK-NEXT: .quad 128
; CHECK-NEXT: .quad anyreg_test1
-; CHECK-NEXT: .quad 160
+; CHECK-NEXT: .quad 144
; CHECK-NEXT: .quad anyreg_test2
-; CHECK-NEXT: .quad 160
+; CHECK-NEXT: .quad 144
; CHECK-NEXT: .quad patchpoint_spilldef
; CHECK-NEXT: .quad 256
; CHECK-NEXT: .quad patchpoint_spillargs
diff --git a/llvm/test/CodeGen/PowerPC/ppc64-stackmap.ll b/llvm/test/CodeGen/PowerPC/ppc64-stackmap.ll
index 9be8d0c8ad4..714d363388f 100644
--- a/llvm/test/CodeGen/PowerPC/ppc64-stackmap.ll
+++ b/llvm/test/CodeGen/PowerPC/ppc64-stackmap.ll
@@ -36,7 +36,7 @@ target triple = "powerpc64-unknown-linux-gnu"
; CHECK-NEXT: .quad jsIntCall
; CHECK-NEXT: .quad 128
; CHECK-NEXT: .quad spilledValue
-; CHECK-NEXT: .quad 320
+; CHECK-NEXT: .quad 304
; CHECK-NEXT: .quad spilledStackMapValue
; CHECK-NEXT: .quad 224
; CHECK-NEXT: .quad liveConstant
OpenPOWER on IntegriCloud