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.

Reply via email to