summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsMachineFunction.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2012-07-23 23:45:54 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2012-07-23 23:45:54 +0000
commit26e9ecb7a320099dcf80ab13b3dfc51c81bc5f4b (patch)
tree8adfcdc8fdb95207d0453c4c963dede23e4f2a64 /llvm/lib/Target/Mips/MipsMachineFunction.cpp
parent47f622d414a44efb4d39e88611a05696167ea34b (diff)
downloadbcm5719-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.cpp11
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);
}
OpenPOWER on IntegriCloud