Index: gdb/s390-linux-tdep.h |
diff --git a/gdb/s390-tdep.h b/gdb/s390-linux-tdep.h |
similarity index 68% |
rename from gdb/s390-tdep.h |
rename to gdb/s390-linux-tdep.h |
index 923e8b1b8731f287be02ccfc00eedfe0c7c485ed..1dd5bfa4cbb6e279624a245c4e4721a187d18662 100644 |
--- a/gdb/s390-tdep.h |
+++ b/gdb/s390-linux-tdep.h |
@@ -1,5 +1,5 @@ |
/* Target-dependent code for GDB, the GNU debugger. |
- Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc. |
+ Copyright (C) 2003-2013 Free Software Foundation, Inc. |
This file is part of GDB. |
@@ -19,6 +19,16 @@ |
#ifndef S390_TDEP_H |
#define S390_TDEP_H |
+/* Hardware capabilities. */ |
+ |
+#ifndef HWCAP_S390_HIGH_GPRS |
+#define HWCAP_S390_HIGH_GPRS 512 |
+#endif |
+ |
+#ifndef HWCAP_S390_TE |
+#define HWCAP_S390_TE 1024 |
+#endif |
+ |
/* Register information. */ |
/* Program Status Word. */ |
@@ -98,24 +108,58 @@ |
#define S390_ORIG_R2_REGNUM 67 |
#define S390_LAST_BREAK_REGNUM 68 |
#define S390_SYSTEM_CALL_REGNUM 69 |
+/* Transaction diagnostic block. */ |
+#define S390_TDB_DWORD0_REGNUM 70 |
+#define S390_TDB_ABORT_CODE_REGNUM 71 |
+#define S390_TDB_CONFLICT_TOKEN_REGNUM 72 |
+#define S390_TDB_ATIA_REGNUM 73 |
+#define S390_TDB_R0_REGNUM 74 |
+#define S390_TDB_R1_REGNUM 75 |
+#define S390_TDB_R2_REGNUM 76 |
+#define S390_TDB_R3_REGNUM 77 |
+#define S390_TDB_R4_REGNUM 78 |
+#define S390_TDB_R5_REGNUM 79 |
+#define S390_TDB_R6_REGNUM 80 |
+#define S390_TDB_R7_REGNUM 81 |
+#define S390_TDB_R8_REGNUM 82 |
+#define S390_TDB_R9_REGNUM 83 |
+#define S390_TDB_R10_REGNUM 84 |
+#define S390_TDB_R11_REGNUM 85 |
+#define S390_TDB_R12_REGNUM 86 |
+#define S390_TDB_R13_REGNUM 87 |
+#define S390_TDB_R14_REGNUM 88 |
+#define S390_TDB_R15_REGNUM 89 |
/* Total. */ |
-#define S390_NUM_REGS 70 |
+#define S390_NUM_REGS 90 |
/* Special register usage. */ |
#define S390_SP_REGNUM S390_R15_REGNUM |
#define S390_RETADDR_REGNUM S390_R14_REGNUM |
#define S390_FRAME_REGNUM S390_R11_REGNUM |
+#define S390_IS_GREGSET_REGNUM(i) \ |
+ (((i) >= S390_PSWM_REGNUM && (i) <= S390_A15_REGNUM) \ |
+ || ((i) >= S390_R0_UPPER_REGNUM && (i) <= S390_R15_UPPER_REGNUM) \ |
+ || (i) == S390_ORIG_R2_REGNUM) |
+ |
+#define S390_IS_FPREGSET_REGNUM(i) \ |
+ ((i) >= S390_FPC_REGNUM && (i) <= S390_F15_REGNUM) |
+ |
+#define S390_IS_TDBREGSET_REGNUM(i) \ |
+ ((i) >= S390_TDB_DWORD0_REGNUM && (i) <= S390_TDB_R15_REGNUM) |
+ |
/* Core file register sets, defined in s390-tdep.c. */ |
#define s390_sizeof_gregset 0x90 |
-extern int s390_regmap_gregset[S390_NUM_REGS]; |
+extern const short s390_regmap_gregset[]; |
#define s390x_sizeof_gregset 0xd8 |
-extern int s390x_regmap_gregset[S390_NUM_REGS]; |
+extern const short s390x_regmap_gregset[]; |
#define s390_sizeof_fpregset 0x88 |
-extern int s390_regmap_fpregset[S390_NUM_REGS]; |
-extern int s390_regmap_last_break[S390_NUM_REGS]; |
-extern int s390x_regmap_last_break[S390_NUM_REGS]; |
-extern int s390_regmap_system_call[S390_NUM_REGS]; |
+extern const short s390_regmap_fpregset[]; |
+extern const short s390_regmap_last_break[]; |
+extern const short s390x_regmap_last_break[]; |
+extern const short s390_regmap_system_call[]; |
+extern const short s390_regmap_tdb[]; |
+#define s390_sizeof_tdbregset 0x100 |
/* GNU/Linux target descriptions. */ |
extern struct target_desc *tdesc_s390_linux32; |
@@ -124,9 +168,10 @@ extern struct target_desc *tdesc_s390_linux32v2; |
extern struct target_desc *tdesc_s390_linux64; |
extern struct target_desc *tdesc_s390_linux64v1; |
extern struct target_desc *tdesc_s390_linux64v2; |
+extern struct target_desc *tdesc_s390_te_linux64; |
extern struct target_desc *tdesc_s390x_linux64; |
extern struct target_desc *tdesc_s390x_linux64v1; |
extern struct target_desc *tdesc_s390x_linux64v2; |
+extern struct target_desc *tdesc_s390x_te_linux64; |
#endif |
- |