Mercurial > hg > CbC > CbC_llvm
comparison lib/Target/Mips/MipsFrameLowering.cpp @ 100:7d135dc70f03 LLVM 3.9
LLVM 3.9
author | Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jan 2016 22:53:40 +0900 |
parents | afa8332a0e37 |
children | 1172e4bd9c6f |
comparison
equal
deleted
inserted
replaced
96:6418606d0ead | 100:7d135dc70f03 |
---|---|
120 Offset = std::max(Offset, -MFI->getObjectOffset(I)); | 120 Offset = std::max(Offset, -MFI->getObjectOffset(I)); |
121 | 121 |
122 // Conservatively assume all callee-saved registers will be saved. | 122 // Conservatively assume all callee-saved registers will be saved. |
123 for (const MCPhysReg *R = TRI.getCalleeSavedRegs(&MF); *R; ++R) { | 123 for (const MCPhysReg *R = TRI.getCalleeSavedRegs(&MF); *R; ++R) { |
124 unsigned Size = TRI.getMinimalPhysRegClass(*R)->getSize(); | 124 unsigned Size = TRI.getMinimalPhysRegClass(*R)->getSize(); |
125 Offset = RoundUpToAlignment(Offset + Size, Size); | 125 Offset = alignTo(Offset + Size, Size); |
126 } | 126 } |
127 | 127 |
128 unsigned MaxAlign = MFI->getMaxAlignment(); | 128 unsigned MaxAlign = MFI->getMaxAlignment(); |
129 | 129 |
130 // Check that MaxAlign is not zero if there is a stack object that is not a | 130 // Check that MaxAlign is not zero if there is a stack object that is not a |
131 // callee-saved spill. | 131 // callee-saved spill. |
132 assert(!MFI->getObjectIndexEnd() || MaxAlign); | 132 assert(!MFI->getObjectIndexEnd() || MaxAlign); |
133 | 133 |
134 // Iterate over other objects. | 134 // Iterate over other objects. |
135 for (unsigned I = 0, E = MFI->getObjectIndexEnd(); I != E; ++I) | 135 for (unsigned I = 0, E = MFI->getObjectIndexEnd(); I != E; ++I) |
136 Offset = RoundUpToAlignment(Offset + MFI->getObjectSize(I), MaxAlign); | 136 Offset = alignTo(Offset + MFI->getObjectSize(I), MaxAlign); |
137 | 137 |
138 // Call frame. | 138 // Call frame. |
139 if (MFI->adjustsStack() && hasReservedCallFrame(MF)) | 139 if (MFI->adjustsStack() && hasReservedCallFrame(MF)) |
140 Offset = RoundUpToAlignment(Offset + MFI->getMaxCallFrameSize(), | 140 Offset = alignTo(Offset + MFI->getMaxCallFrameSize(), |
141 std::max(MaxAlign, getStackAlignment())); | 141 std::max(MaxAlign, getStackAlignment())); |
142 | 142 |
143 return RoundUpToAlignment(Offset, getStackAlignment()); | 143 return alignTo(Offset, getStackAlignment()); |
144 } | 144 } |
145 | 145 |
146 // Eliminate ADJCALLSTACKDOWN, ADJCALLSTACKUP pseudo instructions | 146 // Eliminate ADJCALLSTACKDOWN, ADJCALLSTACKUP pseudo instructions |
147 void MipsFrameLowering:: | 147 void MipsFrameLowering:: |
148 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, | 148 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, |