From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7993 invoked by alias); 16 Nov 2002 01:00:20 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 7975 invoked from network); 16 Nov 2002 01:00:17 -0000 Received: from unknown (HELO hiauly1.hia.nrc.ca) (132.246.100.193) by sources.redhat.com with SMTP; 16 Nov 2002 01:00:17 -0000 Received: from hiauly1.hia.nrc.ca (localhost [127.0.0.1]) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) with ESMTP id gAG10Fot015988; Fri, 15 Nov 2002 20:00:16 -0500 (EST) Received: (from dave@localhost) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) id gAG10FED015986; Fri, 15 Nov 2002 20:00:15 -0500 (EST) Message-Id: <200211160100.gAG10FED015986@hiauly1.hia.nrc.ca> Subject: Re: HP-UX IA64 Patch to fix earlier patch To: sje@cup.hp.com (Steve Ellcey) Date: Fri, 15 Nov 2002 17:00:00 -0000 From: "John David Anglin" Cc: wilson@redhat.com, gcc-patches@gcc.gnu.org In-Reply-To: <200211152348.PAA26381@hpsje.cup.hp.com> from "Steve Ellcey" at Nov 15, 2002 03:48:36 pm MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2002-11/txt/msg00941.txt.bz2 > > From: "John David Anglin" > > > > I agree with Jim here. Not too long ago, I used this technique to avoid > > defining FUNCTION_ARG_REG_LITTLE_ENDIAN on the hppa64 port. I also > > managed to fix a long standing bug in the 32-bit port passing small > > structs using the same technique. Jim's comment is an over simplification > > of what really happens when a DImode value is used in a PARALLEL on > > big-endian 32-port. You actually get right-justified data in this case. > > See function_arg and function_arg_padding in pa.c. > > I'll give this a try. Do you know if this behavour keys off of > WORDS_BIG_ENDIAN, BYTES_BIG_ENDIAN, or BITS_BIG_ENDIAN? On PA HP-UX all > of these are 1, but on IA64 HP-UX we are setting BYTES and WORDS to 1 > and leaving BITS at 0. Setting BITS_BIG_ENDIAN to 1 was causing some > problems that I don't recall off the top of my head. emit_group_load and emit_group_store use extract_bit_field and store_bit_field. They don't directly key off any of the above but extract_bit_field and store_bit_field do. In the 32-bit port, we had the rather unique situation where 5-8 byte structs needed to be right-justified in the same manner as 1-4 byte structs. Structs larger than this are left justified. Dave -- J. David Anglin dave.anglin@nrc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6605)