https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79430
--- Comment #74 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- This part looks wrong: @@ -19206,8 +19196,9 @@ movq %r11, 112(%rsp) movq %rax, 96(%rsp) call integral_over_z_part_isr.6797 -.LVL1464: +.LVL1465: .loc 1 3089 0 + fldt 64(%rsp) fldt 496(%rsp) popq %rsi .cfi_def_cfa_offset 1160 @@ -19215,8 +19206,6 @@ .cfi_def_cfa_offset 1152 movq 80(%rsp), %rax movq 96(%rsp), %r11 - fldt 64(%rsp) - fxch %st(1) fucomi %st(1), %st fstp %st(1) fldt 112(%rsp) Here, the fldt 64(%rsp) is moved before the popq %rsi - instruction, which changes %rsp. This is also the place where the error occured: line 3089, with the call to integral_over_z_part_isr just before.