diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-06-23 21:05:40 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-06-23 21:05:40 +0000 |
commit | 449a5da47c55d448f0fc820d3e76c2100f496ab6 (patch) | |
tree | 470409157a9e787f96cf8eca46d9174dac72e1bd | |
parent | 12f0bd746aae4e06c9db120d85e8c42fe6ad9791 (diff) | |
download | gdb-449a5da47c55d448f0fc820d3e76c2100f496ab6.zip gdb-449a5da47c55d448f0fc820d3e76c2100f496ab6.tar.gz gdb-449a5da47c55d448f0fc820d3e76c2100f496ab6.tar.bz2 |
2003-06-23 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (rs6000_register_virtual_type): Add explict cases
for 0 "int0" and 4 "int32" sized registers.
* gdbtypes.c (builtin_type_int0): Define.
(build_gdbtypes): Initialize builtin_type_int0.
* gdbtypes.h (builtin_type_int0): Declare.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 5 | ||||
-rw-r--r-- | gdb/gdbtypes.h | 5 | ||||
-rw-r--r-- | gdb/rs6000-tdep.c | 8 |
4 files changed, 23 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e473ab3..e7d32b2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2003-06-23 Andrew Cagney <cagney@redhat.com> + + * rs6000-tdep.c (rs6000_register_virtual_type): Add explict cases + for 0 "int0" and 4 "int32" sized registers. + * gdbtypes.c (builtin_type_int0): Define. + (build_gdbtypes): Initialize builtin_type_int0. + * gdbtypes.h (builtin_type_int0): Declare. + 2003-06-23 Stephane Carrez <stcarrez@nerim.fr> * m68hc11-tdep.c (m68hc11_gdbarch_init): Clear gdb_arch_char_signed diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 3889afc..4ce6cc7 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -60,6 +60,7 @@ struct type *builtin_type_long_double; struct type *builtin_type_complex; struct type *builtin_type_double_complex; struct type *builtin_type_string; +struct type *builtin_type_int0; struct type *builtin_type_int8; struct type *builtin_type_uint8; struct type *builtin_type_int16; @@ -3410,6 +3411,10 @@ build_gdbtypes (void) init_type (TYPE_CODE_STRING, TARGET_CHAR_BIT / TARGET_CHAR_BIT, 0, "string", (struct objfile *) NULL); + builtin_type_int0 = + init_type (TYPE_CODE_INT, 0 / 8, + 0, + "int0_t", (struct objfile *) NULL); builtin_type_int8 = init_type (TYPE_CODE_INT, 8 / 8, 0, diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 847e23a..e7d755a 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -956,7 +956,10 @@ extern struct type *builtin_type_CORE_ADDR; (cf MIPS). */ extern struct type *builtin_type_bfd_vma; -/* Explicit sizes - see C9X <intypes.h> for naming scheme */ +/* Explicit sizes - see C9X <intypes.h> for naming scheme. The "int0" + is for when an architecture needs to describe a register that has + no size. */ +extern struct type *builtin_type_int0; extern struct type *builtin_type_int8; extern struct type *builtin_type_uint8; extern struct type *builtin_type_int16; diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index e12a6be..d384d42 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -1894,6 +1894,10 @@ rs6000_register_virtual_type (int n) int size = regsize (reg, tdep->wordsize); switch (size) { + case 0: + return builtin_type_int0; + case 4: + return builtin_type_int32; case 8: if (tdep->ppc_ev0_regnum <= n && n <= tdep->ppc_ev31_regnum) return builtin_type_vec64; @@ -1904,8 +1908,8 @@ rs6000_register_virtual_type (int n) return builtin_type_vec128; break; default: - return builtin_type_int32; - break; + internal_error (__FILE__, __LINE__, "Register %d size %d unknown", + n, size); } } } |