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.