Added method to get Mips register numbers

Changed the stack frame layout, StackGrowsUp fits better to Mips strange stack.
Stack offset calculation bug fixed!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41529 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bruno Cardoso Lopes
2007-08-28 05:13:42 +00:00
parent a2b1bb5296
commit 51195af45f
3 changed files with 113 additions and 61 deletions

View File

@@ -31,13 +31,14 @@ createTargetAsmInfo() const
}
// DataLayout --> Big-endian, 32-bit pointer/ABI/alignment
//
// FrameInfo --> StackGrowsDown, 8 bytes aligned,
// LOA : 0
// The stack is always 8 byte aligned
// On function prologue, the stack is created by decrementing
// its pointer. Once decremented, all references are done with positive
// offset from the stack/frame pointer, so StackGrowsUp is used.
MipsTargetMachine::
MipsTargetMachine(const Module &M, const std::string &FS):
Subtarget(*this, M, FS), DataLayout("E-p:32:32:32"),
InstrInfo(*this), FrameInfo(TargetFrameInfo::StackGrowsDown, 8, 0),
InstrInfo(*this), FrameInfo(TargetFrameInfo::StackGrowsUp, 8, 0),
TLInfo(*this) {}
// return 0 and must specify -march to gen MIPS code.