Lines Matching full:ve
1 //===-- VEFrameLowering.cpp - VE Frame Information ------------------------===//
9 // This file contains the VE implementation of TargetFrameLowering class.
11 // On VE, stack frames are structured as follows:
33 // VE doesn't use on demand stack allocation, so user code generated by LLVM
34 // needs to call VEOS to allocate stack frame. VE's ABI want to reduce the
89 // In addition, VE ABI defines RSA frame, return address, and frame pointer
108 // NOTE: This description is based on VE ABI and description in
152 BuildMI(MBB, MBBI, DL, TII.get(VE::STrii)) in emitPrologueInsns()
153 .addReg(VE::SX11) in emitPrologueInsns()
156 .addReg(VE::SX9); in emitPrologueInsns()
157 BuildMI(MBB, MBBI, DL, TII.get(VE::STrii)) in emitPrologueInsns()
158 .addReg(VE::SX11) in emitPrologueInsns()
161 .addReg(VE::SX10); in emitPrologueInsns()
164 BuildMI(MBB, MBBI, DL, TII.get(VE::STrii)) in emitPrologueInsns()
165 .addReg(VE::SX11) in emitPrologueInsns()
168 .addReg(VE::SX15); in emitPrologueInsns()
169 BuildMI(MBB, MBBI, DL, TII.get(VE::STrii)) in emitPrologueInsns()
170 .addReg(VE::SX11) in emitPrologueInsns()
173 .addReg(VE::SX16); in emitPrologueInsns()
176 BuildMI(MBB, MBBI, DL, TII.get(VE::STrii)) in emitPrologueInsns()
177 .addReg(VE::SX11) in emitPrologueInsns()
180 .addReg(VE::SX17); in emitPrologueInsns()
200 BuildMI(MBB, MBBI, DL, TII.get(VE::LDrii), VE::SX17) in emitEpilogueInsns()
201 .addReg(VE::SX11) in emitEpilogueInsns()
205 BuildMI(MBB, MBBI, DL, TII.get(VE::LDrii), VE::SX16) in emitEpilogueInsns()
206 .addReg(VE::SX11) in emitEpilogueInsns()
209 BuildMI(MBB, MBBI, DL, TII.get(VE::LDrii), VE::SX15) in emitEpilogueInsns()
210 .addReg(VE::SX11) in emitEpilogueInsns()
215 BuildMI(MBB, MBBI, DL, TII.get(VE::LDrii), VE::SX10) in emitEpilogueInsns()
216 .addReg(VE::SX11) in emitEpilogueInsns()
219 BuildMI(MBB, MBBI, DL, TII.get(VE::LDrii), VE::SX9) in emitEpilogueInsns()
220 .addReg(VE::SX11) in emitEpilogueInsns()
238 BuildMI(MBB, MBBI, DL, TII.get(VE::ADDSLri), VE::SX11) in emitSPAdjustment()
239 .addReg(VE::SX11) in emitSPAdjustment()
243 BuildMI(MBB, MBBI, DL, TII.get(VE::LEArii), VE::SX11) in emitSPAdjustment()
244 .addReg(VE::SX11) in emitSPAdjustment()
253 BuildMI(MBB, MBBI, DL, TII.get(VE::LEAzii), VE::SX13) in emitSPAdjustment()
257 BuildMI(MBB, MBBI, DL, TII.get(VE::ANDrm), VE::SX13) in emitSPAdjustment()
258 .addReg(VE::SX13) in emitSPAdjustment()
260 BuildMI(MBB, MBBI, DL, TII.get(VE::LEASLrri), VE::SX11) in emitSPAdjustment()
261 .addReg(VE::SX11) in emitSPAdjustment()
262 .addReg(VE::SX13) in emitSPAdjustment()
268 BuildMI(MBB, MBBI, DL, TII.get(VE::ANDrm), VE::SX11) in emitSPAdjustment()
269 .addReg(VE::SX11) in emitSPAdjustment()
304 BuildMI(MBB, MBBI, DL, TII.get(VE::EXTEND_STACK)); in emitSPExtend()
305 BuildMI(MBB, MBBI, DL, TII.get(VE::EXTEND_STACK_GUARD)); in emitSPExtend()
333 // VE ABI requires a reserved area at the top of stack as described in in emitPrologue()
354 BuildMI(MBB, MBBI, DL, TII.get(VE::ORri), VE::SX9) in emitPrologue()
355 .addReg(VE::SX11) in emitPrologue()
367 BuildMI(MBB, MBBI, DL, TII.get(VE::ORri), VE::SX17) in emitPrologue()
368 .addReg(VE::SX11) in emitPrologue()
383 if (MI.getOpcode() == VE::ADJCALLSTACKDOWN) in eliminateCallFramePseudoInstr()
406 BuildMI(MBB, MBBI, DL, TII.get(VE::ORri), VE::SX11) in emitEpilogue()
407 .addReg(VE::SX9) in emitEpilogue()
455 FrameReg = VE::SX11; // %sp in getFrameIndexReference()
463 FrameReg = VE::SX17; // %bp in getFrameIndexReference()
465 FrameReg = VE::SX11; // %sp in getFrameIndexReference()
480 && !MRI.isPhysRegUsed(VE::SX18) // Registers within limits in isLeafProc()
482 && !MRI.isPhysRegUsed(VE::SX11) // %sp un-used in isLeafProc()