* tm-{irix3,mips,nindy960,pn,symmetry,vx960}.h: Move
authorJohn Gilmore <gnu@cygnus>
Sat, 12 Oct 1991 07:11:48 +0000 (07:11 +0000)
committerJohn Gilmore <gnu@cygnus>
Sat, 12 Oct 1991 07:11:48 +0000 (07:11 +0000)
REGISTER_U_ADDR to corresponding xm- file.  Sugg. by Peter Schauer.

gdb/tm-irix3.h
gdb/tm-mips.h
gdb/tm-nindy960.h
gdb/tm-pn.h
gdb/tm-symmetry.h
gdb/tm-vx960.h
gdb/xm-irix3.h
gdb/xm-mips.h
gdb/xm-pn.h
gdb/xm-symmetry.h

index 35440e5bca517d0684ee08cf6bd0e06677fbf515..63460a3ecebecd2b702d0fb86675574a7a1422c3 100644 (file)
@@ -125,14 +125,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define DO_REGISTERS_INFO(_regnum, fp) mips_do_registers_info(_regnum, fp)
 
-#define U_REGS_OFFSET 0
-
-#define REGISTER_U_ADDR(addr, blockend, regno)                 \
-  if (regno < PC_REGNUM)                               \
-      addr = regno;                                    \
-  else                                                 \
-      addr = regno + NSIG_HNDLRS; /* Skip over signal handlers */
-
 /* Total amount of space needed to store our copies of the machine's
    register state, the array `registers'.  */
 #define REGISTER_BYTES (NUM_REGS*4)
index b57b04a1a53c6f6ba82d3126389cfd93b3f63823..7eb7f5523954652acd41bc0b4436d8fdaca2d5a1 100644 (file)
@@ -136,20 +136,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define DO_REGISTERS_INFO(_regnum, fp) mips_do_registers_info(_regnum, fp)
 
-#define REGISTER_U_ADDR(addr, blockend, regno)                 \
-   if (blockend == 0) {                                        \
-       if (regno < 38) addr = (NBPG*UPAGES) + (regno - 38)*sizeof(int);\
-       else addr = 0; /* ..somewhere in the pcb */     \
-   } else if (regno < 32) addr = regno;                        \
-   else if (regno == PC_REGNUM) addr = 96;             \
-   else if (regno == 36) addr = 97;                    \
-   else if (regno == HI_REGNUM) addr = 98;             \
-   else if (regno == LO_REGNUM) addr = 99;             \
-   else if (regno == FCRCS_REGNUM) addr = 100;         \
-   else if (regno == FCRIR_REGNUM) addr = 101;         \
-   else if (regno >= FP0_REGNUM) addr = regno - (FP0_REGNUM-32);\
-   else addr = 0;
-
 /* Total amount of space needed to store our copies of the machine's
    register state, the array `registers'.  */
 #define REGISTER_BYTES (NUM_REGS*4)
index 24dfea997f95eec40b89ea60b443569aada06e31..36a24fd9236d619df63381507b98a9310cb7cf84 100644 (file)
@@ -98,8 +98,3 @@ extern int nindy_frame_chain_valid();         /* See nindy-tdep.c */
  */
 
 #define DECR_PC_AFTER_BREAK 0
-
-/* Not needed, because we don't support core files:
- *     #define KERNEL_U_ADDR
- *     #define REGISTER_U_ADDR(addr, blockend, regno)
- */
index 980def70c66e861299ff2d4fc2c9216606f54f77..1c2e77a9cd55835cdea30a7fba39b78da7f96b07 100644 (file)
@@ -229,17 +229,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define PS_REGNUM      17      /* Contains processor status */
 #define PC_REGNUM      18      /* Contains program counter */
 
-/* This is a piece of magic that is given a register number REGNO
-   and as BLOCKEND the address in the system of the end of the user structure
-   and stores in ADDR the address in the kernel or core dump
-   of that register. */
-#define REGISTER_U_ADDR(addr, blockend, regno) {                       \
-       addr = blockend + regno * 4;                                    \
-       if (regno == PC_REGNUM) addr = blockend - 8 * 4;                \
-       if (regno == PS_REGNUM) addr = blockend - 7 * 4;                \
-       if (regno == SP_REGNUM) addr = blockend - 6 * 4;                \
-}
-
 /* Total amount of space needed to store our copies of the machine's
    register state, the array `registers'.  */
 #define REGISTER_BYTES                 (NUM_GEN_REGS*4 + NUM_CPU_REGS*4)
