https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78791
--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > AFAICS the issue is the management of stack slots by assign_386_stack_local. In .combine: (call_insn 181 180 182 22 (set (reg:DI 0 ax) (call (mem:QI (symbol_ref:SI ("__udivmoddi4") [flags 0x41]) [0 S1 A8]) (const_int 32 [0x20]))) 658 {*call_value} (expr_list:REG_CALL_DECL (symbol_ref:SI ("__udivmoddi4") [flags 0x41]) (expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000]) (nil))) (expr_list (use (mem:SI (plus:SI (reg/f:SI 7 sp) (scratch:SI)) [0 S4 A8])) (nil))) (insn 182 181 183 22 (parallel [ (set (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int 32 [0x20]))) (clobber (reg:CC 17 flags)) ]) 210 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (nil)))) (insn 183 182 184 22 (set (reg:DI 113 [ divmod_tmp_66 ]) (reg:DI 0 ax)) 81 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 0 ax) (nil))) (insn 184 183 185 22 (set (reg:DI 114 [ divmod_tmp_66+8 ]) (mem/c:DI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffffffffffff8])) [0 S8 A64])) 81 {*movdi_internal} (nil)) In .stv2: (call_insn 181 180 182 22 (set (reg:DI 0 ax) (call (mem:QI (symbol_ref:SI ("__udivmoddi4") [flags 0x41]) [0 S1 A8]) (const_int 32 [0x20]))) 658 {*call_value} (expr_list:REG_CALL_DECL (symbol_ref:SI ("__udivmoddi4") [flags 0x41]) (expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000]) (nil))) (expr_list (use (mem:SI (plus:SI (reg/f:SI 7 sp) (scratch:SI)) [0 S4 A8])) (nil))) (insn 182 181 183 22 (parallel [ (set (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int 32 [0x20]))) (clobber (reg:CC 17 flags)) ]) 210 {*addsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (nil)))) (insn 183 182 305 22 (set (reg:DI 113 [ divmod_tmp_66 ]) (reg:DI 0 ax)) 81 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 0 ax) (nil))) (insn 305 183 306 22 (set (mem/c:SI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffffffffffff8])) [0 S4 A64]) (subreg:SI (reg:DI 113 [ divmod_tmp_66 ]) 0)) -1 (nil)) (insn 306 305 307 22 (set (mem/c:SI (plus:SI (reg/f:SI 20 frame) (const_int -4 [0xfffffffffffffffc])) [0 S4 A32]) (subreg:SI (reg:DI 113 [ divmod_tmp_66 ]) 4)) -1 (nil)) (insn 307 306 184 22 (set (reg:DI 197) (mem/c:DI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffffffffffff8])) [0 S8 A64])) -1 (nil)) (insn 184 307 185 22 (set (reg:DI 114 [ divmod_tmp_66+8 ]) (mem/c:DI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffffffffffff8])) [0 S8 A64])) 81 {*movdi_internal} (nil))