https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88343
Alan Modra <amodra at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amodra at gmail dot com --- Comment #23 from Alan Modra <amodra at gmail dot com> --- On master, something as simple as extern int foo (int); int f1 (int x) { return foo (x); } compiled with -S -m32 -mbig -fpic -O2 results in a use of r30 without saving. f1: .LFB0: .cfi_startproc mflr 0 .cfi_register 65, 0 bcl 20,31,.L2 .L2: stwu 1,-16(1) .cfi_def_cfa_offset 16 mflr 30 addis 30,30,_GLOBAL_OFFSET_TABLE_-.L2@ha addi 30,30,_GLOBAL_OFFSET_TABLE_-.L2@l stw 0,20(1) .cfi_offset 65, 4 bl foo@plt lwz 0,20(1) addi 1,1,16 .cfi_def_cfa_offset 0 mtlr 0 .cfi_restore 65 blr .cfi_endproc