On Fri, Sep 17, 2021 at 02:11:52PM +0200, Ahmad Fatoum wrote: > Many arm32 board entry points use arm_setup_stack() to set up > the stack from C code. This necessitates using __naked, which > probably has been our most frequent cause of misscompiled C code. > > GCC is quite clear that: > > Only basic asm statements can safely be included in naked functions > While using extended asm or a mixture of basic asm and C code may > appear to work, they cannot be depended upon to work reliably and > are not supported. > > But some boards use it anyway, because it's nice to avoid writing > assembly. Reading generated assembly to spot compiler miscompilation > isn't that nice though, so add some documentation, comments > and compiler diagnostics to hopefully reduce future porting effort. > > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > v2 -> v3: > - fix typos (Uwe) > - use better matching CONFIG_CPU_64 instead of CONFIG_CPU_V8 > - clarify 'bad' stack manipulation > v1 -> v2: > - fix commit message title Applied, thanks Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox