Hi Wilco, On Fri, Jan 05, 2018 at 12:22:44PM +0000, Wilco Dijkstra wrote: > An example epilog in a shrinkwrapped function before: > > ldp x21, x22, [sp,#16] > ldr x23, [sp,#32] > ldr x24, [sp,#40] > ldp x25, x26, [sp,#48] > ldr x27, [sp,#64] > ldr x28, [sp,#72] > ldr x30, [sp,#80] > ldr d8, [sp,#88] > ldp x19, x20, [sp],#96 > ret
In this example, the compiler already can make a ldp for both x23/x24 and x27/x28 just fine (if not in emit_epilogue_components, then simply in a peephole); why did that not work? Or is this not the actual generated machine code (and there are labels between the insns, for example)? Segher