Use visitor pattern for "maint print c-tdesc"
Target description can be modeled as a tree, the target description is the root node, features are children nodes, registers and types are grand-children nodes. So command "maint print c-tdesc" in effect traverse/visit each node, and print them in c. This can be implemented by visitor pattern, this is the first reason. Secondly, I want to this command prints c files in a different way for some specific xml files, but still print c files the same way for the rest of xml files. Third, I even want to print xml files from target descriptions, so that GDBserver can use it to reply GDB's query qXfer:features:read:target.xml. gdb: 2017-07-26 Yao Qi <yao.qi@linaro.org> * target-descriptions.c (tdesc_element_visitor): New class. (tdesc_element): New class. (tdesc_reg): Inherit from tdesc_element. (tdesc_reg::accept): New function. (tdesc_type): Inherit from tdesc_element. (tdesc_type::accept): New function. (tdesc_feature): Inherit from tdesc_element. (tdesc_feature::accept): New function. (target_desc): Inherit from tdesc_element. (target_desc::target_desc): New. (target_desc::~target_desc): New. (target_desc::accept): New. (allocate_target_description): Use new. (free_target_description): Use delete. (print_c_tdesc): New class. (maint_print_c_tdesc_cmd): Adjust. * features/aarch64.c: Re-generated. * features/arc-arcompact.c: Re-generated. * features/arc-v2.c: Re-generated. * features/arm/arm-with-iwmmxt.c: Re-generated. * features/arm/arm-with-m.c: Re-generated. * features/arm/arm-with-m-fpa-layout.c: Re-generated. * features/arm/arm-with-m-vfp-d16.c: Re-generated. * features/arm/arm-with-neon.c: Re-generated. * features/arm/arm-with-vfpv2.c: Re-generated. * features/arm/arm-with-vfpv3.c: Re-generated. * features/i386/amd64-avx-avx512.c: Re-generated. * features/i386/amd64-avx-avx512-linux.c: Re-generated. * features/i386/amd64-avx.c: Re-generated. * features/i386/amd64-avx-linux.c: Re-generated. * features/i386/amd64-avx-mpx-avx512-pku.c: Re-generated. * features/i386/amd64-avx-mpx-avx512-pku-linux.c: Re-generated. * features/i386/amd64-avx-mpx.c: Re-generated. * features/i386/amd64-avx-mpx-linux.c: Re-generated. * features/i386/amd64.c: Re-generated. * features/i386/amd64-linux.c: Re-generated. * features/i386/amd64-mpx.c: Re-generated. * features/i386/amd64-mpx-linux.c: Re-generated. * features/i386/i386-avx-avx512.c: Re-generated. * features/i386/i386-avx-avx512-linux.c: Re-generated. * features/i386/i386-avx.c: Re-generated. * features/i386/i386-avx-linux.c: Re-generated. * features/i386/i386-avx-mpx-avx512-pku.c: Re-generated. * features/i386/i386-avx-mpx-avx512-pku-linux.c: Re-generated. * features/i386/i386-avx-mpx.c: Re-generated. * features/i386/i386-avx-mpx-linux.c: Re-generated. * features/i386/i386.c: Re-generated. * features/i386/i386-linux.c: Re-generated. * features/i386/i386-mmx.c: Re-generated. * features/i386/i386-mmx-linux.c: Re-generated. * features/i386/i386-mpx.c: Re-generated. * features/i386/i386-mpx-linux.c: Re-generated. * features/i386/x32-avx-avx512.c: Re-generated. * features/i386/x32-avx-avx512-linux.c: Re-generated. * features/i386/x32-avx.c: Re-generated. * features/i386/x32-avx-linux.c: Re-generated. * features/i386/x32.c: Re-generated. * features/i386/x32-linux.c: Re-generated. * features/microblaze.c: Re-generated. * features/microblaze-with-stack-protect.c: Re-generated. * features/mips64-dsp-linux.c: Re-generated. * features/mips64-linux.c: Re-generated. * features/mips-dsp-linux.c: Re-generated. * features/mips-linux.c: Re-generated. * features/nds32.c: Re-generated. * features/nios2.c: Re-generated. * features/nios2-linux.c: Re-generated. * features/rs6000/powerpc-32.c: Re-generated. * features/rs6000/powerpc-32l.c: Re-generated. * features/rs6000/powerpc-403.c: Re-generated. * features/rs6000/powerpc-403gc.c : Re-generated. * features/rs6000/powerpc-405.c: Re-generated. * features/rs6000/powerpc-505.c: Re-generated. * features/rs6000/powerpc-601.c: Re-generated. * features/rs6000/powerpc-602.c: Re-generated. * features/rs6000/powerpc-603.c: Re-generated. * features/rs6000/powerpc-604.c: Re-generated. * features/rs6000/powerpc-64.c: Re-generated. * features/rs6000/powerpc-64l.c: Re-generated. * features/rs6000/powerpc-7400.c: Re-generated. * features/rs6000/powerpc-750.c: Re-generated. * features/rs6000/powerpc-860.c: Re-generated. * features/rs6000/powerpc-altivec32.c: Re-generated. * features/rs6000/powerpc-altivec32l.c: Re-generated. * features/rs6000/powerpc-altivec64.c: Re-generated. * features/rs6000/powerpc-altivec64l.c: Re-generated. * features/rs6000/powerpc-cell32l.c: Re-generated. * features/rs6000/powerpc-cell64l.c: Re-generated. * features/rs6000/powerpc-e500.c: Re-generated. * features/rs6000/powerpc-e500l.c: Re-generated. * features/rs6000/powerpc-isa205-32l.c: Re-generated. * features/rs6000/powerpc-isa205-64l.c: Re-generated. * features/rs6000/powerpc-isa205-altivec32l.c: Re-generated. * features/rs6000/powerpc-isa205-altivec64l.c: Re-generated. * features/rs6000/powerpc-isa205-vsx32l.c: Re-generated. * features/rs6000/powerpc-isa205-vsx64l.c: Re-generated. * features/rs6000/powerpc-vsx32.c: Re-generated. * features/rs6000/powerpc-vsx32l.c: Re-generated. * features/rs6000/powerpc-vsx64.c: Re-generated. * features/rs6000/powerpc-vsx64l.c: Re-generated. * features/rs6000/rs6000.c: Re-generated. * features/s390-linux32.c: Re-generated. * features/s390-linux32v1.c: Re-generated. * features/s390-linux32v2.c: Re-generated. * features/s390-linux64.c: Re-generated. * features/s390-linux64v1.c: Re-generated. * features/s390-linux64v2.c: Re-generated. * features/s390-te-linux64.c: Re-generated. * features/s390-tevx-linux64.c: Re-generated. * features/s390-vx-linux64.c: Re-generated. * features/s390x-linux64.c: Re-generated. * features/s390x-linux64v1.c: Re-generated. * features/s390x-linux64v2.c: Re-generated. * features/s390x-te-linux64.c: Re-generated. * features/s390x-tevx-linux64.c: Re-generated. * features/s390x-vx-linux64.c: Re-generated. * features/sparc/sparc32-solaris.c: Re-generated. * features/sparc/sparc64-solaris.c: Re-generated. * features/tic6x-c62x.c: Re-generated. * features/tic6x-c62x-linux.c: Re-generated. * features/tic6x-c64x.c: Re-generated. * features/tic6x-c64x-linux.c: Re-generated. * features/tic6x-c64xp.c: Re-generated. * features/tic6x-c64xp-linux.c: Re-generated.
This commit is contained in:
parent
35b4818d03
commit
6eb1e6a8c1
128
gdb/ChangeLog
128
gdb/ChangeLog
@ -1,3 +1,131 @@
|
||||
2017-07-26 Yao Qi <yao.qi@linaro.org>
|
||||
|
||||
* target-descriptions.c (tdesc_element_visitor): New class.
|
||||
(tdesc_element): New class.
|
||||
(tdesc_reg): Inherit from tdesc_element.
|
||||
(tdesc_reg::accept): New function.
|
||||
(tdesc_type): Inherit from tdesc_element.
|
||||
(tdesc_type::accept): New function.
|
||||
(tdesc_feature): Inherit from tdesc_element.
|
||||
(tdesc_feature::accept): New function.
|
||||
(target_desc): Inherit from tdesc_element.
|
||||
(target_desc::target_desc): New.
|
||||
(target_desc::~target_desc): New.
|
||||
(target_desc::accept): New.
|
||||
(allocate_target_description): Use new.
|
||||
(free_target_description): Use delete.
|
||||
(print_c_tdesc): New class.
|
||||
(maint_print_c_tdesc_cmd): Adjust.
|
||||
|
||||
* features/aarch64.c: Re-generated.
|
||||
* features/arc-arcompact.c: Re-generated.
|
||||
* features/arc-v2.c: Re-generated.
|
||||
* features/arm/arm-with-iwmmxt.c: Re-generated.
|
||||
* features/arm/arm-with-m.c: Re-generated.
|
||||
* features/arm/arm-with-m-fpa-layout.c: Re-generated.
|
||||
* features/arm/arm-with-m-vfp-d16.c: Re-generated.
|
||||
* features/arm/arm-with-neon.c: Re-generated.
|
||||
* features/arm/arm-with-vfpv2.c: Re-generated.
|
||||
* features/arm/arm-with-vfpv3.c: Re-generated.
|
||||
* features/i386/amd64-avx-avx512.c: Re-generated.
|
||||
* features/i386/amd64-avx-avx512-linux.c: Re-generated.
|
||||
* features/i386/amd64-avx.c: Re-generated.
|
||||
* features/i386/amd64-avx-linux.c: Re-generated.
|
||||
* features/i386/amd64-avx-mpx-avx512-pku.c: Re-generated.
|
||||
* features/i386/amd64-avx-mpx-avx512-pku-linux.c: Re-generated.
|
||||
* features/i386/amd64-avx-mpx.c: Re-generated.
|
||||
* features/i386/amd64-avx-mpx-linux.c: Re-generated.
|
||||
* features/i386/amd64.c: Re-generated.
|
||||
* features/i386/amd64-linux.c: Re-generated.
|
||||
* features/i386/amd64-mpx.c: Re-generated.
|
||||
* features/i386/amd64-mpx-linux.c: Re-generated.
|
||||
* features/i386/i386-avx-avx512.c: Re-generated.
|
||||
* features/i386/i386-avx-avx512-linux.c: Re-generated.
|
||||
* features/i386/i386-avx.c: Re-generated.
|
||||
* features/i386/i386-avx-linux.c: Re-generated.
|
||||
* features/i386/i386-avx-mpx-avx512-pku.c: Re-generated.
|
||||
* features/i386/i386-avx-mpx-avx512-pku-linux.c: Re-generated.
|
||||
* features/i386/i386-avx-mpx.c: Re-generated.
|
||||
* features/i386/i386-avx-mpx-linux.c: Re-generated.
|
||||
* features/i386/i386.c: Re-generated.
|
||||
* features/i386/i386-linux.c: Re-generated.
|
||||
* features/i386/i386-mmx.c: Re-generated.
|
||||
* features/i386/i386-mmx-linux.c: Re-generated.
|
||||
* features/i386/i386-mpx.c: Re-generated.
|
||||
* features/i386/i386-mpx-linux.c: Re-generated.
|
||||
* features/i386/x32-avx-avx512.c: Re-generated.
|
||||
* features/i386/x32-avx-avx512-linux.c: Re-generated.
|
||||
* features/i386/x32-avx.c: Re-generated.
|
||||
* features/i386/x32-avx-linux.c: Re-generated.
|
||||
* features/i386/x32.c: Re-generated.
|
||||
* features/i386/x32-linux.c: Re-generated.
|
||||
* features/microblaze.c: Re-generated.
|
||||
* features/microblaze-with-stack-protect.c: Re-generated.
|
||||
* features/mips64-dsp-linux.c: Re-generated.
|
||||
* features/mips64-linux.c: Re-generated.
|
||||
* features/mips-dsp-linux.c: Re-generated.
|
||||
* features/mips-linux.c: Re-generated.
|
||||
* features/nds32.c: Re-generated.
|
||||
* features/nios2.c: Re-generated.
|
||||
* features/nios2-linux.c: Re-generated.
|
||||
* features/rs6000/powerpc-32.c: Re-generated.
|
||||
* features/rs6000/powerpc-32l.c: Re-generated.
|
||||
* features/rs6000/powerpc-403.c: Re-generated.
|
||||
* features/rs6000/powerpc-403gc.c : Re-generated.
|
||||
* features/rs6000/powerpc-405.c: Re-generated.
|
||||
* features/rs6000/powerpc-505.c: Re-generated.
|
||||
* features/rs6000/powerpc-601.c: Re-generated.
|
||||
* features/rs6000/powerpc-602.c: Re-generated.
|
||||
* features/rs6000/powerpc-603.c: Re-generated.
|
||||
* features/rs6000/powerpc-604.c: Re-generated.
|
||||
* features/rs6000/powerpc-64.c: Re-generated.
|
||||
* features/rs6000/powerpc-64l.c: Re-generated.
|
||||
* features/rs6000/powerpc-7400.c: Re-generated.
|
||||
* features/rs6000/powerpc-750.c: Re-generated.
|
||||
* features/rs6000/powerpc-860.c: Re-generated.
|
||||
* features/rs6000/powerpc-altivec32.c: Re-generated.
|
||||
* features/rs6000/powerpc-altivec32l.c: Re-generated.
|
||||
* features/rs6000/powerpc-altivec64.c: Re-generated.
|
||||
* features/rs6000/powerpc-altivec64l.c: Re-generated.
|
||||
* features/rs6000/powerpc-cell32l.c: Re-generated.
|
||||
* features/rs6000/powerpc-cell64l.c: Re-generated.
|
||||
* features/rs6000/powerpc-e500.c: Re-generated.
|
||||
* features/rs6000/powerpc-e500l.c: Re-generated.
|
||||
* features/rs6000/powerpc-isa205-32l.c: Re-generated.
|
||||
* features/rs6000/powerpc-isa205-64l.c: Re-generated.
|
||||
* features/rs6000/powerpc-isa205-altivec32l.c: Re-generated.
|
||||
* features/rs6000/powerpc-isa205-altivec64l.c: Re-generated.
|
||||
* features/rs6000/powerpc-isa205-vsx32l.c: Re-generated.
|
||||
* features/rs6000/powerpc-isa205-vsx64l.c: Re-generated.
|
||||
* features/rs6000/powerpc-vsx32.c: Re-generated.
|
||||
* features/rs6000/powerpc-vsx32l.c: Re-generated.
|
||||
* features/rs6000/powerpc-vsx64.c: Re-generated.
|
||||
* features/rs6000/powerpc-vsx64l.c: Re-generated.
|
||||
* features/rs6000/rs6000.c: Re-generated.
|
||||
* features/s390-linux32.c: Re-generated.
|
||||
* features/s390-linux32v1.c: Re-generated.
|
||||
* features/s390-linux32v2.c: Re-generated.
|
||||
* features/s390-linux64.c: Re-generated.
|
||||
* features/s390-linux64v1.c: Re-generated.
|
||||
* features/s390-linux64v2.c: Re-generated.
|
||||
* features/s390-te-linux64.c: Re-generated.
|
||||
* features/s390-tevx-linux64.c: Re-generated.
|
||||
* features/s390-vx-linux64.c: Re-generated.
|
||||
* features/s390x-linux64.c: Re-generated.
|
||||
* features/s390x-linux64v1.c: Re-generated.
|
||||
* features/s390x-linux64v2.c: Re-generated.
|
||||
* features/s390x-te-linux64.c: Re-generated.
|
||||
* features/s390x-tevx-linux64.c: Re-generated.
|
||||
* features/s390x-vx-linux64.c: Re-generated.
|
||||
* features/sparc/sparc32-solaris.c: Re-generated.
|
||||
* features/sparc/sparc64-solaris.c: Re-generated.
|
||||
* features/tic6x-c62x.c: Re-generated.
|
||||
* features/tic6x-c62x-linux.c: Re-generated.
|
||||
* features/tic6x-c64x.c: Re-generated.
|
||||
* features/tic6x-c64x-linux.c: Re-generated.
|
||||
* features/tic6x-c64xp.c: Re-generated.
|
||||
* features/tic6x-c64xp-linux.c: Re-generated.
|
||||
|
||||
2017-07-26 Yao Qi <yao.qi@linaro.org>
|
||||
|
||||
* i386-linux-tdep.c (i386_linux_read_description): New function.
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_aarch64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("aarch64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "cpsr_flags", 4);
|
||||
tdesc_add_flag (type, 0, "SP");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_arc_arcompact (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("ARC700"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.arcompact");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
@ -53,6 +51,8 @@ initialize_tdesc_arc_arcompact (void)
|
||||
tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "status32_type", 4);
|
||||
tdesc_add_flag (type, 0, "H");
|
||||
tdesc_add_bitfield (type, "E", 1, 2);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_arc_v2 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("ARCv2"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.v2");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
@ -53,6 +51,8 @@ initialize_tdesc_arc_v2 (void)
|
||||
tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "status32_type", 4);
|
||||
tdesc_add_flag (type, 0, "H");
|
||||
tdesc_add_bitfield (type, "E", 1, 4);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_arm_with_iwmmxt (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("iwmmxt"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -36,6 +34,7 @@ initialize_tdesc_arm_with_iwmmxt (void)
|
||||
tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.xscale.iwmmxt");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "uint8");
|
||||
tdesc_create_vector (feature, "iwmmxt_v8u8", field_type, 8);
|
||||
|
||||
@ -45,6 +44,7 @@ initialize_tdesc_arm_with_iwmmxt (void)
|
||||
field_type = tdesc_named_type (feature, "uint32");
|
||||
tdesc_create_vector (feature, "iwmmxt_v2u32", field_type, 2);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "iwmmxt_vec64i");
|
||||
field_type = tdesc_named_type (feature, "iwmmxt_v8u8");
|
||||
tdesc_add_field (type, "u8", field_type);
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_arm_with_m_fpa_layout (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("arm"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_arm_with_m_vfp_d16 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("arm"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_arm_with_m (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("arm"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_arm_with_neon (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("arm"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_arm_with_vfpv2 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("arm"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_arm_with_vfpv3 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("arm"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_amd64_avx_avx512_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_amd64_avx_avx512 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_amd64_avx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_amd64_avx_mpx_avx512_pku_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_amd64_avx_mpx_avx512_pku (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_amd64_avx_mpx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_amd64_avx_mpx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_amd64_avx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_amd64_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_amd64_mpx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_amd64_mpx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_amd64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_i386_avx_avx512_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_i386_avx_avx512 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_i386_avx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_i386_avx_mpx_avx512_pku_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_i386_avx_mpx_avx512_pku (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_i386_avx_mpx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_i386_avx_mpx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_i386_avx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_i386_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_i386_mmx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_i386_mmx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_i386_mpx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_i386_mpx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_i386 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_x32_avx_avx512_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_x32_avx_avx512 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_x32_avx_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_x32_avx (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,15 +10,15 @@ static void
|
||||
initialize_tdesc_x32_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,13 +10,13 @@ static void
|
||||
initialize_tdesc_x32 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_flags (feature, "i386_eflags", 4);
|
||||
tdesc_add_flag (type, 0, "CF");
|
||||
tdesc_add_flag (type, 1, "");
|
||||
|
@ -10,12 +10,12 @@ static void
|
||||
initialize_tdesc_mips_dsp_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
|
@ -10,12 +10,12 @@ static void
|
||||
initialize_tdesc_mips_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_mips64_dsp_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "int");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_mips64_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("mips"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "int");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_nds32 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("n1h"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.nds32.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
|
@ -10,12 +10,12 @@ static void
|
||||
initialize_tdesc_nios2_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("nios2"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.nios2.cpu");
|
||||
tdesc_create_reg (feature, "zero", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "at", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_nios2 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("nios2"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.nios2.cpu");
|
||||
tdesc_create_reg (feature, "zero", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "at", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_32 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_32l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_64l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
|
@ -11,8 +11,6 @@ initialize_tdesc_powerpc_7400 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
@ -140,6 +138,7 @@ initialize_tdesc_powerpc_7400 (void)
|
||||
tdesc_create_reg (feature, "ear", 118, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -152,6 +151,7 @@ initialize_tdesc_powerpc_7400 (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_altivec32 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -92,6 +90,7 @@ initialize_tdesc_powerpc_altivec32 (void)
|
||||
tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -104,6 +103,7 @@ initialize_tdesc_powerpc_altivec32 (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_altivec32l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_altivec32l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_altivec32l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_altivec64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
@ -92,6 +90,7 @@ initialize_tdesc_powerpc_altivec64 (void)
|
||||
tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -104,6 +103,7 @@ initialize_tdesc_powerpc_altivec64 (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_altivec64l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_altivec64l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_altivec64l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,14 +10,12 @@ static void
|
||||
initialize_tdesc_powerpc_cell32l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -98,6 +96,7 @@ initialize_tdesc_powerpc_cell32l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -110,6 +109,7 @@ initialize_tdesc_powerpc_cell32l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,14 +10,12 @@ static void
|
||||
initialize_tdesc_powerpc_cell64l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
@ -98,6 +96,7 @@ initialize_tdesc_powerpc_cell64l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -110,6 +109,7 @@ initialize_tdesc_powerpc_cell64l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_e500 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:e500"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_e500l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:e500"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_isa205_32l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_isa205_64l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_isa205_altivec32l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_isa205_altivec32l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_isa205_altivec32l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_isa205_altivec64l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_isa205_altivec64l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_isa205_altivec64l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_isa205_vsx32l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_isa205_vsx32l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_isa205_vsx32l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_isa205_vsx64l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_isa205_vsx64l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_isa205_vsx64l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_vsx32 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -92,6 +90,7 @@ initialize_tdesc_powerpc_vsx32 (void)
|
||||
tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -104,6 +103,7 @@ initialize_tdesc_powerpc_vsx32 (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_vsx32l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_vsx32l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_vsx32l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_vsx64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
@ -92,6 +90,7 @@ initialize_tdesc_powerpc_vsx64 (void)
|
||||
tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -104,6 +103,7 @@ initialize_tdesc_powerpc_vsx64 (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_powerpc_vsx64l (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
|
||||
@ -96,6 +94,7 @@ initialize_tdesc_powerpc_vsx64l (void)
|
||||
tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -108,6 +107,7 @@ initialize_tdesc_powerpc_vsx64l (void)
|
||||
field_type = tdesc_named_type (feature, "int8");
|
||||
tdesc_create_vector (feature, "v16i8", field_type, 16);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "uint128");
|
||||
tdesc_add_field (type, "uint128", field_type);
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_rs6000 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("rs6000:6000"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
|
||||
tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
|
||||
tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390_linux32 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390_linux32v1 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390_linux32v2 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390_linux64v1 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390_linux64v2 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390_te_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_s390_tevx_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
@ -117,6 +115,7 @@ initialize_tdesc_s390_tevx_linux64 (void)
|
||||
tdesc_create_reg (feature, "tr15", 89, 1, "tdb", 64, "uint64");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -135,6 +134,7 @@ initialize_tdesc_s390_tevx_linux64 (void)
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_s390_vx_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
|
||||
@ -95,6 +93,7 @@ initialize_tdesc_s390_vx_linux64 (void)
|
||||
tdesc_create_reg (feature, "system_call", 69, 1, "system", 32, "uint32");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -113,6 +112,7 @@ initialize_tdesc_s390_vx_linux64 (void)
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390x_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390x_linux64v1 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390x_linux64v2 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_s390x_te_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_s390x_tevx_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
|
||||
@ -101,6 +99,7 @@ initialize_tdesc_s390x_tevx_linux64 (void)
|
||||
tdesc_create_reg (feature, "tr15", 73, 1, "tdb", 64, "uint64");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -119,6 +118,7 @@ initialize_tdesc_s390x_tevx_linux64 (void)
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
|
@ -10,12 +10,10 @@ static void
|
||||
initialize_tdesc_s390x_vx_linux64 (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_type *field_type;
|
||||
struct tdesc_type *type;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
|
||||
tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
|
||||
tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
|
||||
@ -79,6 +77,7 @@ initialize_tdesc_s390x_vx_linux64 (void)
|
||||
tdesc_create_reg (feature, "system_call", 53, 1, "system", 32, "uint32");
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
|
||||
struct tdesc_type *field_type;
|
||||
field_type = tdesc_named_type (feature, "ieee_single");
|
||||
tdesc_create_vector (feature, "v4f", field_type, 4);
|
||||
|
||||
@ -97,6 +96,7 @@ initialize_tdesc_s390x_vx_linux64 (void)
|
||||
field_type = tdesc_named_type (feature, "int64");
|
||||
tdesc_create_vector (feature, "v2i64", field_type, 2);
|
||||
|
||||
struct tdesc_type *type;
|
||||
type = tdesc_create_union (feature, "vec128");
|
||||
field_type = tdesc_named_type (feature, "v4f");
|
||||
tdesc_add_field (type, "v4_float", field_type);
|
||||
|
@ -10,12 +10,12 @@ static void
|
||||
initialize_tdesc_tic6x_c62x_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
|
||||
tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_tic6x_c62x (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
|
||||
tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,12 +10,12 @@ static void
|
||||
initialize_tdesc_tic6x_c64x_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
|
||||
tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_tic6x_c64x (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
|
||||
tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,12 +10,12 @@ static void
|
||||
initialize_tdesc_tic6x_c64xp_linux (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
|
||||
|
||||
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
|
||||
tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -10,10 +10,10 @@ static void
|
||||
initialize_tdesc_tic6x_c64xp (void)
|
||||
{
|
||||
struct target_desc *result = allocate_target_description ();
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
|
||||
tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
|
||||
tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
|
||||
|
@ -35,6 +35,25 @@
|
||||
#include "hashtab.h"
|
||||
#include "inferior.h"
|
||||
|
||||
/* The interface to visit different elements of target description. */
|
||||
|
||||
class tdesc_element_visitor
|
||||
{
|
||||
public:
|
||||
virtual void visit_pre (const target_desc *e) = 0;
|
||||
virtual void visit_post (const target_desc *e) = 0;
|
||||
|
||||
virtual void visit (const tdesc_feature *e) = 0;
|
||||
virtual void visit (const tdesc_type *e) = 0;
|
||||
virtual void visit (const tdesc_reg *e) = 0;
|
||||
};
|
||||
|
||||
class tdesc_element
|
||||
{
|
||||
public:
|
||||
virtual void accept (tdesc_element_visitor &v) const = 0;
|
||||
};
|
||||
|
||||
/* Types. */
|
||||
|
||||
typedef struct property
|
||||
@ -46,7 +65,7 @@ DEF_VEC_O(property_s);
|
||||
|
||||
/* An individual register from a target description. */
|
||||
|
||||
typedef struct tdesc_reg
|
||||
typedef struct tdesc_reg : tdesc_element
|
||||
{
|
||||
tdesc_reg (struct tdesc_feature *feature, const char *name_,
|
||||
int regnum, int save_restore_, const char *group_,
|
||||
@ -62,7 +81,7 @@ typedef struct tdesc_reg
|
||||
tdesc_type = tdesc_named_type (feature, type);
|
||||
}
|
||||
|
||||
~tdesc_reg ()
|
||||
virtual ~tdesc_reg ()
|
||||
{
|
||||
xfree (name);
|
||||
xfree (type);
|
||||
@ -106,6 +125,12 @@ typedef struct tdesc_reg
|
||||
|
||||
/* The target-described type corresponding to TYPE, if found. */
|
||||
struct tdesc_type *tdesc_type;
|
||||
|
||||
void accept (tdesc_element_visitor &v) const override
|
||||
{
|
||||
v.visit (this);
|
||||
}
|
||||
|
||||
} *tdesc_reg_p;
|
||||
DEF_VEC_P(tdesc_reg_p);
|
||||
|
||||
@ -151,7 +176,7 @@ enum tdesc_type_kind
|
||||
TDESC_TYPE_ENUM
|
||||
};
|
||||
|
||||
typedef struct tdesc_type
|
||||
typedef struct tdesc_type : tdesc_element
|
||||
{
|
||||
tdesc_type (const char *name_, enum tdesc_type_kind kind_)
|
||||
: name (xstrdup (name_)), kind (kind_)
|
||||
@ -159,7 +184,7 @@ typedef struct tdesc_type
|
||||
memset (&u, 0, sizeof (u));
|
||||
}
|
||||
|
||||
~tdesc_type ()
|
||||
virtual ~tdesc_type ()
|
||||
{
|
||||
switch (kind)
|
||||
{
|
||||
@ -214,19 +239,25 @@ typedef struct tdesc_type
|
||||
int size;
|
||||
} u;
|
||||
} u;
|
||||
|
||||
void accept (tdesc_element_visitor &v) const override
|
||||
{
|
||||
v.visit (this);
|
||||
}
|
||||
|
||||
} *tdesc_type_p;
|
||||
DEF_VEC_P(tdesc_type_p);
|
||||
|
||||
/* A feature from a target description. Each feature is a collection
|
||||
of other elements, e.g. registers and types. */
|
||||
|
||||
typedef struct tdesc_feature
|
||||
typedef struct tdesc_feature : tdesc_element
|
||||
{
|
||||
tdesc_feature (const char *name_)
|
||||
: name (xstrdup (name_))
|
||||
{}
|
||||
|
||||
~tdesc_feature ()
|
||||
virtual ~tdesc_feature ()
|
||||
{
|
||||
struct tdesc_reg *reg;
|
||||
struct tdesc_type *type;
|
||||
@ -256,6 +287,27 @@ typedef struct tdesc_feature
|
||||
|
||||
/* The types associated with this feature. */
|
||||
VEC(tdesc_type_p) *types = NULL;
|
||||
|
||||
void accept (tdesc_element_visitor &v) const override
|
||||
{
|
||||
v.visit (this);
|
||||
|
||||
struct tdesc_type *type;
|
||||
|
||||
for (int ix = 0;
|
||||
VEC_iterate (tdesc_type_p, types, ix, type);
|
||||
ix++)
|
||||
type->accept (v);
|
||||
|
||||
struct tdesc_reg *reg;
|
||||
|
||||
for (int ix = 0;
|
||||
VEC_iterate (tdesc_reg_p, registers, ix, reg);
|
||||
ix++)
|
||||
reg->accept (v);
|
||||
|
||||
}
|
||||
|
||||
} *tdesc_feature_p;
|
||||
DEF_VEC_P(tdesc_feature_p);
|
||||
|
||||
@ -265,12 +317,12 @@ DEF_VEC_P(arch_p);
|
||||
|
||||
/* A target description. */
|
||||
|
||||
struct target_desc
|
||||
struct target_desc : tdesc_element
|
||||
{
|
||||
target_desc ()
|
||||
{}
|
||||
|
||||
~target_desc ()
|
||||
virtual ~target_desc ()
|
||||
{
|
||||
struct tdesc_feature *feature;
|
||||
struct property *prop;
|
||||
@ -312,6 +364,20 @@ struct target_desc
|
||||
|
||||
/* The features associated with this target. */
|
||||
VEC(tdesc_feature_p) *features = NULL;
|
||||
|
||||
void accept (tdesc_element_visitor &v) const override
|
||||
{
|
||||
v.visit_pre (this);
|
||||
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
for (int ix = 0;
|
||||
VEC_iterate (tdesc_feature_p, features, ix, feature);
|
||||
ix++)
|
||||
feature->accept (v);
|
||||
|
||||
v.visit_post (this);
|
||||
}
|
||||
};
|
||||
|
||||
/* Per-architecture data associated with a target description. The
|
||||
@ -1714,20 +1780,270 @@ unset_tdesc_filename_cmd (char *args, int from_tty)
|
||||
target_find_description ();
|
||||
}
|
||||
|
||||
/* Print target description in C. */
|
||||
|
||||
class print_c_tdesc : public tdesc_element_visitor
|
||||
{
|
||||
public:
|
||||
print_c_tdesc (std::string &filename_after_features)
|
||||
: m_filename_after_features (filename_after_features)
|
||||
{
|
||||
const char *inp;
|
||||
char *outp;
|
||||
const char *filename = lbasename (m_filename_after_features.c_str ());
|
||||
|
||||
m_function = (char *) xmalloc (strlen (filename) + 1);
|
||||
for (inp = filename, outp = m_function; *inp != '\0'; inp++)
|
||||
if (*inp == '.')
|
||||
break;
|
||||
else if (*inp == '-')
|
||||
*outp++ = '_';
|
||||
else
|
||||
*outp++ = *inp;
|
||||
*outp = '\0';
|
||||
|
||||
/* Standard boilerplate. */
|
||||
printf_unfiltered ("/* THIS FILE IS GENERATED. "
|
||||
"-*- buffer-read-only: t -*- vi"
|
||||
":set ro:\n");
|
||||
printf_unfiltered (" Original: %s */\n\n", filename);
|
||||
}
|
||||
|
||||
~print_c_tdesc ()
|
||||
{
|
||||
xfree (m_function);
|
||||
}
|
||||
|
||||
void visit_pre (const target_desc *e) override
|
||||
{
|
||||
printf_unfiltered ("#include \"defs.h\"\n");
|
||||
printf_unfiltered ("#include \"osabi.h\"\n");
|
||||
printf_unfiltered ("#include \"target-descriptions.h\"\n");
|
||||
printf_unfiltered ("\n");
|
||||
|
||||
printf_unfiltered ("struct target_desc *tdesc_%s;\n", m_function);
|
||||
printf_unfiltered ("static void\n");
|
||||
printf_unfiltered ("initialize_tdesc_%s (void)\n", m_function);
|
||||
printf_unfiltered ("{\n");
|
||||
printf_unfiltered
|
||||
(" struct target_desc *result = allocate_target_description ();\n");
|
||||
|
||||
if (tdesc_architecture (e) != NULL)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" set_tdesc_architecture (result, bfd_scan_arch (\"%s\"));\n",
|
||||
tdesc_architecture (e)->printable_name);
|
||||
printf_unfiltered ("\n");
|
||||
}
|
||||
if (tdesc_osabi (e) > GDB_OSABI_UNKNOWN
|
||||
&& tdesc_osabi (e) < GDB_OSABI_INVALID)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" set_tdesc_osabi (result, osabi_from_tdesc_string (\"%s\"));\n",
|
||||
gdbarch_osabi_name (tdesc_osabi (e)));
|
||||
printf_unfiltered ("\n");
|
||||
}
|
||||
|
||||
int ix;
|
||||
const struct bfd_arch_info *compatible;
|
||||
struct property *prop;
|
||||
|
||||
for (ix = 0; VEC_iterate (arch_p, e->compatible, ix, compatible);
|
||||
ix++)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" tdesc_add_compatible (result, bfd_scan_arch (\"%s\"));\n",
|
||||
compatible->printable_name);
|
||||
}
|
||||
|
||||
if (ix)
|
||||
printf_unfiltered ("\n");
|
||||
|
||||
for (ix = 0; VEC_iterate (property_s, e->properties, ix, prop);
|
||||
ix++)
|
||||
{
|
||||
printf_unfiltered (" set_tdesc_property (result, \"%s\", \"%s\");\n",
|
||||
prop->key, prop->value);
|
||||
}
|
||||
printf_unfiltered (" struct tdesc_feature *feature;\n");
|
||||
}
|
||||
|
||||
void visit (const tdesc_feature *e) override
|
||||
{
|
||||
printf_unfiltered ("\n feature = tdesc_create_feature (result, \"%s\");\n",
|
||||
e->name);
|
||||
}
|
||||
|
||||
void visit_post (const target_desc *e) override
|
||||
{
|
||||
printf_unfiltered ("\n tdesc_%s = result;\n", m_function);
|
||||
printf_unfiltered ("}\n");
|
||||
}
|
||||
|
||||
void visit (const tdesc_type *type) override
|
||||
{
|
||||
struct tdesc_type_field *f;
|
||||
|
||||
/* Now we do some "filtering" in order to know which variables to
|
||||
declare. This is needed because otherwise we would declare unused
|
||||
variables `field_type' and `type'. */
|
||||
if (!m_printed_field_type)
|
||||
{
|
||||
printf_unfiltered (" struct tdesc_type *field_type;\n");
|
||||
m_printed_field_type = true;
|
||||
}
|
||||
|
||||
if ((type->kind == TDESC_TYPE_UNION
|
||||
|| type->kind == TDESC_TYPE_STRUCT
|
||||
|| type->kind == TDESC_TYPE_FLAGS
|
||||
|| type->kind == TDESC_TYPE_ENUM)
|
||||
&& VEC_length (tdesc_type_field, type->u.u.fields) > 0
|
||||
&& !m_printed_type)
|
||||
{
|
||||
printf_unfiltered (" struct tdesc_type *type;\n");
|
||||
m_printed_type = true;
|
||||
}
|
||||
|
||||
switch (type->kind)
|
||||
{
|
||||
case TDESC_TYPE_VECTOR:
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature, \"%s\");\n",
|
||||
type->u.v.type->name);
|
||||
printf_unfiltered
|
||||
(" tdesc_create_vector (feature, \"%s\", field_type, %d);\n",
|
||||
type->name, type->u.v.count);
|
||||
break;
|
||||
case TDESC_TYPE_STRUCT:
|
||||
case TDESC_TYPE_FLAGS:
|
||||
if (type->kind == TDESC_TYPE_STRUCT)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_struct (feature, \"%s\");\n",
|
||||
type->name);
|
||||
if (type->u.u.size != 0)
|
||||
printf_unfiltered
|
||||
(" tdesc_set_struct_size (type, %d);\n",
|
||||
type->u.u.size);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_flags (feature, \"%s\", %d);\n",
|
||||
type->name, type->u.u.size);
|
||||
}
|
||||
for (int ix3 = 0;
|
||||
VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
|
||||
ix3++)
|
||||
{
|
||||
const char *type_name;
|
||||
|
||||
gdb_assert (f->type != NULL);
|
||||
type_name = f->type->name;
|
||||
|
||||
/* To minimize changes to generated files, don't emit type
|
||||
info for fields that have defaulted types. */
|
||||
if (f->start != -1)
|
||||
{
|
||||
gdb_assert (f->end != -1);
|
||||
if (f->type->kind == TDESC_TYPE_BOOL)
|
||||
{
|
||||
gdb_assert (f->start == f->end);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_flag (type, %d, \"%s\");\n",
|
||||
f->start, f->name);
|
||||
}
|
||||
else if ((type->u.u.size == 4
|
||||
&& f->type->kind == TDESC_TYPE_UINT32)
|
||||
|| (type->u.u.size == 8
|
||||
&& f->type->kind == TDESC_TYPE_UINT64))
|
||||
{
|
||||
printf_unfiltered
|
||||
(" tdesc_add_bitfield (type, \"%s\", %d, %d);\n",
|
||||
f->name, f->start, f->end);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature,"
|
||||
" \"%s\");\n",
|
||||
type_name);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_typed_bitfield (type, \"%s\","
|
||||
" %d, %d, field_type);\n",
|
||||
f->name, f->start, f->end);
|
||||
}
|
||||
}
|
||||
else /* Not a bitfield. */
|
||||
{
|
||||
gdb_assert (f->end == -1);
|
||||
gdb_assert (type->kind == TDESC_TYPE_STRUCT);
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature,"
|
||||
" \"%s\");\n",
|
||||
type_name);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_field (type, \"%s\", field_type);\n",
|
||||
f->name);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TDESC_TYPE_UNION:
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_union (feature, \"%s\");\n",
|
||||
type->name);
|
||||
for (int ix3 = 0;
|
||||
VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
|
||||
ix3++)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature, \"%s\");\n",
|
||||
f->type->name);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_field (type, \"%s\", field_type);\n",
|
||||
f->name);
|
||||
}
|
||||
break;
|
||||
case TDESC_TYPE_ENUM:
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_enum (feature, \"%s\", %d);\n",
|
||||
type->name, type->u.u.size);
|
||||
for (int ix3 = 0;
|
||||
VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
|
||||
ix3++)
|
||||
printf_unfiltered
|
||||
(" tdesc_add_enum_value (type, %d, \"%s\");\n",
|
||||
f->start, f->name);
|
||||
break;
|
||||
default:
|
||||
error (_("C output is not supported type \"%s\"."), type->name);
|
||||
}
|
||||
printf_unfiltered ("\n");
|
||||
}
|
||||
|
||||
void visit (const tdesc_reg *reg) override
|
||||
{
|
||||
printf_unfiltered (" tdesc_create_reg (feature, \"%s\", %ld, %d, ",
|
||||
reg->name, reg->target_regnum, reg->save_restore);
|
||||
if (reg->group)
|
||||
printf_unfiltered ("\"%s\", ", reg->group);
|
||||
else
|
||||
printf_unfiltered ("NULL, ");
|
||||
printf_unfiltered ("%d, \"%s\");\n", reg->bitsize, reg->type);
|
||||
}
|
||||
|
||||
private:
|
||||
char *m_function;
|
||||
std::string m_filename_after_features;
|
||||
bool m_printed_field_type = false;
|
||||
bool m_printed_type = false;
|
||||
};
|
||||
|
||||
static void
|
||||
maint_print_c_tdesc_cmd (char *args, int from_tty)
|
||||
{
|
||||
const struct target_desc *tdesc;
|
||||
const struct bfd_arch_info *compatible;
|
||||
const char *filename, *inp;
|
||||
char *function, *outp;
|
||||
struct property *prop;
|
||||
struct tdesc_feature *feature;
|
||||
struct tdesc_reg *reg;
|
||||
struct tdesc_type *type;
|
||||
struct tdesc_type_field *f;
|
||||
int ix, ix2, ix3;
|
||||
int printed_field_type = 0;
|
||||
const char *filename;
|
||||
|
||||
if (args == NULL)
|
||||
{
|
||||
@ -1751,253 +2067,15 @@ maint_print_c_tdesc_cmd (char *args, int from_tty)
|
||||
if (filename == NULL)
|
||||
error (_("The current target description did not come from an XML file."));
|
||||
|
||||
filename = lbasename (filename);
|
||||
function = (char *) alloca (strlen (filename) + 1);
|
||||
for (inp = filename, outp = function; *inp != '\0'; inp++)
|
||||
if (*inp == '.')
|
||||
break;
|
||||
else if (*inp == '-')
|
||||
*outp++ = '_';
|
||||
else
|
||||
*outp++ = *inp;
|
||||
*outp = '\0';
|
||||
std::string filename_after_features (filename);
|
||||
auto loc = filename_after_features.rfind ("/features/");
|
||||
|
||||
/* Standard boilerplate. */
|
||||
printf_unfiltered ("/* THIS FILE IS GENERATED. "
|
||||
"-*- buffer-read-only: t -*- vi"
|
||||
":set ro:\n");
|
||||
printf_unfiltered (" Original: %s */\n\n", filename);
|
||||
printf_unfiltered ("#include \"defs.h\"\n");
|
||||
printf_unfiltered ("#include \"osabi.h\"\n");
|
||||
printf_unfiltered ("#include \"target-descriptions.h\"\n");
|
||||
printf_unfiltered ("\n");
|
||||
if (loc != std::string::npos)
|
||||
filename_after_features = filename_after_features.substr (loc + 10);
|
||||
|
||||
printf_unfiltered ("struct target_desc *tdesc_%s;\n", function);
|
||||
printf_unfiltered ("static void\n");
|
||||
printf_unfiltered ("initialize_tdesc_%s (void)\n", function);
|
||||
printf_unfiltered ("{\n");
|
||||
printf_unfiltered
|
||||
(" struct target_desc *result = allocate_target_description ();\n");
|
||||
printf_unfiltered (" struct tdesc_feature *feature;\n");
|
||||
print_c_tdesc v (filename_after_features);
|
||||
|
||||
/* Now we do some "filtering" in order to know which variables to
|
||||
declare. This is needed because otherwise we would declare unused
|
||||
variables `field_type' and `type'. */
|
||||
for (ix = 0;
|
||||
VEC_iterate (tdesc_feature_p, tdesc->features, ix, feature);
|
||||
ix++)
|
||||
{
|
||||
int printed_desc_type = 0;
|
||||
|
||||
for (ix2 = 0;
|
||||
VEC_iterate (tdesc_type_p, feature->types, ix2, type);
|
||||
ix2++)
|
||||
{
|
||||
if (!printed_field_type)
|
||||
{
|
||||
printf_unfiltered (" struct tdesc_type *field_type;\n");
|
||||
printed_field_type = 1;
|
||||
}
|
||||
|
||||
if ((type->kind == TDESC_TYPE_UNION
|
||||
|| type->kind == TDESC_TYPE_STRUCT
|
||||
|| type->kind == TDESC_TYPE_FLAGS
|
||||
|| type->kind == TDESC_TYPE_ENUM)
|
||||
&& VEC_length (tdesc_type_field, type->u.u.fields) > 0)
|
||||
{
|
||||
printf_unfiltered (" struct tdesc_type *type;\n");
|
||||
printed_desc_type = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (printed_desc_type)
|
||||
break;
|
||||
}
|
||||
|
||||
printf_unfiltered ("\n");
|
||||
|
||||
if (tdesc_architecture (tdesc) != NULL)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" set_tdesc_architecture (result, bfd_scan_arch (\"%s\"));\n",
|
||||
tdesc_architecture (tdesc)->printable_name);
|
||||
printf_unfiltered ("\n");
|
||||
}
|
||||
|
||||
if (tdesc_osabi (tdesc) > GDB_OSABI_UNKNOWN
|
||||
&& tdesc_osabi (tdesc) < GDB_OSABI_INVALID)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" set_tdesc_osabi (result, osabi_from_tdesc_string (\"%s\"));\n",
|
||||
gdbarch_osabi_name (tdesc_osabi (tdesc)));
|
||||
printf_unfiltered ("\n");
|
||||
}
|
||||
|
||||
for (ix = 0; VEC_iterate (arch_p, tdesc->compatible, ix, compatible);
|
||||
ix++)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" tdesc_add_compatible (result, bfd_scan_arch (\"%s\"));\n",
|
||||
compatible->printable_name);
|
||||
}
|
||||
if (ix)
|
||||
printf_unfiltered ("\n");
|
||||
|
||||
for (ix = 0; VEC_iterate (property_s, tdesc->properties, ix, prop);
|
||||
ix++)
|
||||
{
|
||||
printf_unfiltered (" set_tdesc_property (result, \"%s\", \"%s\");\n",
|
||||
prop->key, prop->value);
|
||||
}
|
||||
|
||||
for (ix = 0;
|
||||
VEC_iterate (tdesc_feature_p, tdesc->features, ix, feature);
|
||||
ix++)
|
||||
{
|
||||
printf_unfiltered (" \
|
||||
feature = tdesc_create_feature (result, \"%s\");\n",
|
||||
feature->name);
|
||||
|
||||
for (ix2 = 0;
|
||||
VEC_iterate (tdesc_type_p, feature->types, ix2, type);
|
||||
ix2++)
|
||||
{
|
||||
switch (type->kind)
|
||||
{
|
||||
case TDESC_TYPE_VECTOR:
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature, \"%s\");\n",
|
||||
type->u.v.type->name);
|
||||
printf_unfiltered
|
||||
(" tdesc_create_vector (feature, \"%s\", field_type, %d);\n",
|
||||
type->name, type->u.v.count);
|
||||
break;
|
||||
case TDESC_TYPE_STRUCT:
|
||||
case TDESC_TYPE_FLAGS:
|
||||
if (type->kind == TDESC_TYPE_STRUCT)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_struct (feature, \"%s\");\n",
|
||||
type->name);
|
||||
if (type->u.u.size != 0)
|
||||
printf_unfiltered
|
||||
(" tdesc_set_struct_size (type, %d);\n",
|
||||
type->u.u.size);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_flags (feature, \"%s\", %d);\n",
|
||||
type->name, type->u.u.size);
|
||||
}
|
||||
for (ix3 = 0;
|
||||
VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
|
||||
ix3++)
|
||||
{
|
||||
const char *type_name;
|
||||
|
||||
gdb_assert (f->type != NULL);
|
||||
type_name = f->type->name;
|
||||
|
||||
/* To minimize changes to generated files, don't emit type
|
||||
info for fields that have defaulted types. */
|
||||
if (f->start != -1)
|
||||
{
|
||||
gdb_assert (f->end != -1);
|
||||
if (f->type->kind == TDESC_TYPE_BOOL)
|
||||
{
|
||||
gdb_assert (f->start == f->end);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_flag (type, %d, \"%s\");\n",
|
||||
f->start, f->name);
|
||||
}
|
||||
else if ((type->u.u.size == 4
|
||||
&& f->type->kind == TDESC_TYPE_UINT32)
|
||||
|| (type->u.u.size == 8
|
||||
&& f->type->kind == TDESC_TYPE_UINT64))
|
||||
{
|
||||
printf_unfiltered
|
||||
(" tdesc_add_bitfield (type, \"%s\", %d, %d);\n",
|
||||
f->name, f->start, f->end);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature,"
|
||||
" \"%s\");\n",
|
||||
type_name);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_typed_bitfield (type, \"%s\","
|
||||
" %d, %d, field_type);\n",
|
||||
f->name, f->start, f->end);
|
||||
}
|
||||
}
|
||||
else /* Not a bitfield. */
|
||||
{
|
||||
gdb_assert (f->end == -1);
|
||||
gdb_assert (type->kind == TDESC_TYPE_STRUCT);
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature,"
|
||||
" \"%s\");\n",
|
||||
type_name);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_field (type, \"%s\", field_type);\n",
|
||||
f->name);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TDESC_TYPE_UNION:
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_union (feature, \"%s\");\n",
|
||||
type->name);
|
||||
for (ix3 = 0;
|
||||
VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
|
||||
ix3++)
|
||||
{
|
||||
printf_unfiltered
|
||||
(" field_type = tdesc_named_type (feature, \"%s\");\n",
|
||||
f->type->name);
|
||||
printf_unfiltered
|
||||
(" tdesc_add_field (type, \"%s\", field_type);\n",
|
||||
f->name);
|
||||
}
|
||||
break;
|
||||
case TDESC_TYPE_ENUM:
|
||||
printf_unfiltered
|
||||
(" type = tdesc_create_enum (feature, \"%s\", %d);\n",
|
||||
type->name, type->u.u.size);
|
||||
for (ix3 = 0;
|
||||
VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
|
||||
ix3++)
|
||||
printf_unfiltered
|
||||
(" tdesc_add_enum_value (type, %d, \"%s\");\n",
|
||||
f->start, f->name);
|
||||
break;
|
||||
default:
|
||||
error (_("C output is not supported type \"%s\"."), type->name);
|
||||
}
|
||||
printf_unfiltered ("\n");
|
||||
}
|
||||
|
||||
for (ix2 = 0;
|
||||
VEC_iterate (tdesc_reg_p, feature->registers, ix2, reg);
|
||||
ix2++)
|
||||
{
|
||||
printf_unfiltered (" tdesc_create_reg (feature, \"%s\", %ld, %d, ",
|
||||
reg->name, reg->target_regnum, reg->save_restore);
|
||||
if (reg->group)
|
||||
printf_unfiltered ("\"%s\", ", reg->group);
|
||||
else
|
||||
printf_unfiltered ("NULL, ");
|
||||
printf_unfiltered ("%d, \"%s\");\n", reg->bitsize, reg->type);
|
||||
}
|
||||
|
||||
printf_unfiltered ("\n");
|
||||
}
|
||||
|
||||
printf_unfiltered (" tdesc_%s = result;\n", function);
|
||||
printf_unfiltered ("}\n");
|
||||
tdesc->accept (v);
|
||||
}
|
||||
|
||||
/* Provide a prototype to silence -Wmissing-prototypes. */
|
||||
|
Loading…
Reference in New Issue
Block a user