index f5a8acaac450218353ef0e6d19e7c24652be1e8c..41d6db9bd3c7bf443a37b2b1a010120756c98e35 100644 (file)
@@ -131,104 +131,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define PC_REGNUM 16           /* Contains program counter */
 #define PS_REGNUM 17           /* Contains processor status */
 
-/* The magic numbers below are offsets into u_ar0 in the user struct.
- * They live in <machine/reg.h>.  Gdb calls this macro with blockend
- * holding u.u_ar0 - KERNEL_U_ADDR.  Only the registers listed are
- * saved in the u area (along with a few others that aren't useful
- * here.  See <machine/reg.h>).
- */
-
-#define REGISTER_U_ADDR(addr, blockend, regno) \
-{ struct user foo;     /* needed for finding fpu regs */ \
-switch (regno) { \
-    case 0: \
-      addr = blockend + EAX * sizeof(int); break; \
-  case 1: \
-      addr = blockend + EDX * sizeof(int); break; \
-  case 2: \
-      addr = blockend + ECX * sizeof(int); break; \
-  case 3:                      /* st(0) */ \
-      addr = blockend - \
-         ((int)&foo.u_fpusave.fpu_stack[0][0] - (int)&foo); \
-      break; \
-  case 4:                      /* st(1) */ \
-      addr = blockend - \
-         ((int) &foo.u_fpusave.fpu_stack[1][0] - (int)&foo); \
-      break; \
-  case 5: \
-      addr = blockend + EBX * sizeof(int); break; \
-  case 6: \
-      addr = blockend + ESI * sizeof(int); break; \
-  case 7: \
-      addr = blockend + EDI * sizeof(int); break; \
-  case 8:                      /* st(2) */ \
-      addr = blockend - \
-         ((int) &foo.u_fpusave.fpu_stack[2][0] - (int)&foo); \
-      break; \
-  case 9:                      /* st(3) */ \
-      addr = blockend - \
-         ((int) &foo.u_fpusave.fpu_stack[3][0] - (int)&foo); \
-      break; \
-  case 10:                     /* st(4) */ \
-      addr = blockend - \
-         ((int) &foo.u_fpusave.fpu_stack[4][0] - (int)&foo); \
-      break; \
-  case 11:                     /* st(5) */ \
-      addr = blockend - \
-         ((int) &foo.u_fpusave.fpu_stack[5][0] - (int)&foo); \
-      break; \
-  case 12:                     /* st(6) */ \
-      addr = blockend - \
-         ((int) &foo.u_fpusave.fpu_stack[6][0] - (int)&foo); \
-      break; \
-  case 13:                     /* st(7) */ \
-      addr = blockend - \
-         ((int) &foo.u_fpusave.fpu_stack[7][0] - (int)&foo); \
-      break; \
-  case 14: \
-      addr = blockend + ESP * sizeof(int); break; \
-  case 15: \
-      addr = blockend + EBP * sizeof(int); break; \
-  case 16: \
-      addr = blockend + EIP * sizeof(int); break; \
-  case 17: \
-      addr = blockend + FLAGS * sizeof(int); break; \
-  case 18:                     /* fp1 */ \
-  case 19:                     /* fp2 */ \
-  case 20:                     /* fp3 */ \
-  case 21:                     /* fp4 */ \
-  case 22:                     /* fp5 */ \
-  case 23:                     /* fp6 */ \
-  case 24:                     /* fp7 */ \
-  case 25:                     /* fp8 */ \
-  case 26:                     /* fp9 */ \
-  case 27:                     /* fp10 */ \
-  case 28:                     /* fp11 */ \
-  case 29:                     /* fp12 */ \
-  case 30:                     /* fp13 */ \
-  case 31:                     /* fp14 */ \
-  case 32:                     /* fp15 */ \
-  case 33:                     /* fp16 */ \
-  case 34:                     /* fp17 */ \
-  case 35:                     /* fp18 */ \
-  case 36:                     /* fp19 */ \
-  case 37:                     /* fp20 */ \
-  case 38:                     /* fp21 */ \
-  case 39:                     /* fp22 */ \
-  case 40:                     /* fp23 */ \
-  case 41:                     /* fp24 */ \
-  case 42:                     /* fp25 */ \
-  case 43:                     /* fp26 */ \
-  case 44:                     /* fp27 */ \
-  case 45:                     /* fp28 */ \
-  case 46:                     /* fp29 */ \
-  case 47:                     /* fp30 */ \
-  case 48:                     /* fp31 */ \
-     addr = blockend - \
-        ((int) &foo.u_fpasave.fpa_regs[(regno)-18] - (int)&foo); \
-  } \
-}
-
 /* Total amount of space needed to store our copies of the machine's
    register state, the array `registers'.  */
 /* 10 i386 registers, 8 i387 registers, and 31 Weitek 1167 registers */
