From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31999 invoked by alias); 12 Apr 2002 17:18:53 -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 31988 invoked from network); 12 Apr 2002 17:18:51 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 12 Apr 2002 17:18:51 -0000 Received: from romulus.sfbay.redhat.com (romulus.sfbay.redhat.com [172.16.27.251]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id KAA11629 for ; Fri, 12 Apr 2002 10:18:50 -0700 (PDT) Received: (from kev@localhost) by romulus.sfbay.redhat.com (8.11.6/8.11.6) id g3CHIXO07473 for gdb-patches@sources.redhat.com; Fri, 12 Apr 2002 10:18:33 -0700 Date: Fri, 12 Apr 2002 10:18:00 -0000 From: Kevin Buettner Message-Id: <1020412171832.ZM7472@localhost.localdomain> To: gdb-patches@sources.redhat.com Subject: [PATCH] rs6000-tdep.c: Use rs6000_* methods for 64-bit SysV ABI. MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-04/txt/msg00461.txt.bz2 I've just committed the patch below. Note (see the comments) that I do have some concerns about this patch. However, I think that we're better off with Jimi's changes than we are with the status quo. From Jimi X : * rs6000-tdep.c (rs6000_gdbarch_init): Use rs6000_* methods for 64-bit SysV ABI. Index: rs6000-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v retrieving revision 1.52 diff -u -p -r1.52 rs6000-tdep.c --- rs6000-tdep.c 12 Apr 2002 07:37:18 -0000 1.52 +++ rs6000-tdep.c 12 Apr 2002 07:59:08 -0000 @@ -2658,7 +2658,14 @@ rs6000_gdbarch_init (struct gdbarch_info set_gdbarch_extract_return_value (gdbarch, rs6000_extract_return_value); - if (sysv_abi) + /* Note: kevinb/2002-04-12: I'm not convinced that rs6000_push_arguments() + is correct for the SysV ABI when the wordsize is 8, but I'm also + fairly certain that ppc_sysv_abi_push_arguments() will give even + worse results since it only works for 32-bit code. So, for the moment, + we're better off calling rs6000_push_arguments() since it works for + 64-bit code. At some point in the future, this matter needs to be + revisited. */ + if (sysv_abi && wordsize == 4) set_gdbarch_push_arguments (gdbarch, ppc_sysv_abi_push_arguments); else set_gdbarch_push_arguments (gdbarch, rs6000_push_arguments); @@ -2699,7 +2706,9 @@ rs6000_gdbarch_init (struct gdbarch_info } set_gdbarch_frame_chain_valid (gdbarch, file_frame_chain_valid); - if (osabi == ELFOSABI_LINUX) + /* Note: kevinb/2002-04-12: See note above regarding *_push_arguments(). + The same remarks hold for the methods below. */ + if (osabi == ELFOSABI_LINUX && wordsize == 4) { set_gdbarch_frameless_function_invocation (gdbarch, ppc_linux_frameless_function_invocation);