XCore target: Fix llvm.eh.return and EH info register handling

Richard Osborne richard at xmos.com
Mon Feb 17 03:16:30 PST 2014


Looks good to me.

+/// Restore clobbered registers with their spill slot value.
+/// The SP will be adjust at the same time, thus the SpillList must be 
ordered
+/// with the largest (negative) offsets first.
+static void
+RestoreSpillList(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,

adjust -> adjusted

On 06/01/14 15:11, Robert Lytton wrote:
> Hi,
>
> Here is a patch for handling the exception unwind on the XCore target.
>
>     XCore target: Fix llvm.eh.return and EH info register handling
>
>     For functions which call callsUnwindInit() and callsEHReturn()
>     spill slots for R0 & R1 (exception info regs) are added without 
> spilling R0 & R1.
>     The EH unwinder will write the exception info to these spill slots.
>     The exception info registers are only restored during an 
> llv.eh.return() to a landing pad.
>     Under normal return, R0 holds the function's return code and must 
> not be overwritten.
>
> Robert
>


-- 
Richard Osborne | XMOS
http://www.xmos.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140217/2ea313c4/attachment.html>


More information about the llvm-commits mailing list