]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/d10v-elf/t-macros.i
Initial creation of sourceware repository
[thirdparty/binutils-gdb.git] / sim / testsuite / d10v-elf / t-macros.i
1 .macro start
2 .text
3 .align 2
4 .globl _start
5 _start:
6 ldi r0, 0
7 .endm
8
9
10 .macro exit47
11 ldi r4, 1
12 ldi r0, 47
13 trap 15
14 .endm
15
16
17 .macro exit0
18 ldi r4, 1
19 ldi r0, 0
20 trap 15
21 .endm
22
23
24 .macro load reg val
25 ldi \reg, #\val
26 .endm
27
28
29 .macro load2w reg hi lo
30 ld2w \reg, @(1f,r0)
31 .data
32 .align 2
33 1: .short \hi
34 .short \lo
35 .text
36 .endm
37
38
39 .macro check exit reg val
40 cmpeqi \reg, #\val
41 brf0t 1f
42 0: ldi r4, 1
43 ldi r0, \exit
44 trap 15
45 1:
46 .endm
47
48
49 .macro check2w2 exit reg hi lo
50 st2w \reg, @(1f,r0)
51 ld r2, @(1f, r0)
52 cmpeqi r2, #\hi
53 brf0f 0f
54 ld r2, @(1f + 2, r0)
55 cmpeqi r2, #\lo
56 brf0f 0f
57 bra 2f
58 0: ldi r4, 1
59 ldi r0, \exit
60 trap 15
61 .data
62 .align 2
63 1: .long 0
64 .text
65 2:
66 .endm
67
68
69 .macro loadacc2 acc guard hi lo
70 ldi r2, #\lo
71 mvtaclo r2, \acc
72 ldi r2, #\hi
73 mvtachi r2, \acc
74 ldi r2, #\guard
75 mvtacg r2, \acc
76 .endm
77
78
79 .macro checkacc2 exit acc guard hi lo
80 ldi r2, #\guard
81 mvfacg r3, \acc
82 cmpeq r2, r3
83 brf0f 0f
84 ldi r2, #\hi
85 mvfachi r3, \acc
86 cmpeq r2, r3
87 brf0f 0f
88 ldi r2, #\lo
89 mvfaclo r3, \acc
90 cmpeq r2, r3
91 brf0f 0f
92 bra 4f
93 0: ldi r4, 1
94 ldi r0, \exit
95 trap 15
96 4:
97 .endm
98
99
100 .macro loadpsw2 val
101 ldi r2, #\val
102 mvtc r2, cr0
103 .endm
104
105
106 .macro checkpsw2 exit val
107 mvfc r2, cr0
108 cmpeqi r2, #\val
109 brf0t 1f
110 ldi r4, 1
111 ldi r0, \exit
112 trap 15
113 1:
114 .endm
115
116
117 .macro hello
118 ;; 4:write (1, string, strlen (string))
119 ldi r4, 4
120 ldi r0, 1
121 ldi r1, 1f
122 ldi r2, 2f-1f-1
123 trap 15
124 .section .rodata
125 1: .string "Hello World!\n"
126 2: .align 2
127 .text
128 .endm
129
130
131 PSW_SM = 0x8000
132 PSW_01 = 0x4000
133 PSW_EA = 0x2000
134 PSW_DB = 0x1000
135 PSW_DM = 0x0800
136 PSW_IE = 0x0400
137 PSW_RP = 0x0200
138 PSW_MD = 0x0100
139 PSW_FX = 0x0080
140 PSW_ST = 0x0040
141 PSW_10 = 0x0020
142 PSW_11 = 0x0010
143 PSW_F0 = 0x0008
144 PSW_F1 = 0x0004
145 PSW_14 = 0x0002
146 PSW_C = 0x0001
147
148
149 ;;;
150
151 DMAP_MASK = 0x3fff
152 DMAP_BASE = 0x8000
153 DMAP_REG = 0xff04
154
155 IMAP0_REG = 0xff00
156 IMAP1_REG = 0xff02
157
158 MAP_INSN = 0x1000
159
160 ;;;
161
162 VEC_RI = 0x3fc00
163 VEC_BAE = 0x3fc04
164 VEC_RIE = 0x3fc08
165 VEC_AE = 0x3fc0c
166 VEC_TRAP = 0x3fc10
167 VEC_DBT = 0x3ff50
168 VEC_SDBT = 0x3fff4
169 VEC_DBI = 0x3ff58
170 VEC_EI = 0x3ff5c