This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] Use enum for i386 register numbers
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-patches at sources dot redhat dot com
- Date: Sun, 26 Oct 2003 14:10:48 +0100 (CET)
- Subject: [PATCH] Use enum for i386 register numbers
Some time ago Andrew posted a patch that (among other things)
converted the i386 to use an enum for its register numbers. The
difference with the attached patch is that this patch doesn't blindly
add numbers for all registers, but only adds those register numbers
that we really need.
Committed,
Mark
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
Change register numbers to enumartion values.
* i386-tdep.h (enum i386_regnum): New.
(I386_EAX_REGNUM, I386_EDX_REGNUM, I386_ESP_REGNUM,
I386_EBP_REGNUM, I386_IP_REGNUM, I386_EFLAGS_REGNUM,
I386_ST0_REGNUM): Remove defines.
* i386-tdep.c (I386_EBX_REGNUM, I386_ECX_REGNUM, I386_ESI_REGNUM,
I386_EDI_REGNUM): Remove defines.
Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.172
diff -u -p -r1.172 i386-tdep.c
--- i386-tdep.c 11 Oct 2003 13:50:25 -0000 1.172
+++ i386-tdep.c 26 Oct 2003 13:07:51 -0000
@@ -1418,14 +1418,6 @@ i386_pseudo_register_write (struct gdbar
}
-/* These registers don't have pervasive standard uses. Move them to
- i386-tdep.h if necessary. */
-
-#define I386_EBX_REGNUM 3 /* %ebx */
-#define I386_ECX_REGNUM 1 /* %ecx */
-#define I386_ESI_REGNUM 6 /* %esi */
-#define I386_EDI_REGNUM 7 /* %edi */
-
/* Return the register number of the register allocated by GCC after
REGNUM, or -1 if there is no such register. */
Index: i386-tdep.h
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.h,v
retrieving revision 1.29
diff -u -p -r1.29 i386-tdep.h
--- i386-tdep.h 11 Oct 2003 13:50:25 -0000 1.29
+++ i386-tdep.h 26 Oct 2003 13:07:51 -0000
@@ -160,13 +160,20 @@ extern int i386_fpc_regnum_p (int regnum
/* Register numbers of various important registers. */
-#define I386_EAX_REGNUM 0 /* %eax */
-#define I386_EDX_REGNUM 2 /* %edx */
-#define I386_ESP_REGNUM 4 /* %esp */
-#define I386_EBP_REGNUM 5 /* %ebp */
-#define I386_EIP_REGNUM 8 /* %eip */
-#define I386_EFLAGS_REGNUM 9 /* %eflags */
-#define I386_ST0_REGNUM 16 /* %st(0) */
+enum i386_regnum
+{
+ I386_EAX_REGNUM, /* %eax */
+ I386_ECX_REGNUM, /* %ecx */
+ I386_EDX_REGNUM, /* %edx */
+ I386_EBX_REGNUM, /* %ebx */
+ I386_ESP_REGNUM, /* %esp */
+ I386_EBP_REGNUM, /* %ebp */
+ I386_ESI_REGNUM, /* %esi */
+ I386_EDI_REGNUM, /* %edi */
+ I386_EIP_REGNUM, /* %eip */
+ I386_EFLAGS_REGNUM, /* %eflags */
+ I386_ST0_REGNUM = 16, /* %st(0) */
+};
#define I386_NUM_GREGS 16
#define I386_NUM_FREGS 16