From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26400 invoked by alias); 2 Aug 2002 02:35:26 -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 26392 invoked from network); 2 Aug 2002 02:35:26 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 2 Aug 2002 02:35:26 -0000 Received: from redhat.com (reddwarf.sfbay.redhat.com [172.16.24.50]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id TAA07642; Thu, 1 Aug 2002 19:34:48 -0700 (PDT) Message-ID: <3D49EB9E.3A59088D@redhat.com> Date: Thu, 01 Aug 2002 19:35:00 -0000 From: Michael Snyder Organization: Red Hat, Inc. X-Accept-Language: en MIME-Version: 1.0 To: gdb-patches@sources.redhat.com CC: cagney@redhat.com, kevinb@redhat.com Subject: [RFA] mips-n32 use_struct_convention Content-Type: multipart/mixed; boundary="------------265EB3D48C337EE510292637" X-SW-Source: 2002-08/txt/msg00048.txt.bz2 This is a multi-part message in MIME format. --------------265EB3D48C337EE510292637 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-length: 303 This patch makes use_struct_convention work correctly for N32, and incidentally adds a couple of convenience macros (yes, they are gdbarch-compatible). This is one half of my earlier patch for N32, which I'll withdraw if this and the following are acceptable. Just splitting it up for ease of review. --------------265EB3D48C337EE510292637 Content-Type: text/plain; charset=us-ascii; name="patch1b.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch1b.diff" Content-length: 2221 2002-08-01 Michael Snyder * mips-tdep.c: Define new macros MIPS_NEWABI, MIPS_OLDABI (by analogy with MIPS_EABI). (mips_use_struct_convention): NEWABI (n32 and n64) uses same scheme as EABI. Index: mips-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/mips-tdep.c,v retrieving revision 1.87 diff -c -3 -p -r1.87 mips-tdep.c *** mips-tdep.c 1 Aug 2002 21:36:27 -0000 1.87 --- mips-tdep.c 2 Aug 2002 02:19:11 -0000 *************** struct gdbarch_tdep *** 146,153 **** enum gdb_osabi osabi; }; ! #define MIPS_EABI (gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_EABI32 \ ! || gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_EABI64) #define MIPS_LAST_FP_ARG_REGNUM (gdbarch_tdep (current_gdbarch)->mips_last_fp_arg_regnum) --- 146,162 ---- enum gdb_osabi osabi; }; ! #define MIPS_EABI \ ! (gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_EABI32 \ ! || gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_EABI64) ! ! #define MIPS_NEWABI \ ! (gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_N32 \ ! || gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_N64) ! ! #define MIPS_OLDABI \ ! (gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_O32 \ ! || gdbarch_tdep (current_gdbarch)->mips_abi == MIPS_ABI_O64) #define MIPS_LAST_FP_ARG_REGNUM (gdbarch_tdep (current_gdbarch)->mips_last_fp_arg_regnum) *************** show_mask_address (char *cmd, int from_t *** 561,570 **** int mips_use_struct_convention (int gcc_p, struct type *type) { ! if (MIPS_EABI) return (TYPE_LENGTH (type) > 2 * MIPS_SAVED_REGSIZE); else ! return 1; /* Structures are returned by ref in extra arg0 */ } /* Tell if the program counter value in MEMADDR is in a MIPS16 function. */ --- 570,579 ---- int mips_use_struct_convention (int gcc_p, struct type *type) { ! if (MIPS_EABI || MIPS_NEWABI) return (TYPE_LENGTH (type) > 2 * MIPS_SAVED_REGSIZE); else ! return 1; /* Old ABI: structures are returned by ref in extra arg0 */ } /* Tell if the program counter value in MEMADDR is in a MIPS16 function. */ --------------265EB3D48C337EE510292637--