summaryrefslogtreecommitdiff
path: root/gdb/features/arc-v2.xml
blob: 4f8c9a06ee54f1f8246ca66be0cb4faf1a5aa1bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?xml version="1.0"?>
<!-- Copyright (C) 2015-2017 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>