From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22966 invoked by alias); 10 Oct 2003 21:01:36 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 22959 invoked from network); 10 Oct 2003 21:01:34 -0000 Received: from unknown (HELO localhost.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 10 Oct 2003 21:01:34 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 683812B89; Fri, 10 Oct 2003 17:01:28 -0400 (EDT) Message-ID: <3F871E28.8050607@redhat.com> Date: Fri, 10 Oct 2003 21:01:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030820 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Jason Thorpe Cc: Kevin Buettner , gdb-patches@sources.redhat.com Subject: Re: [rfa?] Implement ppc32 SYSV {extract,store} return value References: <1B04AB74-FB61-11D7-A35F-000A957650EC@wasabisystems.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-10/txt/msg00383.txt.bz2 > On Friday, October 10, 2003, at 01:32 PM, Andrew Cagney wrote: > > The GCC shipped in 1.5 vs the one now in 1.6 > $ gcc --version > 2.95.3 > > So, which one was right? The 1.5 compiler or the 1.6 compiler? Neither, but from memory 1.5 was slightly closer: > /* NetBSD is confused. It appears that 1.5 was using the correct SVr4 > convention but, 1.6 switched to the below broken convention. For > the moment use the broken convention. Ulgh!. */ > > static int > ppcnbsd_use_struct_convention (int gcc_p, struct type *value_type) > { > if ((TYPE_LENGTH (value_type) == 16 || TYPE_LENGTH (value_type) == 8) > && TYPE_VECTOR (value_type)) > return 0; > > return !(TYPE_LENGTH (value_type) == 1 > || TYPE_LENGTH (value_type) == 2 > || TYPE_LENGTH (value_type) == 4 > || TYPE_LENGTH (value_type) == 8); > } however, then GCC was getting: + /* GCC screwed up. The last register isn't "left" aligned. + Need to extract the least significant part of each + register and then store that. */ wrong. Andrew