aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/IA64/IA64.td
diff options
context:
space:
mode:
authorDuraid Madina <duraid@octopus.com.au>2006-01-23 06:08:46 +0000
committerDuraid Madina <duraid@octopus.com.au>2006-01-23 06:08:46 +0000
commitb9bcd18794fd57c04390bc0b86f924fd6e6f4dad (patch)
tree3094932b403ba150f65330405ae06cb12d0922b3 /lib/Target/IA64/IA64.td
parent7070c5f24125e06e969874c481d0f58f18e0097f (diff)
downloadexternal_llvm-b9bcd18794fd57c04390bc0b86f924fd6e6f4dad.zip
external_llvm-b9bcd18794fd57c04390bc0b86f924fd6e6f4dad.tar.gz
external_llvm-b9bcd18794fd57c04390bc0b86f924fd6e6f4dad.tar.bz2
fix register corruption! (my god.) r15 is a scratch reg, using that as
a frame pointer is a pretty doofus thing to do. use r5 instead, and mark it callee-saved, coz that's what it is! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25526 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/IA64/IA64.td')
-rw-r--r--lib/Target/IA64/IA64.td6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Target/IA64/IA64.td b/lib/Target/IA64/IA64.td
index 85c4312..3e5c613 100644
--- a/lib/Target/IA64/IA64.td
+++ b/lib/Target/IA64/IA64.td
@@ -39,9 +39,11 @@ def IA64 : Target {
//'preserved' GRs:
[
+ r5 // the 'frame pointer' (base pointer) reg
+
// We never generate references to these regs, so we don't need to declare
// that they are saved. In fact, we could just remove them entirely.
- //r4, r5, r6, r7,
+ //r4, r6, r7,
//'special' GRs:
@@ -49,7 +51,7 @@ def IA64 : Target {
// r12, // memory stack pointer (SP)- XXX NOT callee saved, we do it ourselves
// rp, // return branch register (rp/b0) - we do this ourselves
// **** r13 (thread pointer) we do not touch, ever. it's not here. ****//
- //r15, // our frame pointer (FP)
+ //r15,
//'stacked' GRs the RSE takes care of, we don't worry about
/* We don't want PEI::calculateCallerSavedRegisters to worry about them,