diff options
| author | Akira Hatanaka <ahatanaka@mips.com> | 2012-07-23 23:45:54 +0000 |
|---|---|---|
| committer | Akira Hatanaka <ahatanaka@mips.com> | 2012-07-23 23:45:54 +0000 |
| commit | 26e9ecb7a320099dcf80ab13b3dfc51c81bc5f4b (patch) | |
| tree | 8adfcdc8fdb95207d0453c4c963dede23e4f2a64 /llvm/lib/Target/Mips/MipsMachineFunction.cpp | |
| parent | 47f622d414a44efb4d39e88611a05696167ea34b (diff) | |
| download | bcm5719-llvm-26e9ecb7a320099dcf80ab13b3dfc51c81bc5f4b.tar.gz bcm5719-llvm-26e9ecb7a320099dcf80ab13b3dfc51c81bc5f4b.zip | |
Add basic ability to setup call frame, and make procedure calls.
Hello world will compile and execute with this patch.
Patch by Reed Kotler.
llvm-svn: 160651
Diffstat (limited to 'llvm/lib/Target/Mips/MipsMachineFunction.cpp')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsMachineFunction.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/MipsMachineFunction.cpp b/llvm/lib/Target/Mips/MipsMachineFunction.cpp index e3746d4a420..362173eda3a 100644 --- a/llvm/lib/Target/Mips/MipsMachineFunction.cpp +++ b/llvm/lib/Target/Mips/MipsMachineFunction.cpp @@ -33,10 +33,13 @@ unsigned MipsFunctionInfo::getGlobalBaseReg() { const MipsSubtarget &ST = MF.getTarget().getSubtarget<MipsSubtarget>(); - const TargetRegisterClass *RC = ST.isABI_N64() ? - (const TargetRegisterClass*)&Mips::CPU64RegsRegClass : - (const TargetRegisterClass*)&Mips::CPURegsRegClass; - + const TargetRegisterClass *RC; + if (ST.inMips16Mode()) + RC=(const TargetRegisterClass*)&Mips::CPU16RegsRegClass; + else + RC = ST.isABI_N64() ? + (const TargetRegisterClass*)&Mips::CPU64RegsRegClass : + (const TargetRegisterClass*)&Mips::CPURegsRegClass; return GlobalBaseReg = MF.getRegInfo().createVirtualRegister(RC); } |

