This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]