index 7d1c61f6ee5063d88fa176a5add489b7b2ede729..f6a5e1f7853342f73805e712a238dba3ad92c5f4 100644 (file)
@@ -35,14 +35,3 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* Breakpoint patching is handled at the target end in VxWorks.  */
 /* #define BREAKPOINT {0x00, 0x3e, 0x00, 0x66} */
-
-/* Not needed, because we don't support core files:
-       #define KERNEL_U_ADDR
-       #define REGISTER_U_ADDR(addr, blockend, regno)
- */
-
-/* Address of end of stack space.
-       This doesn't matter for VxWorks, because it's only used
-       in manipulation of core files, which we don't support.  */
-
-/* #define STACK_END_ADDR (0xfe000000) */
index ce934c93fd62ce4db50148277ef79d0ae6b4b1db..e155a419f0b7a638dcd191f8bcb9691b93c29e80 100644 (file)
@@ -20,7 +20,17 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define HAVE_TERMIO
 
+#define U_REGS_OFFSET 0
+
 #include "xm-bigmips.h"
 
+/* Override register locations in upage for SGI machines */
+#undef REGISTER_U_ADDR
+#define REGISTER_U_ADDR(addr, blockend, regno)                 \
+  if (regno < PC_REGNUM)                               \
+      addr = regno;                                    \
+  else                                                 \
+      addr = regno + NSIG_HNDLRS; /* Skip over signal handlers */
+
 /* Don't need special routines for the SGI -- we can use infptrace.c */
 #undef FETCH_INFERIOR_REGISTERS
index caebda5e5f3d50d8760e1f2bf31107d7d1b358bc..29d523e4823b6b766bd099a6a85a072bd7f41d19 100644 (file)
@@ -36,6 +36,20 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define KERNEL_U_ADDR (int)u.u_ar0
 
+#define REGISTER_U_ADDR(addr, blockend, regno)                 \
+   if (blockend == 0) {                                        \
+       if (regno < 38) addr = (NBPG*UPAGES) + (regno - 38)*sizeof(int);\
+       else addr = 0; /* ..somewhere in the pcb */     \
+   } else if (regno < 32) addr = regno;                        \
+   else if (regno == PC_REGNUM) addr = 96;             \
+   else if (regno == 36) addr = 97;                    \
+   else if (regno == HI_REGNUM) addr = 98;             \
+   else if (regno == LO_REGNUM) addr = 99;             \
+   else if (regno == FCRCS_REGNUM) addr = 100;         \
+   else if (regno == FCRIR_REGNUM) addr = 101;         \
+   else if (regno >= FP0_REGNUM) addr = regno - (FP0_REGNUM-32);\
+   else addr = 0;
+
 /* Override copies of {fetch,store}_inferior_registers in infptrace.c.  */
 #define FETCH_INFERIOR_REGISTERS
 
index 1cb76026c7b345440a6acc94aa87ef8f6bac844e..d180b6e6c657849b133048d407a8038cdaa8139f 100644 (file)
@@ -26,9 +26,19 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* Address of U in kernel space */
 #define        KERNEL_U_ADDR           0x3fc000
+
+/* This is a piece of magic that is given a register number REGNO
+   and as BLOCKEND the address in the system of the end of the user structure
+   and stores in ADDR the address in the kernel or core dump
+   of that register. */
+#define REGISTER_U_ADDR(addr, blockend, regno) {                       \
+       addr = blockend + regno * 4;                                    \
+       if (regno == PC_REGNUM) addr = blockend - 8 * 4;                \
+       if (regno == PS_REGNUM) addr = blockend - 7 * 4;                \
+       if (regno == SP_REGNUM) addr = blockend - 6 * 4;                \
+}
 \f
