summaryrefslogtreecommitdiff
path: root/lib/Target/MBlaze/MBlazeRegisterInfo.h
diff options
context:
space:
mode:
authorWesley Peck <peckw@wesleypeck.com>2010-03-05 15:26:02 +0000
committerWesley Peck <peckw@wesleypeck.com>2010-03-05 15:26:02 +0000
commitc4155d591b2c28877695543dd8fe195e52922166 (patch)
treef2e0b5eaad2b5e589f4429a1e67ca1f4740fda15 /lib/Target/MBlaze/MBlazeRegisterInfo.h
parentc84a9566cb41ef19f25ab2685c503624d0c8ddd7 (diff)
downloadllvm-c4155d591b2c28877695543dd8fe195e52922166.tar.gz
llvm-c4155d591b2c28877695543dd8fe195e52922166.tar.bz2
llvm-c4155d591b2c28877695543dd8fe195e52922166.tar.xz
Reworking the stack layout that the MicroBlaze backend generates.
The MicroBlaze backend was generating stack layouts that did not conform correctly to the ABI. This update generates stack layouts which are closer to what GCC does. Variable arguments support was added as well but the stack layout for varargs has not been finalized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97807 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MBlaze/MBlazeRegisterInfo.h')
-rw-r--r--lib/Target/MBlaze/MBlazeRegisterInfo.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/MBlaze/MBlazeRegisterInfo.h b/lib/Target/MBlaze/MBlazeRegisterInfo.h
index 4847f1ed52..cde7d3967a 100644
--- a/lib/Target/MBlaze/MBlazeRegisterInfo.h
+++ b/lib/Target/MBlaze/MBlazeRegisterInfo.h
@@ -43,6 +43,7 @@ struct MBlazeRegisterInfo : public MBlazeGenRegisterInfo {
/// getRegisterNumbering - Given the enum value for some register, e.g.
/// MBlaze::RA, return the number that it corresponds to (e.g. 31).
static unsigned getRegisterNumbering(unsigned RegEnum);
+ static unsigned getRegisterFromNumbering(unsigned RegEnum);
/// Get PIC indirect call register
static unsigned getPICCallReg();
@@ -82,6 +83,11 @@ struct MBlazeRegisterInfo : public MBlazeGenRegisterInfo {
unsigned getEHExceptionRegister() const;
unsigned getEHHandlerRegister() const;
+ /// targetHandlesStackFrameRounding - Returns true if the target is
+ /// responsible for rounding up the stack frame (probably at emitPrologue
+ /// time).
+ bool targetHandlesStackFrameRounding() const { return true; }
+
int getDwarfRegNum(unsigned RegNum, bool isEH) const;
};