diff options
| author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2011-01-22 13:05:16 +0000 |
|---|---|---|
| committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2011-01-22 13:05:16 +0000 |
| commit | cc91b7a3f60ea2bdb8ec059935bdd10d4ac6f784 (patch) | |
| tree | 969dd925b98b295167f4e143b06a38977b3b59e9 /llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h | |
| parent | 1e1888979b04633616f65614a1e4fde69d1f2d48 (diff) | |
| download | bcm5719-llvm-cc91b7a3f60ea2bdb8ec059935bdd10d4ac6f784.tar.gz bcm5719-llvm-cc91b7a3f60ea2bdb8ec059935bdd10d4ac6f784.zip | |
Pass sret arguments through the stack instead of through registers in Sparc backend. It makes the code generated more compliant with the sparc32 ABI.
llvm-svn: 124030
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h')
| -rw-r--r-- | llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h b/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h index e34c1312810..0b74308eb0e 100644 --- a/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h +++ b/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h @@ -24,16 +24,23 @@ namespace llvm { /// VarArgsFrameOffset - Frame offset to start of varargs area. int VarArgsFrameOffset; + /// SRetReturnReg - Holds the virtual register into which the sret + /// argument is passed. + unsigned SRetReturnReg; public: - SparcMachineFunctionInfo() : GlobalBaseReg(0), VarArgsFrameOffset(0) {} + SparcMachineFunctionInfo() + : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} explicit SparcMachineFunctionInfo(MachineFunction &MF) - : GlobalBaseReg(0), VarArgsFrameOffset(0) {} + : GlobalBaseReg(0), VarArgsFrameOffset(0), SRetReturnReg(0) {} unsigned getGlobalBaseReg() const { return GlobalBaseReg; } void setGlobalBaseReg(unsigned Reg) { GlobalBaseReg = Reg; } int getVarArgsFrameOffset() const { return VarArgsFrameOffset; } void setVarArgsFrameOffset(int Offset) { VarArgsFrameOffset = Offset; } + + unsigned getSRetReturnReg() const { return SRetReturnReg; } + void setSRetReturnReg(unsigned Reg) { SRetReturnReg = Reg; } }; } |

