https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79430

--- Comment #75 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
To provide some more context, here is the code as
compiled with the patch (correct version):

        call    integral_over_z_part_isr.6797
.LVL1464:
        .loc 1 3089 0
        fldt    496(%rsp)
        popq    %rsi
        .cfi_def_cfa_offset 1160
        popq    %rdi
        .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)
        fldt    128(%rsp)
        ja      .L1788
        fstp    %st(2)
        fxch    %st(1)

And here is the version without the patch:

        call    integral_over_z_part_isr.6797
.LVL1465:
        .loc 1 3089 0
        fldt    64(%rsp)
        fldt    496(%rsp)
        popq    %rsi
        .cfi_def_cfa_offset 1160
        popq    %rdi
        .cfi_def_cfa_offset 1152
        movq    80(%rsp), %rax
        movq    96(%rsp), %r11
        fucomi  %st(1), %st
        fstp    %st(1)
        fldt    112(%rsp)
        fldt    128(%rsp)
        ja      .L1788
        fstp    %st(2)
        fxch    %st(1)

You can see the difference where "fldt  64(%rsp)" loads from.

Reply via email to