> Given the description the code looks fine. It would be nice to see > more of a _why_ in the commit message. I'm guessing this is either > something related to signal handling, or debugging... I don't see why > this would be needed for functional correctness. >
The issue is how we generate a function prologue when we use fno-omit-frame-pointer, for example: [snip] mov_s fp,sp ; frame pointer is set here [snip] st r1,[fp,-24] ; frame pointer is used here [snip] sub_s sp,sp,0x20 ; stack pointer adjusted So we can easily see that any interrupt between the `st` and `sub` instruction will lead to faulty code as the interrupt routine will use a faulty sp register, and, potentially, overwriting the value stored by 'st' instruction. Thus, adding a scheduler barrier will force the compiler to emit the `sub` instruction before the store one. Thanks, Claudiu