From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23815 invoked by alias); 1 Aug 2011 13:55:13 -0000 Received: (qmail 23805 invoked by uid 22791); 1 Aug 2011 13:55:12 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-qy0-f182.google.com (HELO mail-qy0-f182.google.com) (209.85.216.182) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 01 Aug 2011 13:54:55 +0000 Received: by qyk38 with SMTP id 38so3448583qyk.20 for ; Mon, 01 Aug 2011 06:54:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.118.69 with SMTP id u5mr2755730qcq.122.1312206894696; Mon, 01 Aug 2011 06:54:54 -0700 (PDT) Received: by 10.229.177.164 with HTTP; Mon, 1 Aug 2011 06:54:54 -0700 (PDT) In-Reply-To: References: <20110526175634.4bcab9b5@rex.config> Date: Mon, 01 Aug 2011 13:55:00 -0000 Message-ID: Subject: Re: [PATCH] ARM fixed-point support [5.5/6]: argument & return padding for libcalls From: "H.J. Lu" To: Julian Brown Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-08/txt/msg00049.txt.bz2 On Mon, Aug 1, 2011 at 6:51 AM, H.J. Lu wrote: > On Mon, Aug 1, 2011 at 6:38 AM, H.J. Lu wrote: >> On Thu, May 26, 2011 at 9:56 AM, Julian Brown = wrote: >>> This patch allows padding to be specified per-target for libcalls. This >>> hasn't been traditionally important, because libcalls haven't accepted >>> quantities which might need padding, but that's no longer true with the >>> new(-ish) fixed-point support helper functions. >>> >>> Tested (alongside other fixed-point support patches) with cross to ARM >>> EABI in both big & little-endian mode (the target-specific part is to >>> avoid a behaviour change for half-float types on ARM). OK to apply? >>> >>> Thanks, >>> >>> Julian >>> >>> ChangeLog >>> >>> =A0 =A0gcc/ >>> =A0 =A0* calls.c (emit_library_call_value_1): Support padding for libca= ll >>> =A0 =A0arguments and return values. >>> =A0 =A0* config/arm/arm.c (arm_pad_arg_upward): Pad half-float values >>> =A0 =A0downwards in big-endian mode. >> >> This breaks bootstrap on Linux/x86: >> >> http://gcc.gnu.org/ml/gcc-regression/2011-08/msg00007.html >> >> ../../src-trunk/gcc/calls.c: In function 'rtx_def* >> emit_library_call_value_1(int, rtx, rtx, libcall_type, machine_mode, >> int, __va_list_tag*)': >> ../../src-trunk/gcc/calls.c:3832:11: error: unused variable 'size' >> [-Werror=3Dunused-variable] >> cc1plus: all warnings being treated as errors >> >> make[6]: *** [calls.o] Error 1 >> > > I am testing this patch. > > -- > H.J. > --- > diff --git a/gcc/calls.c b/gcc/calls.c > index 7ad30b4..c4f8b46 100644 > --- a/gcc/calls.c > +++ b/gcc/calls.c > @@ -3829,7 +3829,9 @@ emit_library_call_value_1 (int retval, rtx orgfun, = rtx val > ue, > =A0 =A0 =A0 rtx val =3D argvec[argnum].value; > =A0 =A0 =A0 rtx reg =3D argvec[argnum].reg; > =A0 =A0 =A0 int partial =3D argvec[argnum].partial; > +#ifdef BLOCK_REG_PADDING > =A0 =A0 =A0 int size =3D 0; > +#endif > > =A0 =A0 =A0 /* Handle calls that pass values in multiple non-contiguous > =A0 =A0 =A0 =A0 locations. =A0The PA64 has examples of this for library c= alls. =A0*/ > I checked it in as an obvious fix. --=20 H.J.