From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31046 invoked by alias); 1 Jul 2003 00:14:28 -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 31038 invoked from network); 1 Jul 2003 00:14:27 -0000 Received: from unknown (HELO zenia.home) (12.223.225.216) by sources.redhat.com with SMTP; 1 Jul 2003 00:14:27 -0000 Received: by zenia.home (Postfix, from userid 5433) id 0C731202BC; Mon, 30 Jun 2003 19:13:58 -0500 (EST) To: gdb-patches@sources.redhat.com Subject: Re: [patch]: fix argument passing on S/390 and S/390x References: From: Jim Blandy Date: Tue, 01 Jul 2003 00:14:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-07/txt/msg00001.txt.bz2 I've committed this to the 6.0 release branch, too. Jim Blandy writes: > This is a patch that was discussed and approved long ago; only > recently has the legal paperwork finally come through. > > 2003-06-30 Jim Blandy > > Patch from IBM (authors unspecified, probably Ulrich Weigand and > Gerhard Tonn) for argument passing on the S/390 and S/390x: > * s390-tdep.c (S390_STACK_FRAME_OVERHEAD): This is always space > for 16 registers, and then 32 more bytes. > (S390_STACK_PARAMETER_ALIGNMENT, S390_NUM_FP_PARAMETER_REGISTERS): > New macros. > (is_double_arg): The s390x doesn't handle DOUBLE_ARGS specially. > Move up in the file, since it's now used by is_simple_arg. > (is_simple_arg): Don't assume registers are four bytes long. > Exclude all double arguments. Extended floats are not simple > args. > (is_power_of_two): New function. > (pass_by_copy_ref): Call is_power_of_two, and check that the > length fits in a register, rather than listing all the acceptable > sizes. Extended floats are not passed by reference. > (s390_push_arguments): Don't assume registers are four bytes long. > Reserve an argument register to point to the buffer for structures > returned by value. Use S390_NUM_FP_PARAMETER_REGISTERS and > S390_STACK_FRAME_OVERHEAD.