diff options
Diffstat (limited to 'gdb/features')
-rw-r--r-- | gdb/features/Makefile | 2 | ||||
-rw-r--r-- | gdb/features/arc-arcompact.c | 75 | ||||
-rw-r--r-- | gdb/features/arc-arcompact.xml | 85 | ||||
-rw-r--r-- | gdb/features/arc-v2.c | 79 | ||||
-rw-r--r-- | gdb/features/arc-v2.xml | 92 |
5 files changed, 333 insertions, 0 deletions
diff --git a/gdb/features/Makefile b/gdb/features/Makefile index 809c81168c..4efb1a550c 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -148,6 +148,8 @@ OUTPUTS = $(patsubst %,$(outdir)/%.dat,$(WHICH)) # to make on the command line. XMLTOC = \ aarch64.xml \ + arc-v2.xml \ + arc-arcompact.xml \ arm-with-iwmmxt.xml \ arm-with-m-fpa-layout.xml \ arm-with-m-vfp-d16.xml \ diff --git a/gdb/features/arc-arcompact.c b/gdb/features/arc-arcompact.c new file mode 100644 index 0000000000..d1fa4fe78e --- /dev/null +++ b/gdb/features/arc-arcompact.c @@ -0,0 +1,75 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arc-arcompact.xml */ + +#include "defs.h" +#include "osabi.h" +#include "target-descriptions.h" + +struct target_desc *tdesc_arc_arcompact; +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")); + + 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"); + tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "gp", 26, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "fp", 27, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "sp", 28, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "ilink1", 29, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "ilink2", 30, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr"); + + feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal"); + type = tdesc_create_flags (feature, "status32_type", 4); + tdesc_add_bitfield (type, "H", 0, 0); + tdesc_add_bitfield (type, "E", 1, 2); + tdesc_add_bitfield (type, "A", 3, 4); + tdesc_add_bitfield (type, "AE", 5, 5); + tdesc_add_bitfield (type, "DE", 6, 6); + tdesc_add_bitfield (type, "U", 7, 7); + tdesc_add_bitfield (type, "V", 8, 8); + tdesc_add_bitfield (type, "C", 9, 9); + tdesc_add_bitfield (type, "N", 10, 10); + tdesc_add_bitfield (type, "Z", 11, 11); + tdesc_add_bitfield (type, "L", 12, 12); + tdesc_add_bitfield (type, "R", 13, 13); + tdesc_add_bitfield (type, "SE", 14, 14); + + tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type"); + + tdesc_arc_arcompact = result; +} diff --git a/gdb/features/arc-arcompact.xml b/gdb/features/arc-arcompact.xml new file mode 100644 index 0000000000..e66bb45e96 --- /dev/null +++ b/gdb/features/arc-arcompact.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2015-2016 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. --> + +<!DOCTYPE target SYSTEM "gdb-target.dtd"> +<target> + <architecture>arc:ARC700</architecture> + <!-- No OSABI for bare metal. --> + <!-- No compatibility for ARC. --> + + <feature name="org.gnu.gdb.arc.core.arcompact"> + <reg name="r0" bitsize="32"/> + <reg name="r1" bitsize="32"/> + <reg name="r2" bitsize="32"/> + <reg name="r3" bitsize="32"/> + <reg name="r4" bitsize="32"/> + <reg name="r5" bitsize="32"/> + <reg name="r6" bitsize="32"/> + <reg name="r7" bitsize="32"/> + <reg name="r8" bitsize="32"/> + <reg name="r9" bitsize="32"/> + <reg name="r10" bitsize="32"/> + <reg name="r11" bitsize="32"/> + <reg name="r12" bitsize="32"/> + <reg name="r13" bitsize="32"/> + <reg name="r14" bitsize="32"/> + <reg name="r15" bitsize="32"/> + <reg name="r16" bitsize="32"/> + <reg name="r17" bitsize="32"/> + <reg name="r18" bitsize="32"/> + <reg name="r19" bitsize="32"/> + <reg name="r20" bitsize="32"/> + <reg name="r21" bitsize="32"/> + <reg name="r22" bitsize="32"/> + <reg name="r23" bitsize="32"/> + <reg name="r24" bitsize="32"/> + <reg name="r25" bitsize="32"/> + + <!-- ARC core data pointer registers. --> + <reg name="gp" bitsize="32" type="data_ptr"/> + <reg name="fp" bitsize="32" type="data_ptr"/> + <reg name="sp" bitsize="32" type="data_ptr"/> + + <!-- Code pointers. --> + <reg name="ilink1" bitsize="32" type="code_ptr"/> + <reg name="ilink2" bitsize="32" type="code_ptr"/> + <reg name="blink" bitsize="32" type="code_ptr"/> + + <!-- Here goes extension core registers: r32 - r59 --> + + <!-- Loop counter. --> + <reg name="lp_count" bitsize="32" type="uint32"/> + + <!-- r61 is a reserved register address. --> + + <!-- r62 is a long immediate value, not a real register. --> + + <!-- 4-byte aligned read-only program counter. --> + <reg name="pcl" bitsize="32" type="code_ptr" group=""/> + </feature> + + <feature name="org.gnu.gdb.arc.aux-minimal"> + <flags id="status32_type" size="4"> + <field name="H" start="0" end="0"/> + <field name="E" start="1" end="2"/> + <field name="A" start="3" end="4"/> + <field name="AE" start="5" end="5"/> + <field name="DE" start="6" end="6"/> + <field name="U" start="7" end="7"/> + <field name="V" start="8" end="8"/> + <field name="C" start="9" end="9"/> + <field name="N" start="10" end="10"/> + <field name="Z" start="11" end="11"/> + <field name="L" start="12" end="12"/> + <field name="R" start="13" end="13"/> + <field name="SE" start="14" end="14"/> + </flags> + + <reg name="pc" bitsize="32" type="code_ptr"/> + <reg name="status32" bitsize="32" type="status32_type"/> + </feature> +</target> diff --git a/gdb/features/arc-v2.c b/gdb/features/arc-v2.c new file mode 100644 index 0000000000..c963410e53 --- /dev/null +++ b/gdb/features/arc-v2.c @@ -0,0 +1,79 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: arc-v2.xml */ + +#include "defs.h" +#include "osabi.h" +#include "target-descriptions.h" + +struct target_desc *tdesc_arc_v2; +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")); + + 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"); + tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int"); + tdesc_create_reg (feature, "gp", 26, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "fp", 27, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "sp", 28, 1, NULL, 32, "data_ptr"); + tdesc_create_reg (feature, "ilink", 29, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "r30", 30, 1, "", 32, "int"); + tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32"); + tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr"); + + feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal"); + type = tdesc_create_flags (feature, "status32_type", 4); + tdesc_add_bitfield (type, "H", 0, 0); + tdesc_add_bitfield (type, "E", 1, 4); + tdesc_add_bitfield (type, "AE", 5, 5); + tdesc_add_bitfield (type, "DE", 6, 6); + tdesc_add_bitfield (type, "U", 7, 7); + tdesc_add_bitfield (type, "V", 8, 8); + tdesc_add_bitfield (type, "C", 9, 9); + tdesc_add_bitfield (type, "N", 10, 10); + tdesc_add_bitfield (type, "Z", 11, 11); + tdesc_add_bitfield (type, "L", 12, 12); + tdesc_add_bitfield (type, "DZ", 13, 13); + tdesc_add_bitfield (type, "SC", 14, 14); + tdesc_add_bitfield (type, "ES", 15, 15); + tdesc_add_bitfield (type, "RB", 16, 18); + tdesc_add_bitfield (type, "AD", 19, 19); + tdesc_add_bitfield (type, "US", 20, 20); + tdesc_add_bitfield (type, "IE", 31, 31); + + tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr"); + tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type"); + + tdesc_arc_v2 = result; +} diff --git a/gdb/features/arc-v2.xml b/gdb/features/arc-v2.xml new file mode 100644 index 0000000000..7f06ddedd2 --- /dev/null +++ b/gdb/features/arc-v2.xml @@ -0,0 +1,92 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2015-2016 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. --> + +<!DOCTYPE target SYSTEM "gdb-target.dtd"> +<target> + <architecture>arc:ARCv2</architecture> + <!-- No OSABI for bare metal. --> + <!-- No compatibility for ARC. --> + + <feature name="org.gnu.gdb.arc.core.v2"> + <reg name="r0" bitsize="32"/> + <reg name="r1" bitsize="32"/> + <reg name="r2" bitsize="32"/> + <reg name="r3" bitsize="32"/> + <reg name="r4" bitsize="32"/> + <reg name="r5" bitsize="32"/> + <reg name="r6" bitsize="32"/> + <reg name="r7" bitsize="32"/> + <reg name="r8" bitsize="32"/> + <reg name="r9" bitsize="32"/> + <reg name="r10" bitsize="32"/> + <reg name="r11" bitsize="32"/> + <reg name="r12" bitsize="32"/> + <reg name="r13" bitsize="32"/> + <reg name="r14" bitsize="32"/> + <reg name="r15" bitsize="32"/> + <reg name="r16" bitsize="32"/> + <reg name="r17" bitsize="32"/> + <reg name="r18" bitsize="32"/> + <reg name="r19" bitsize="32"/> + <reg name="r20" bitsize="32"/> + <reg name="r21" bitsize="32"/> + <reg name="r22" bitsize="32"/> + <reg name="r23" bitsize="32"/> + <reg name="r24" bitsize="32"/> + <reg name="r25" bitsize="32"/> + + <!-- ARC core data pointer registers. --> + <reg name="gp" bitsize="32" type="data_ptr"/> + <reg name="fp" bitsize="32" type="data_ptr"/> + <reg name="sp" bitsize="32" type="data_ptr"/> + + <!-- Code pointers. R30 is general purpose, but it used to be ILINK2 in + ARCompact, thus its odd position in between of special purpose registers. + GCC does't use this register, so it isn't a member of a general group. --> + <reg name="ilink" bitsize="32" type="code_ptr"/> + <reg name="r30" bitsize="32" group=""/> + <reg name="blink" bitsize="32" type="code_ptr"/> + + <!-- Here goes extension core registers: r32 - r57. --> + <!-- Here goes ACCL/ACCH registers, r58, r59. --> + + <!-- Loop counter. --> + <reg name="lp_count" bitsize="32" type="uint32"/> + + <!-- r61 is a reserved register address. --> + + <!-- r62 is a long immediate value, not a real register. --> + + <!-- 4-byte aligned read-only program counter. --> + <reg name="pcl" bitsize="32" type="code_ptr" group=""/> + </feature> + + <feature name="org.gnu.gdb.arc.aux-minimal"> + <flags id="status32_type" size="4"> + <field name="H" start="0" end="0"/> + <field name="E" start="1" end="4"/> + <field name="AE" start="5" end="5"/> + <field name="DE" start="6" end="6"/> + <field name="U" start="7" end="7"/> + <field name="V" start="8" end="8"/> + <field name="C" start="9" end="9"/> + <field name="N" start="10" end="10"/> + <field name="Z" start="11" end="11"/> + <field name="L" start="12" end="12"/> + <field name="DZ" start="13" end="13"/> + <field name="SC" start="14" end="14"/> + <field name="ES" start="15" end="15"/> + <field name="RB" start="16" end="18"/> + <field name="AD" start="19" end="19"/> + <field name="US" start="20" end="20"/> + <field name="IE" start="31" end="31"/> + </flags> + + <reg name="pc" bitsize="32" type="code_ptr"/> + <reg name="status32" bitsize="32" type="status32_type"/> + </feature> +</target> |