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.