OSDN Git Service

* gdbtypes.c (append_composite_type_field_raw): New.
authordrow <drow>
Mon, 1 Mar 2010 17:19:21 +0000 (17:19 +0000)
committerdrow <drow>
Mon, 1 Mar 2010 17:19:21 +0000 (17:19 +0000)
commit58d2d74f1c89b2e2b983e638d716d1648dd35d0d
tree03d11c96117a4c466630be1ed045de82d01044e0
parent6bddd37c7e3a5ea5a01c9367ec91feab299bb4bd
* gdbtypes.c (append_composite_type_field_raw): New.
(append_composite_type_field_aligned): Use the new function.
* gdbtypes.h (append_composite_type_field_raw): Declare.
* target-descriptions.c (struct tdesc_type_field): Add start and end.
(struct tdesc_type_flag): New type.
(struct tdesc_type): Add TDESC_TYPE_STRUCT and TDESC_TYPE_FLAGS to
kind.  Add size to u.u.  Add u.f for flags.
(tdesc_gdb_type): Handle TDESC_TYPE_STRUCT and TDESC_TYPE_FLAGS.
(tdesc_free_type): Likewise.
(tdesc_create_struct, tdesc_set_struct_size, tdesc_create_flags): New.
(tdesc_add_field): Handle TDESC_TYPE_STRUCT.
(tdesc_add_bitfield, tdesc_add_flag): New.
* target-descriptions.h (tdesc_create_struct, tdesc_set_struct_size)
(tdesc_create_flags, tdesc_add_bitfield, tdesc_add_flag): Declare.
* xml-tdesc.c (struct tdesc_parsing_data): Rename current_union to
current_type.  Add current_type_size and current_type_is_flags.
(tdesc_start_union): Clear the new fields.
(tdesc_start_struct, tdesc_start_flags): New.
(tdesc_start_field): Handle struct fields, including bitfields.
(field_attributes): Make type optional.  Add start and end.
(union_children): Rename to struct_union_children.
(union_attributes): Rename to struct_union_attributes.  Add optional
size.
(flags_attributes): New.
(feature_children): Add struct and flags.
* features/gdb-target.dtd: Add flags and struct to features.
Make field type optional.  Add field start and end.

doc/
* gdb.texinfo (Types): Describe <struct> and <flags>.

testsuite/
* gdb.xml/extra-regs.xml: Add struct1, struct2, and flags
types.  Add structreg, bitfields, and flags registers.
* gdb.xml/tdesc-regs.exp: Test structreg and bitfields
registers.
12 files changed:
gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/features/gdb-target.dtd
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/target-descriptions.c
gdb/target-descriptions.h
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.xml/extra-regs.xml
gdb/testsuite/gdb.xml/tdesc-regs.exp
gdb/xml-tdesc.c