[Bug target/59762] New: func-vararg-mixed.c fails on PowerPC starting with revision 204079

pthaugen at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 10 17:40:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59762

            Bug ID: 59762
           Summary: func-vararg-mixed.c fails on PowerPC starting with
                    revision 204079
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pthaugen at gcc dot gnu.org
                CC: bergner at gcc dot gnu.org, dje at gcc dot gnu.org,
                    vmakarov at gcc dot gnu.org
              Host: powerpc64-linux
            Target: powerpc64-linux
             Build: powerpc64-linux

Testcase c-c++-common/dfp/func-vararg-mixed.c started failing on PowerPC for
-m32 at stated revision. Problem looks to be that Decimal32 values are now
loaded into the high word of the FPR as opposed to the low word where they
should be.

Simple example to demonstrate new generated code:

[pthaugen@igoo ~/temp]$ cat dfp.c
void bar(_Decimal32);
void foo ()
{
  bar(3.0df);
}
[pthaugen@igoo ~/temp]$ ~/install/gcc/temp/bin/gcc -m32 -O0 dfp.c -S

>From .s file...
        lwz 10,.LC0@l(9)
        stw 10,24(31)
        stw 11,28(31)
        lfd 0,24(31)
        fmr 1,0
        bl bar

Note that FPR0/1 have the Decimal32 value in the high word, and garbage in the
low word.

Other tests that started failing in same timeframe and I suspect are also
related:
FAIL: gcc.dg/compat/scalar-by-value-dfp c_compat_x_tst.o-c_compat_y_tst.o
execute 
FAIL: gcc.dg/compat/scalar-return-dfp c_compat_x_tst.o-c_compat_y_tst.o execute 
FAIL: c-c++-common/dfp/func-vararg-alternate-d32.c execution test
FAIL: c-c++-common/dfp/func-vararg-dfp.c execution test
FAIL: gcc.target/powerpc/ppc32-abi-dfp-1.c execution test



More information about the Gcc-bugs mailing list