From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11910 invoked by alias); 21 Mar 2003 15:52:58 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 11862 invoked from network); 21 Mar 2003 15:52:56 -0000 Received: from unknown (HELO faui11.informatik.uni-erlangen.de) (131.188.31.2) by sources.redhat.com with SMTP; 21 Mar 2003 15:52:56 -0000 Received: (from weigand@localhost) by faui11.informatik.uni-erlangen.de (8.9.1/8.1.4-FAU) id QAA10738; Fri, 21 Mar 2003 16:52:52 +0100 (MET) From: Ulrich Weigand Message-Id: <200303211552.QAA10738@faui11.informatik.uni-erlangen.de> Subject: Re: RFA: Ada variable-sized objects, bit_size_type == TImode, and divti3 To: rth@redhat.com (Richard Henderson) Date: Fri, 21 Mar 2003 16:27:00 -0000 Cc: gcc@gcc.gnu.org, gcc-patches@gcc.gnu.org In-Reply-To: <20030321071015.GA7800@redhat.com> from "Richard Henderson" at Mar 20, 2003 11:10:15 PM MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2003-03/txt/msg01368.txt.bz2 Richard Henderson wrote: > On Fri, Mar 21, 2003 at 02:15:36AM +0100, Ulrich Weigand wrote: > > Well, but we don't need the size in bits when computing stack > > alignment. > > True. Perhaps you can find out why we're doing this? I'll have a look. > > I'll just fix the MIN_UNITS_PER_WORD define to get 128-bit > > libgcc2 routines built. > > This is good as well. I've applied the following patch to fix this to both 3.3 branch and CVS head; bootstrap (including Ada) and regtest pass on both branches on s390-ibm-linux and s390x-ibm-linux now. ChangeLog: * config/s390/s390.h: Do not include fixdfdi.h on s390x. (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2. (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2. Index: gcc/config/s390/s390.h =================================================================== RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.h,v retrieving revision 1.53.2.4 diff -c -p -r1.53.2.4 s390.h *** gcc/config/s390/s390.h 31 Jan 2003 23:51:23 -0000 1.53.2.4 --- gcc/config/s390/s390.h 21 Mar 2003 01:53:14 -0000 *************** Boston, MA 02111-1307, USA. */ *** 24,30 **** /* Override the __fixdfdi etc. routines when building libgcc2. ??? This should be done in a cleaner way ... */ ! #ifdef IN_LIBGCC2 #include #endif --- 24,30 ---- /* Override the __fixdfdi etc. routines when building libgcc2. ??? This should be done in a cleaner way ... */ ! #if defined (IN_LIBGCC2) && !defined (__s390x__) #include #endif *************** extern int target_flags; *** 94,99 **** --- 94,110 ---- #define CAN_DEBUG_WITHOUT_FP + /* In libgcc2, determine target settings as compile-time constants. */ + #ifdef IN_LIBGCC2 + #undef TARGET_64BIT + #ifdef __s390x__ + #define TARGET_64BIT 1 + #else + #define TARGET_64BIT 0 + #endif + #endif + + /* Target machine storage layout. */ /* Everything is big-endian. */ *************** extern int target_flags; *** 103,109 **** --- 114,122 ---- /* Width of a word, in units (bytes). */ #define UNITS_PER_WORD (TARGET_64BIT ? 8 : 4) + #ifndef IN_LIBGCC2 #define MIN_UNITS_PER_WORD 4 + #endif #define MAX_BITS_PER_WORD 64 /* Function arguments and return values are promoted to word size. */ -- Dr. Ulrich Weigand weigand@informatik.uni-erlangen.de