diff options
author | Wesley Peck <peckw@wesleypeck.com> | 2010-03-05 15:26:02 +0000 |
---|---|---|
committer | Wesley Peck <peckw@wesleypeck.com> | 2010-03-05 15:26:02 +0000 |
commit | c4155d591b2c28877695543dd8fe195e52922166 (patch) | |
tree | f2e0b5eaad2b5e589f4429a1e67ca1f4740fda15 /lib/Target/MBlaze/MBlazeRegisterInfo.h | |
parent | c84a9566cb41ef19f25ab2685c503624d0c8ddd7 (diff) | |
download | llvm-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.h | 6 |
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; }; |