/* This file was created with the aid of ``gdbarch.sh''.
- The bourn shell script ``gdbarch.sh'' creates the files
+ The Bourne shell script ``gdbarch.sh'' creates the files
``new-gdbarch.c'' and ``new-gdbarch.h and then compares them
against the existing ``gdbarch.[hc]''. Any differences found
being reported.
If editing this file, please also run gdbarch.sh and merge any
- changes into that script. Conversely, when makeing sweeping changes
+ changes into that script. Conversely, when making sweeping changes
to this file, modifying gdbarch.sh and using its output may prove
easier. */
*/
- int bfd_vma_bit;
- int ptr_bit;
int short_bit;
int int_bit;
int long_bit;
int float_bit;
int double_bit;
int long_double_bit;
+ int ptr_bit;
+ int addr_bit;
+ int bfd_vma_bit;
int ieee_float;
gdbarch_read_pc_ftype *read_pc;
gdbarch_write_pc_ftype *write_pc;
/*per-architecture data-pointers and swap regions */
0, NULL, NULL,
/* Multi-arch values */
- 8 * sizeof (void*),
- 8 * sizeof (void*),
8 * sizeof (short),
8 * sizeof (int),
8 * sizeof (long),
8 * sizeof (float),
8 * sizeof (double),
8 * sizeof (long double),
+ 8 * sizeof (void*),
+ 8 * sizeof (void*),
+ 8 * sizeof (void*),
0,
0,
0,
struct gdbarch *current_gdbarch = &startup_gdbarch;
-/* Create a new ``struct gdbarch'' based in information provided by
+/* Create a new ``struct gdbarch'' based on information provided by
``struct gdbarch_info''. */
struct gdbarch *
gdbarch->byte_order = info->byte_order;
/* Force the explicit initialization of these. */
+ gdbarch->short_bit = 2*TARGET_CHAR_BIT;
+ gdbarch->int_bit = 4*TARGET_CHAR_BIT;
+ gdbarch->long_bit = 4*TARGET_CHAR_BIT;
+ gdbarch->long_long_bit = 2*TARGET_LONG_BIT;
+ gdbarch->float_bit = 4*TARGET_CHAR_BIT;
+ gdbarch->double_bit = 8*TARGET_CHAR_BIT;
+ gdbarch->long_double_bit = 2*TARGET_DOUBLE_BIT;
+ gdbarch->ptr_bit = TARGET_INT_BIT;
gdbarch->bfd_vma_bit = TARGET_ARCHITECTURE->bits_per_address;
+ gdbarch->read_pc = generic_target_read_pc;
+ gdbarch->write_pc = generic_target_write_pc;
+ gdbarch->read_fp = generic_target_read_fp;
+ gdbarch->write_fp = generic_target_write_fp;
+ gdbarch->read_sp = generic_target_read_sp;
+ gdbarch->write_sp = generic_target_write_sp;
gdbarch->num_regs = -1;
gdbarch->sp_regnum = -1;
gdbarch->fp_regnum = -1;
if (gdbarch->bfd_arch_info == NULL)
internal_error ("verify_gdbarch: bfd_arch_info unset");
/* Check those that need to be defined for the given multi-arch level. */
+ /* Skip verify of short_bit, invalid_p == 0 */
+ /* Skip verify of int_bit, invalid_p == 0 */
+ /* Skip verify of long_bit, invalid_p == 0 */
+ /* Skip verify of long_long_bit, invalid_p == 0 */
+ /* Skip verify of float_bit, invalid_p == 0 */
+ /* Skip verify of double_bit, invalid_p == 0 */
+ /* Skip verify of long_double_bit, invalid_p == 0 */
+ /* Skip verify of ptr_bit, invalid_p == 0 */
+ if (gdbarch->addr_bit == 0)
+ gdbarch->addr_bit = TARGET_PTR_BIT;
/* Skip verify of bfd_vma_bit, invalid_p == 0 */
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->ptr_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: ptr_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->short_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: short_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->int_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: int_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->long_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: long_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->long_long_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: long_long_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->float_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: float_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->double_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: double_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->long_double_bit == 0))
- internal_error ("gdbarch: verify_gdbarch: long_double_bit invalid");
/* Skip verify of ieee_float, invalid_p == 0 */
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->read_pc == 0))
- internal_error ("gdbarch: verify_gdbarch: read_pc invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->write_pc == 0))
- internal_error ("gdbarch: verify_gdbarch: write_pc invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->read_fp == 0))
- internal_error ("gdbarch: verify_gdbarch: read_fp invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->write_fp == 0))
- internal_error ("gdbarch: verify_gdbarch: write_fp invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->read_sp == 0))
- internal_error ("gdbarch: verify_gdbarch: read_sp invalid");
- if ((GDB_MULTI_ARCH >= 1)
- && (gdbarch->write_sp == 0))
- internal_error ("gdbarch: verify_gdbarch: write_sp invalid");
+ /* Skip verify of read_pc, invalid_p == 0 */
+ /* Skip verify of write_pc, invalid_p == 0 */
+ /* Skip verify of read_fp, invalid_p == 0 */
+ /* Skip verify of write_fp, invalid_p == 0 */
+ /* Skip verify of read_sp, invalid_p == 0 */
+ /* Skip verify of write_sp, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->num_regs == -1))
internal_error ("gdbarch: verify_gdbarch: num_regs invalid");
"gdbarch_dump: TARGET_BYTE_ORDER # %s\n",
XSTRING (TARGET_BYTE_ORDER));
#endif
-#ifdef TARGET_BFD_VMA_BIT
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_BFD_VMA_BIT # %s\n",
- XSTRING (TARGET_BFD_VMA_BIT));
-#endif
-#ifdef TARGET_PTR_BIT
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_PTR_BIT # %s\n",
- XSTRING (TARGET_PTR_BIT));
-#endif
#ifdef TARGET_SHORT_BIT
fprintf_unfiltered (file,
"gdbarch_dump: TARGET_SHORT_BIT # %s\n",
"gdbarch_dump: TARGET_LONG_DOUBLE_BIT # %s\n",
XSTRING (TARGET_LONG_DOUBLE_BIT));
#endif
+#ifdef TARGET_PTR_BIT
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_PTR_BIT # %s\n",
+ XSTRING (TARGET_PTR_BIT));
+#endif
+#ifdef TARGET_ADDR_BIT
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_ADDR_BIT # %s\n",
+ XSTRING (TARGET_ADDR_BIT));
+#endif
+#ifdef TARGET_BFD_VMA_BIT
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_BFD_VMA_BIT # %s\n",
+ XSTRING (TARGET_BFD_VMA_BIT));
+#endif
#ifdef IEEE_FLOAT
fprintf_unfiltered (file,
"gdbarch_dump: IEEE_FLOAT # %s\n",
"gdbarch_dump: TARGET_BYTE_ORDER = %ld\n",
(long) TARGET_BYTE_ORDER);
#endif
-#ifdef TARGET_BFD_VMA_BIT
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_BFD_VMA_BIT = %ld\n",
- (long) TARGET_BFD_VMA_BIT);
-#endif
-#ifdef TARGET_PTR_BIT
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_PTR_BIT = %ld\n",
- (long) TARGET_PTR_BIT);
-#endif
#ifdef TARGET_SHORT_BIT
fprintf_unfiltered (file,
"gdbarch_dump: TARGET_SHORT_BIT = %ld\n",
"gdbarch_dump: TARGET_LONG_DOUBLE_BIT = %ld\n",
(long) TARGET_LONG_DOUBLE_BIT);
#endif
+#ifdef TARGET_PTR_BIT
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_PTR_BIT = %ld\n",
+ (long) TARGET_PTR_BIT);
+#endif
+#ifdef TARGET_ADDR_BIT
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_ADDR_BIT = %ld\n",
+ (long) TARGET_ADDR_BIT);
+#endif
+#ifdef TARGET_BFD_VMA_BIT
+ fprintf_unfiltered (file,
+ "gdbarch_dump: TARGET_BFD_VMA_BIT = %ld\n",
+ (long) TARGET_BFD_VMA_BIT);
+#endif
#ifdef IEEE_FLOAT
fprintf_unfiltered (file,
"gdbarch_dump: IEEE_FLOAT = %ld\n",
return gdbarch->byte_order;
}
-int
-gdbarch_bfd_vma_bit (struct gdbarch *gdbarch)
-{
- /* Skip verify of bfd_vma_bit, invalid_p == 0 */
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_vma_bit called\n");
- return gdbarch->bfd_vma_bit;
-}
-
-void
-set_gdbarch_bfd_vma_bit (struct gdbarch *gdbarch,
- int bfd_vma_bit)
-{
- gdbarch->bfd_vma_bit = bfd_vma_bit;
-}
-
-int
-gdbarch_ptr_bit (struct gdbarch *gdbarch)
-{
- if (gdbarch->ptr_bit == 0)
- internal_error ("gdbarch: gdbarch_ptr_bit invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
- return gdbarch->ptr_bit;
-}
-
-void
-set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
- int ptr_bit)
-{
- gdbarch->ptr_bit = ptr_bit;
-}
-
int
gdbarch_short_bit (struct gdbarch *gdbarch)
{
- if (gdbarch->short_bit == 0)
- internal_error ("gdbarch: gdbarch_short_bit invalid");
+ /* Skip verify of short_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_short_bit called\n");
return gdbarch->short_bit;
int
gdbarch_int_bit (struct gdbarch *gdbarch)
{
- if (gdbarch->int_bit == 0)
- internal_error ("gdbarch: gdbarch_int_bit invalid");
+ /* Skip verify of int_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_int_bit called\n");
return gdbarch->int_bit;
int
gdbarch_long_bit (struct gdbarch *gdbarch)
{
- if (gdbarch->long_bit == 0)
- internal_error ("gdbarch: gdbarch_long_bit invalid");
+ /* Skip verify of long_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_long_bit called\n");
return gdbarch->long_bit;
int
gdbarch_long_long_bit (struct gdbarch *gdbarch)
{
- if (gdbarch->long_long_bit == 0)
- internal_error ("gdbarch: gdbarch_long_long_bit invalid");
+ /* Skip verify of long_long_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_long_long_bit called\n");
return gdbarch->long_long_bit;
int
gdbarch_float_bit (struct gdbarch *gdbarch)
{
- if (gdbarch->float_bit == 0)
- internal_error ("gdbarch: gdbarch_float_bit invalid");
+ /* Skip verify of float_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_float_bit called\n");
return gdbarch->float_bit;
int
gdbarch_double_bit (struct gdbarch *gdbarch)
{
- if (gdbarch->double_bit == 0)
- internal_error ("gdbarch: gdbarch_double_bit invalid");
+ /* Skip verify of double_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_double_bit called\n");
return gdbarch->double_bit;
int
gdbarch_long_double_bit (struct gdbarch *gdbarch)
{
- if (gdbarch->long_double_bit == 0)
- internal_error ("gdbarch: gdbarch_long_double_bit invalid");
+ /* Skip verify of long_double_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_long_double_bit called\n");
return gdbarch->long_double_bit;
gdbarch->long_double_bit = long_double_bit;
}
+int
+gdbarch_ptr_bit (struct gdbarch *gdbarch)
+{
+ /* Skip verify of ptr_bit, invalid_p == 0 */
+ if (gdbarch_debug >= 2)
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_ptr_bit called\n");
+ return gdbarch->ptr_bit;
+}
+
+void
+set_gdbarch_ptr_bit (struct gdbarch *gdbarch,
+ int ptr_bit)
+{
+ gdbarch->ptr_bit = ptr_bit;
+}
+
+int
+gdbarch_addr_bit (struct gdbarch *gdbarch)
+{
+ if (gdbarch->addr_bit == 0)
+ internal_error ("gdbarch: gdbarch_addr_bit invalid");
+ if (gdbarch_debug >= 2)
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_addr_bit called\n");
+ return gdbarch->addr_bit;
+}
+
+void
+set_gdbarch_addr_bit (struct gdbarch *gdbarch,
+ int addr_bit)
+{
+ gdbarch->addr_bit = addr_bit;
+}
+
+int
+gdbarch_bfd_vma_bit (struct gdbarch *gdbarch)
+{
+ /* Skip verify of bfd_vma_bit, invalid_p == 0 */
+ if (gdbarch_debug >= 2)
+ fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_vma_bit called\n");
+ return gdbarch->bfd_vma_bit;
+}
+
+void
+set_gdbarch_bfd_vma_bit (struct gdbarch *gdbarch,
+ int bfd_vma_bit)
+{
+ gdbarch->bfd_vma_bit = bfd_vma_bit;
+}
+
int
gdbarch_ieee_float (struct gdbarch *gdbarch)
{
-/* Keep a registrary of swaped data required by GDB modules. */
+/* Keep a registrary of swapped data required by GDB modules. */
struct gdbarch_swap
{
failed. */
int
-gdbarch_update (struct gdbarch_info info)
+gdbarch_update_p (struct gdbarch_info info)
{
struct gdbarch *new_gdbarch;
struct gdbarch_list **list;