]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/testsuite/gas/aarch64/morello_insn.s
[Morello] Implement LDUR/STUR fallback for LDR/STR in altbase mode
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / aarch64 / morello_insn.s
CommitLineData
adffaa8e
SP
1// Zero/one operands
2
3bx #4
4ret
5
6// Single operand (n)
7
8 .macro morello_jump cn
9 .irp op, blr, blrr, blrs, br, brr, brs, ret, retr, rets
10 \op \cn
11 .endr
12 .endm
13morello_jump c20
14
1ef7b7e1
SP
15 .macro morello_csp cnsp
16 .irp op, chksld, chktgd
17 \op \cnsp
18 .endr
19 .endm
20morello_csp csp
21
ec145252
SP
22// Two operands (dn).
23
24 .macro morello_cspcsp cdsp, cnsp
3e2ac3d2 25 .irp op, cpy, mov, chkss, clrtag
ec145252
SP
26 \op \cdsp, \cnsp
27 .endr
28 .endm
29morello_cspcsp c11, c19
30morello_cspcsp c11, csp
31morello_cspcsp csp, c11
32morello_cspcsp csp, csp
33
34mov c0, czr
dc64c2ba 35
1ef7b7e1
SP
36 .macro morello_cx cd, xn
37 .irp op, cvtd, cvtdz, cvtp, cvtpz
38 \op \cd, \xn
39 .endr
40 .endm
41morello_cx c0, x1
42
43 .macro morello_xx xd, xn
44 .irp op, rrlen, rrmask
45 \op \xd, \xn
46 .endr
47 .endm
48morello_xx x2, x1
49
50 .macro morello_xcsp xd, cnsp
51 .irp op, cfhi, cvtd, cvtp
52 \op \xd, \cnsp
53 .endr
54 .endm
55morello_xcsp x7, c15
56morello_xcsp x6, csp
57
58 .macro morello_gc_xc xd, cnsp
59 .irp op, gcbase, gcflgs, gclen, gclim, gcoff, gcperm, gcseal, gctag, gctype, gcvalue
60 \op \xd, \cnsp
61 .endr
62 .endm
63morello_gc_xc x7, c15
64morello_gc_xc x6, csp
65
66chkeq csp, c20
67chkeq c19, c20
68
dc64c2ba
SP
69// Three operands (dni)
70
71 .macro morello_addsub_imm cdsp, cnsp
72 .irp op, add, sub
73 \op \cdsp, \cnsp, #0xff0
74 \op \cdsp, \cnsp, #0xfff, lsl #0
75 \op \cdsp, \cnsp, #0x1fe, lsl #12
76 \op \cdsp, \cnsp, #0x3, lsl #0
77 \op \cdsp, \cnsp, #0x0, lsl #12
78 .endr
79 .endm
80morello_addsub_imm c21, c9
81morello_addsub_imm csp, c9
82morello_addsub_imm csp, csp
83morello_addsub_imm c21, csp
84
9e5e0b29 85 .macro morello_cspcspi8 cdsp, cnsp
1ef7b7e1 86 .irp op, bicflgs, eorflgs, orrflgs
9e5e0b29
SP
87 \op \cdsp, \cnsp, #0xff
88 \op \cdsp, \cnsp, #0
89 \op \cdsp, \cnsp, #0xff
90 \op \cdsp, \cnsp, #0x10
91 .endr
92 .endm
93morello_cspcspi8 c7, c6
94morello_cspcspi8 csp, c6
95morello_cspcspi8 c8, csp
96morello_cspcspi8 csp, csp
97
1ef7b7e1 98 .macro morello_cspcspi6 cdsp, cnsp
0bd71233 99 .irp op, alignd, alignu, scbnds
1ef7b7e1
SP
100 \op \cdsp, \cnsp, #0x3f
101 \op \cdsp, \cnsp, #0x1e
102 \op \cdsp, \cnsp, #0
103 \op \cdsp, \cnsp, #0x20
104 .endr
105 .endm
106morello_cspcspi6 c17, c16
107morello_cspcspi6 csp, c16
108morello_cspcspi6 c18, csp
109morello_cspcspi6 csp, csp
110
3e2ac3d2
SP
111 .macro morello_perm cd, cn
112 .irp perm, r, w, x, rx, wx, rw, rwx, #0, #1, #2, #3, #4, #5, #6, #7
113 clrperm \cd, \cn, \perm
114 .endr
115 .endm
116morello_perm c22, c23
117
0bd71233
SP
118 .macro morello_scbnds cdsp, cnsp
119 scbnds \cdsp, \cnsp, #0x3f, lsl #4
120 scbnds \cdsp, \cnsp, #0x1e, lsl #4
121 scbnds \cdsp, \cnsp, #0, lsl #4
122 scbnds \cdsp, \cnsp, #0x20, lsl #4
123 scbnds \cdsp, \cnsp, #0x3f0
124 scbnds \cdsp, \cnsp, #0x40
125 .endm
126morello_scbnds c17, c16
127morello_scbnds csp, c16
128morello_scbnds c18, csp
129morello_scbnds csp, csp
130
7ce74d61
SP
131 .macro morello_seal cd, cn
132 .irp form, rb, lb, lpb
133 seal \cd, \cn, \form
134 .endr
135 .endm
136morello_seal c2, c3
137
9e5e0b29
SP
138// Three operands (dnm)
139
140 .macro morello_cspcspx cdsp, cnsp, xm
0bd71233 141 .irp op, bicflgs, eorflgs, orrflgs, clrperm, scbnds, scbndse, scoff, scflgs, sctag, scvalue
9e5e0b29
SP
142 \op \cdsp, \cnsp, \xm
143 .endr
144 .endm
145morello_cspcspx c7, c6, x25
146morello_cspcspx c7, csp, x25
147morello_cspcspx csp, c6, x25
148morello_cspcspx csp, csp, x25
149
1ef7b7e1
SP
150subs x4, c13, c14
151
adffaa8e
SP
152 .macro morello_jump_sealed cn, cm
153 .irp op, blrs, brs, rets
154 \op c29, \cn, \cm
155 .endr
156 .endm
157morello_jump_sealed c2, c4
158
1ef7b7e1 159 .macro morello_ccc cd, cn, cm
7ce74d61 160 .irp op, cpytype, cpyvalue, seal, unseal
1ef7b7e1
SP
161 \op \cd, \cn, \cm
162 .endr
163 .endm
164morello_ccc c2, c4, c13
165
166 .macro morello_cspcx cdsp, cn, xm
167 .irp op, cthi
168 \op \cdsp, \cn, \xm
169 .endr
170 .endm
171morello_cspcx c0, c22, x25
172morello_cspcx csp, c4, x25
173
174 .macro morello_ccspx cd, cnsp, xm
175 .irp op, cvt, cvtz
176 \op \cd, \cnsp, \xm
177 .endr
178 .endm
179morello_ccspx c22, c0, x25
180morello_ccspx c4, csp, x25
181
182 .macro morello_xcspc xd, cnsp, cm
183 .irp op, cvt
184 \op \xd, \cnsp, \cm
185 .endr
186 .endm
187morello_xcspc x22, c0, c25
188morello_xcspc x4, csp, c25
189
190 .macro morello_ccspcsp cd, cnsp, cmsp
191 .irp op, chkssu
192 \op \cd, \cnsp, \cmsp
193 .endr
194 .endm
195morello_ccspcsp c13, c7, c22
196morello_ccspcsp c13, csp, c22
197morello_ccspcsp c13, c7, csp
198morello_ccspcsp c13, csp, csp
199
200 .macro morello_cspcspcsp cdsp, cnsp, cmsp
201 .irp op, build, cseal
202 \op \cdsp, \cnsp, \cmsp
203 .endr
204 .endm
205morello_cspcspcsp c2, c4, c13
206morello_cspcspcsp csp, c4, c13
207morello_cspcspcsp c2, csp, c13
208morello_cspcspcsp csp, csp, c13
209morello_cspcspcsp c2, c4, csp
210morello_cspcspcsp csp, c4, csp
211morello_cspcspcsp c2, csp, csp
212morello_cspcspcsp csp, csp, csp
213
dc64c2ba
SP
214// Four operands (dnmi)
215
216 .macro morello_add_scalar cspd, cspn, rm
217 .irp op, add
218 \op \cspd, \cspn, x\rm, sxtx #0
219 \op \cspd, \cspn, x\rm, sxtx #4
220 \op \cspd, \cspn, w\rm, sxtw #4
221 \op \cspd, \cspn, x\rm
222 \op \cspd, \cspn, x\rm, lsl #4
223 .endr
224 .endm
225morello_add_scalar c17, c9, 4
226morello_add_scalar csp, c9, 4
227morello_add_scalar c17, csp, 4
228morello_add_scalar csp, csp, 4
1ef7b7e1
SP
229
230 .macro morello_csel cd, cn, cm
231 .irp cond, EQ, NE, CS, HS, CC, LO, MI, PL, VS, VC, HI, LS, GE, LT, GT, LE, AL, NV
232 csel \cd, \cn, \cm, \cond
233 .endr
234 .endm
235morello_csel c13, c7, c3