https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72827
--- Comment #16 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- Looks like the back end must be inserting the frame pointer adjustments, as they aren't there at expand time. From the 218.vregs dump: (call_insn 141 140 3128 2 (parallel [ (set (reg:TI 3 3) (call (mem:SI (symbol_ref:DI ("system__secondary_stack__ss_mark\ ") [flags 0x41] <function_decl 0x1000008a9200 system__secondary_stack__ss_mark\ >) [0 system__secondary_stack__ss_mark S4 A8]) (const_int 0 [0]))) (clobber (reg:DI 65 lr)) ]) /home/wschmidt/gcc/gcc-mainline-base/gcc/ada/make.adb:6327 661 {*cal\ l_value_nonlocal_aixdi} (expr_list:REG_CALL_DECL (symbol_ref:DI ("system__secondary_stack__ss_mark\ ") [flags 0x41] <function_decl 0x1000008a9200 system__secondary_stack__ss_mark\ >) (nil)) (expr_list (use (reg:DI 2 2)) (nil))) (insn 3128 141 142 2 (set (reg:DI 1674) (const_int 1208 [0x4b8])) /home/wschmidt/gcc/gcc-mainline-base/gcc/ada/\ make.adb:6327 -1 (nil)) (insn 142 3128 143 2 (set (mem/j/c:TI (plus:DI (reg/f:DI 113 sfp) (reg:DI 1674)) [1137 FRAME.2381.M1944b+0 S16 A64]) (reg:TI 3 3)) /home/wschmidt/gcc/gcc-mainline-base/gcc/ada/make.adb:632\ 7 975 {*vsx_movti_64bit} (nil)) I'll continue to dig.