From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4874 invoked by alias); 12 Sep 2003 17:56:33 -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 4867 invoked from network); 12 Sep 2003 17:56:32 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 12 Sep 2003 17:56:32 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h8CHuVl07080 for ; Fri, 12 Sep 2003 13:56:31 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h8CHuUe06571 for ; Fri, 12 Sep 2003 13:56:30 -0400 Received: from localhost.localdomain (vpn50-21.rdu.redhat.com [172.16.50.21]) by pobox.corp.redhat.com (8.12.8/8.12.8) with ESMTP id h8CHuTxI030757; Fri, 12 Sep 2003 13:56:30 -0400 Received: (from kev@localhost) by localhost.localdomain (8.11.6/8.11.6) id h8CHuOS29279; Fri, 12 Sep 2003 10:56:24 -0700 Date: Fri, 12 Sep 2003 17:56:00 -0000 From: Kevin Buettner Message-Id: <1030912175624.ZM29278@localhost.localdomain> In-Reply-To: Andrew Cagney "Re: [rfa:ppc] Cleanup SVR4 push dummy call" (Sep 12, 11:01am) References: <3F61DC59.5040706@redhat.com> <3F61DFB3.7000706@redhat.com> To: Andrew Cagney Subject: Re: [rfa:ppc] Cleanup SVR4 push dummy call Cc: gdb-patches@sources.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-09/txt/msg00265.txt.bz2 On Sep 12, 11:01am, Andrew Cagney wrote: > * ppc-sysv-tdep.c (align_up, align_down): Replace "round2" macro. > (ppc_sysv_abi_push_dummy_call): Rewrite, use a two pass loop. Okay, except... > ! else if (len == 8 > ! && (TYPE_CODE (type) == TYPE_CODE_INT /* long long */ > ! || (!ppc_floating_point_unit_p (current_gdbarch) > ! && TYPE_CODE (type) == TYPE_CODE_FLT))) /* double */ > ! { > ! /* "long long" or "double" passed in an odd/even > ! register pair with the low addressed word in the odd > ! register and the high addressed word in the even > ! register, or when the registers run out an 8 byte > ! aligned stack location. */ > ! if (greg > 9) > ! { > ! /* Just in case GREG was 10. */ > ! greg = 11; > ! argoffset = align_up (argoffset, 8); > ! write_memory (sp + argoffset, val, len); ...I believe you forgot the ``if (write_pass)'' check on the above call to write_memory(). Kevin