From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32461 invoked by alias); 14 Feb 2011 15:45:31 -0000 Received: (qmail 32443 invoked by uid 22791); 14 Feb 2011 15:45:27 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_LW X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 14 Feb 2011 15:45:21 +0000 From: "iains at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/35491] wrong ABI for some struct passing with vector code X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: ABI, wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: iains at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Status Resolution Known to fail Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Mon, 14 Feb 2011 15:50:00 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-02/txt/msg01688.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35491 Iain Sandoe changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED Known to fail| | --- Comment #5 from Iain Sandoe 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.