-/*
- * No KDB support, Yet! */
+/* No KDB support, Yet! */
 /* Interface definitions for kernel debugger KDB.  */
 
 /* Map machine fault codes into signal numbers.
index f229dad6e2af674e1e43dfce21c5de7e876c8686..4e1aeac65989d7ac725aa996cf27b5b7c8b0af8a 100644 (file)
@@ -41,6 +41,103 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define KERNEL_U_ADDR (0x80000000 - (UPAGES * NBPG))
 
+/* The magic numbers below are offsets into u_ar0 in the user struct.
+   They live in <machine/reg.h>.  Gdb calls this macro with blockend
+   holding u.u_ar0 - KERNEL_U_ADDR.  Only the registers listed are
+   saved in the u area (along with a few others that aren't useful
+   here.  See <machine/reg.h>).  */
+
+#define REGISTER_U_ADDR(addr, blockend, regno) \
+{ struct user foo;     /* needed for finding fpu regs */ \
+switch (regno) { \
+    case 0: \
+      addr = blockend + EAX * sizeof(int); break; \
+  case 1: \
+      addr = blockend + EDX * sizeof(int); break; \
+  case 2: \
+      addr = blockend + ECX * sizeof(int); break; \
+  case 3:                      /* st(0) */ \
+      addr = blockend - \
+         ((int)&foo.u_fpusave.fpu_stack[0][0] - (int)&foo); \
+      break; \
+  case 4:                      /* st(1) */ \
+      addr = blockend - \
+         ((int) &foo.u_fpusave.fpu_stack[1][0] - (int)&foo); \
+      break; \
+  case 5: \
+      addr = blockend + EBX * sizeof(int); break; \
+  case 6: \
+      addr = blockend + ESI * sizeof(int); break; \
+  case 7: \
+      addr = blockend + EDI * sizeof(int); break; \
+  case 8:                      /* st(2) */ \
+      addr = blockend - \
+         ((int) &foo.u_fpusave.fpu_stack[2][0] - (int)&foo); \
+      break; \
+  case 9:                      /* st(3) */ \
+      addr = blockend - \
+         ((int) &foo.u_fpusave.fpu_stack[3][0] - (int)&foo); \
+      break; \
+  case 10:                     /* st(4) */ \
+      addr = blockend - \
+         ((int) &foo.u_fpusave.fpu_stack[4][0] - (int)&foo); \
+      break; \
+  case 11:                     /* st(5) */ \
+      addr = blockend - \
+         ((int) &foo.u_fpusave.fpu_stack[5][0] - (int)&foo); \
+      break; \
+  case 12:                     /* st(6) */ \
+      addr = blockend - \
+         ((int) &foo.u_fpusave.fpu_stack[6][0] - (int)&foo); \
+      break; \
+  case 13:                     /* st(7) */ \
+      addr = blockend - \
+         ((int) &foo.u_fpusave.fpu_stack[7][0] - (int)&foo); \
+      break; \
+  case 14: \
+      addr = blockend + ESP * sizeof(int); break; \
+  case 15: \
+      addr = blockend + EBP * sizeof(int); break; \
+  case 16: \
+      addr = blockend + EIP * sizeof(int); break; \
+  case 17: \
+      addr = blockend + FLAGS * sizeof(int); break; \
+  case 18:                     /* fp1 */ \
+  case 19:                     /* fp2 */ \
+  case 20:                     /* fp3 */ \
+  case 21:                     /* fp4 */ \
+  case 22:                     /* fp5 */ \
+  case 23:                     /* fp6 */ \
+  case 24:                     /* fp7 */ \
+  case 25:                     /* fp8 */ \
+  case 26:                     /* fp9 */ \
+  case 27:                     /* fp10 */ \
+  case 28:                     /* fp11 */ \
+  case 29:                     /* fp12 */ \
+  case 30:                     /* fp13 */ \
+  case 31:                     /* fp14 */ \
+  case 32:                     /* fp15 */ \
+  case 33:                     /* fp16 */ \
+  case 34:                     /* fp17 */ \
+  case 35:                     /* fp18 */ \
+  case 36:                     /* fp19 */ \
+  case 37:                     /* fp20 */ \
+  case 38:                     /* fp21 */ \
+  case 39:                     /* fp22 */ \
+  case 40:                     /* fp23 */ \
+  case 41:                     /* fp24 */ \
+  case 42:                     /* fp25 */ \
+  case 43:                     /* fp26 */ \
+  case 44:                     /* fp27 */ \
+  case 45:                     /* fp28 */ \
+  case 46:                     /* fp29 */ \
+  case 47:                     /* fp30 */ \
+  case 48:                     /* fp31 */ \
+     addr = blockend - \
+        ((int) &foo.u_fpasave.fpa_regs[(regno)-18] - (int)&foo); \
+  } \
+}
+
 /* Compensate for lack of `vprintf' function.  */
 
 #define MISSING_VPRINTF