From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12560 invoked by alias); 6 Apr 2004 23:23:15 -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 12522 invoked from network); 6 Apr 2004 23:23:08 -0000 Received: from unknown (HELO walton.kettenis.dyndns.org) (213.93.114.7) by sources.redhat.com with SMTP; 6 Apr 2004 23:23:08 -0000 Received: from elgar.kettenis.dyndns.org (elgar.kettenis.dyndns.org [192.168.0.2]) by walton.kettenis.dyndns.org (8.12.6p3/8.12.6) with ESMTP id i36NMs0J000238; Wed, 7 Apr 2004 01:22:54 +0200 (CEST) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: from elgar.kettenis.dyndns.org (localhost [127.0.0.1]) by elgar.kettenis.dyndns.org (8.12.6p3/8.12.6) with ESMTP id i36NMskF000979; Wed, 7 Apr 2004 01:22:54 +0200 (CEST) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: (from kettenis@localhost) by elgar.kettenis.dyndns.org (8.12.6p3/8.12.6/Submit) id i36NMqiE000976; Wed, 7 Apr 2004 01:22:52 +0200 (CEST) Date: Tue, 06 Apr 2004 23:23:00 -0000 Message-Id: <200404062322.i36NMqiE000976@elgar.kettenis.dyndns.org> From: Mark Kettenis To: jimb@redhat.com CC: ford@vss.fsi.com, eliz@gnu.org, gdb-patches@sources.redhat.com In-reply-to: (message from Jim Blandy on 05 Apr 2004 17:44:14 -0500) Subject: Re: [PATCH] i386_stab_reg_to_regnum (4 <-> 5, ebp <-> esp) References: <8011-Fri02Apr2004094123+0300-eliz@gnu.org> <2719-Fri02Apr2004213907+0300-eliz at gnu dot org> X-SW-Source: 2004-04/txt/msg00156.txt.bz2 From: Jim Blandy Date: 05 Apr 2004 17:44:14 -0500 I'm getting a bit lost, so let me try to sum up the discussion, for my own sake. There are two distinct questions at hand: - Should GDB's i386_stab_reg_to_regnum be changed? For the first question: I think your original patch is correct. Yup. I agree. I wonder whether I introduced the bug or that it has always been wrong... The bit-twiddling is correct, but I'd rather see something more direct, like: Index: gdb/i386-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/i386-tdep.c,v retrieving revision 1.182 diff -c -c -F'^(' -r1.182 i386-tdep.c *** gdb/i386-tdep.c 1 Apr 2004 18:14:03 -0000 1.182 --- gdb/i386-tdep.c 5 Apr 2004 22:15:01 -0000 *************** *** 211,218 **** /* This implements what GCC calls the "default" register map. */ if (reg >= 0 && reg <= 7) { ! /* General-purpose registers. */ ! return reg; } else if (reg >= 12 && reg <= 19) { --- 211,223 ---- /* This implements what GCC calls the "default" register map. */ if (reg >= 0 && reg <= 7) { ! /* General-purpose registers. The debug info calls %ebp ! register 4, and %esp register 5. */ ! if (reg == 4) ! return 5; ! else if (reg == 5) ! return 4; ! else return reg; } else if (reg >= 12 && reg <= 19) { Jim, please apply this patch, with the proper ChangeLog of course. Mark