diff options
author | Duraid Madina <duraid@octopus.com.au> | 2006-01-23 06:08:46 +0000 |
---|---|---|
committer | Duraid Madina <duraid@octopus.com.au> | 2006-01-23 06:08:46 +0000 |
commit | b9bcd18794fd57c04390bc0b86f924fd6e6f4dad (patch) | |
tree | 3094932b403ba150f65330405ae06cb12d0922b3 /lib/Target/IA64/IA64.td | |
parent | 7070c5f24125e06e969874c481d0f58f18e0097f (diff) | |
download | external_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.td | 6 |
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, |