summaryrefslogtreecommitdiff
path: root/devel/gdb53-act/files/patch-gdb_sparcnbsd-tdep.c
diff options
context:
space:
mode:
authorEdwin Groothuis <edwin@FreeBSD.org>2003-09-27 07:38:23 +0000
committerEdwin Groothuis <edwin@FreeBSD.org>2003-09-27 07:38:23 +0000
commit5ee17cb3c626761fbc5feefdd152bbd9be7e02c7 (patch)
tree31d8b41342cf17e772ad21eb997806e291a10642 /devel/gdb53-act/files/patch-gdb_sparcnbsd-tdep.c
parentNew port: adabindx - an Ada-binding to the X Window System and *tif (diff)
new port - ACT modified gdb53, a gdb that understands the Ada programming language
Ada programming knowledgeable version of gdb53 PR: ports/56371 Submitted by: John R. Shannon <john@johnrshannon.com>
Notes
Notes: svn path=/head/; revision=89530
Diffstat (limited to 'devel/gdb53-act/files/patch-gdb_sparcnbsd-tdep.c')
-rw-r--r--devel/gdb53-act/files/patch-gdb_sparcnbsd-tdep.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/devel/gdb53-act/files/patch-gdb_sparcnbsd-tdep.c b/devel/gdb53-act/files/patch-gdb_sparcnbsd-tdep.c
new file mode 100644
index 000000000000..13ba396dd6b7
--- /dev/null
+++ b/devel/gdb53-act/files/patch-gdb_sparcnbsd-tdep.c
@@ -0,0 +1,63 @@
+diff -urN gdb/sparcnbsd-tdep.c.orig gdb/sparcnbsd-tdep.c
+--- gdb/sparcnbsd-tdep.c.orig Sat Oct 19 17:19:17 2002
++++ gdb/sparcnbsd-tdep.c Sat Oct 19 17:44:47 2002
+@@ -31,20 +31,6 @@
+
+ #include "solib-svr4.h"
+
+-#define REG32_OFFSET_PSR (0 * 4)
+-#define REG32_OFFSET_PC (1 * 4)
+-#define REG32_OFFSET_NPC (2 * 4)
+-#define REG32_OFFSET_Y (3 * 4)
+-#define REG32_OFFSET_GLOBAL (4 * 4)
+-#define REG32_OFFSET_OUT (12 * 4)
+-
+-#define REG64_OFFSET_TSTATE (0 * 8)
+-#define REG64_OFFSET_PC (1 * 8)
+-#define REG64_OFFSET_NPC (2 * 8)
+-#define REG64_OFFSET_Y (3 * 8)
+-#define REG64_OFFSET_GLOBAL (4 * 8)
+-#define REG64_OFFSET_OUT (12 * 8)
+-
+ void
+ sparcnbsd_supply_reg32 (char *regs, int regno)
+ {
+@@ -375,16 +361,13 @@
+
+ if (gdbarch_ptr_bit (current_gdbarch) == 32)
+ {
+- reg_size = (20 * 4);
+- fpreg_size = (33 * 4);
++ reg_size = REG32_SIZE;
++ fpreg_size = FPREG32_SIZE;
+ }
+ else
+ {
+- reg_size = (20 * 8);
+- fpreg_size = (64 * 4)
+- + 8 /* fsr */
+- + 4 /* gsr */
+- + 4; /* pad */
++ reg_size = REG64_SIZE;
++ fpreg_size = FPREG64_SIZE;
+ }
+
+ switch (which)
+@@ -442,7 +425,7 @@
+
+ jb_addr = read_register (O0_REGNUM);
+
+- if (target_read_memory (jb_addr + 12, buf, sizeof (buf)))
++ if (target_read_memory (jb_addr + JB32_OFFSET_PC, buf, sizeof (buf)))
+ return 0;
+
+ *pc = extract_address (buf, sizeof (buf));
+@@ -458,7 +441,7 @@
+
+ jb_addr = read_register (O0_REGNUM);
+
+- if (target_read_memory (jb_addr + 16, buf, sizeof (buf)))
++ if (target_read_memory (jb_addr + JB64_OFFSET_PC, buf, sizeof (buf)))
+ return 0;
+
+ *pc = extract_address (buf, sizeof (buf));