Displaying 2 results from an estimated 2 matches for "restorecalleesavedregist".
2012 Aug 06
1
[LLVMdev] processFunctionBeforeFrameFinalized setting object offset without effect, stack frame layout wrong
Hi,
Target overrides of processFunctionBeforeFrameFinalized() are misused
in two cases (MBlaze and PowerPC) to set the offsets of objects. Unfortunately
this has no effect because the offsets are immediately reset by
calculateFrameObjectOffsets().
The PowerPC backend does this to setup the stack frame layout according to
the ABI. Ie. it spills the registers etc. in a fixed layout. How to do
2015 Jan 11
3
[LLVMdev] [RFC] [PATCH] add tail call optimization to thumb1-only targets
...}
+
+ bool IsV4PopReturn = IsLRPartOfCalleeSavedInfo;
IsV4PopReturn &= STI.hasV4TOps() && !STI.hasV5TOps();
+ if (IsTailCallReturn) {
+ MBBI = MBB.getLastNonDebugInstr();
+
+ // First restore callee saved registers. Unlike for normal returns
+ // this is *not* done in restoreCalleeSavedRegisters.
+ const std::vector<CalleeSavedInfo> &CSI(MFI->getCalleeSavedInfo());
+
+ bool IsR4IncludedInCSI = false;
+ bool IsLRIncludedInCSI = false;
+ for (unsigned i = CSI.size(); i != 0; --i) {
+ unsigned Reg = CSI[i-1].getReg();
+ if (Reg == ARM::R4)
+ IsR4In...