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

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED
      Known to fail|                            |

--- Comment #5 from Iain Sandoe <iains at gcc dot gnu.org> 2011-02-14 15:45:05 
UTC ---
$ cat ../test-ppc/apinski-ppc-vect-abi.c 
#define vector __vector
struct data {
     float f;  //0 - 3
     int i;    // 4 - 7
     double d; // 8 - 15
     vector float v;  // 16 - 31
}; // __attribute__ ((d64_abi));  //size is 32

extern int bar (int a, struct data b, void *c);

int foo (struct data *inp_r3, void *inp_r4)
{
  return bar(10, *inp_r3, ((void *) inp_r4));
}

$ ./gcc/xgcc -Bgcc ../test-ppc/apinski-ppc-vect-abi.c -m64 -S -O2
$ more apinski-ppc-vect-abi.s 

        .machine ppc64
        .text
        .align  2
        .globl _foo
_foo:
        mfspr r0,256
        stw r0,-4(r1)
        oris r0,r0,0x2000
        mtspr 256,r0
        lfs f1,0(r3)
        mr r9,r4
        lfd f2,8(r3)
        lwz r5,4(r3)
        li r3,10
        lwz r12,-4(r1)
        mtspr 256,r12
        b _bar
        .subsections_via_symbols

thus fixed in trunk.

Reply via email to