https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92769
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Christophe Leroy from comment #2) > But CR0 being volatile doesn't prevent GCC to set/clr its SO bit just before > branching to LR as the ASM functions do, does it ? Not at all, no. But e.g. (linker-generated) glue code is free to clobber R0! > In our ABIs, r3 is also volatile in our ABIs, it doesn't prevent using it as > function return. No, R3 is defined to be used as the return value. CR0 is not.