This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/65109] [5 Regression] r220674 causes FAIL: gcc.target/powerpc/ppc64-abi-1.c execution test


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

Richard Henderson <rth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P2
             Status|ASSIGNED                    |NEW

--- Comment #2 from Richard Henderson <rth at gcc dot gnu.org> ---
The testcase is simply buggy.

The beginning of fididisdsid contains a volatile asm (inside save_parms),
which is assumed to be scheduled immediately after the prologue.  Except
that didn't happen, and there's nothing in the testcase to make sure that
it must happen.

.L.fididisdsid:
        mflr 0
        std 31,-8(1)
        std 30,-16(1)
        std 0,16(1)
        stdu 1,-144(1)
        mr 31,1
        std 9,112(31)             <-- s.dd spilled to stack
        ld 6,264(31)              <-- load t.a
        ld 9,256(31)              <-- load t.dd
        ori 2,2,0
        lfd 0,112(31)
#APP
 # 294 "z.c" 1                    <-- Start of save_parms
        ld 11,gparms@got(2)

I have no idea why the compiler should choose to spill s.dd in favor
of t.dd, but certainly it is within it's rights to do so.

In my opinion, this sort of testing can only be done via dedicated
assembly entry points, and not asm within the function body.

Not mine, and not P1 either.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]