]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gas/testsuite/gas/aarch64/shifted.s
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / aarch64 / shifted.s
CommitLineData
a06ea964
NC
1/* shifted.s Test file for AArch64 add-substract (extended reg.) and
2 add-substract (shifted reg.) instructions.
3
250d07de 4 Copyright (C) 2011-2021 Free Software Foundation, Inc.
a06ea964
NC
5 Contributed by ARM Ltd.
6
7 This file is part of GAS.
8
9 GAS is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3 of the license, or
12 (at your option) any later version.
13
14 GAS is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; see the file COPYING3. If not,
21 see <http://www.gnu.org/licenses/>. */
22
23 .macro op3_64 op, shift
24 \op x1, x2, x3, \shift #0
25 \op x1, x2, x3, \shift #1
26 \op x1, x2, x3, \shift #3
27 \op x1, x2, x3, \shift #7
28 \op x1, x2, x3, \shift #15
29 \op x1, x2, x3, \shift #31
30 \op x1, x2, x3, \shift #63
31 .endm
32
33 .macro op3_32 op, shift
34 \op w1, w2, w3, \shift #0
35 \op w1, w2, w3, \shift #1
36 \op w1, w2, w3, \shift #3
37 \op w1, w2, w3, \shift #7
38 \op w1, w2, w3, \shift #15
39 \op w1, w2, w3, \shift #31
40 .endm
41
42 .macro op3_64x op, shift
43 \op x1, x2, w3, \shift
44 \op x1, x2, w3, \shift #1
45 \op x1, x2, w3, \shift #2
46 \op x1, x2, w3, \shift #3
47 \op x1, x2, w3, \shift #4
48 .endm
49
50 .macro op3_64x_more op, shift
51 \op x1, x2, x3, \shift
52 \op x1, x2, x3, \shift #1
53 \op x1, x2, x3, \shift #2
54 \op x1, x2, x3, \shift #3
55 \op x1, x2, x3, \shift #4
56 .endm
57
58 .macro op3_32x op, shift
59 \op w1, w2, w3, \shift
60 \op w1, w2, w3, \shift #1
61 \op w1, w2, w3, \shift #2
62 \op w1, w2, w3, \shift #3
63 \op w1, w2, w3, \shift #4
64 .endm
65
66 .macro op2_64 op, shift
67 \op x2, x3, \shift #0
68 \op x2, x3, \shift #1
69 \op x2, x3, \shift #3
70 \op x2, x3, \shift #7
71 \op x2, x3, \shift #15
72 \op x2, x3, \shift #31
73 \op x2, x3, \shift #63
74 .endm
75
76 .macro op2_32 op, shift
77 \op w2, w3, \shift #0
78 \op w2, w3, \shift #1
79 \op w2, w3, \shift #3
80 \op w2, w3, \shift #7
81 \op w2, w3, \shift #15
82 \op w2, w3, \shift #31
83 .endm
84
85 .macro op2_64x op, shift
86 \op x2, w3, \shift
87 \op x2, w3, \shift #1
88 \op x2, w3, \shift #2
89 \op x2, w3, \shift #3
90 \op x2, w3, \shift #4
91 .endm
92
93 .macro op2_32x op, shift
94 \op w2, w3, \shift
95 \op w2, w3, \shift #1
96 \op w2, w3, \shift #2
97 \op w2, w3, \shift #3
98 \op w2, w3, \shift #4
99 .endm
100
101 .macro logical op
102 op3_64 \op, lsl
103 op3_64 \op, lsr
104 op3_64 \op, asr
105 op3_64 \op, ror
106 op3_32 \op, lsl
107 op3_32 \op, lsr
108 op3_32 \op, asr
109 op3_32 \op, ror
110 .endm
111
112 .macro arith3 op
113 op3_64 \op, lsl
114 op3_64 \op, lsr
115 op3_64 \op, asr
116 op3_64x \op, uxtb
117 op3_64x \op, uxth
118 op3_64x \op, uxtw
119 op3_64x_more \op, uxtx
120 op3_64x \op, sxtb
121 op3_64x \op, sxth
122 op3_64x \op, sxtw
123 op3_64x_more \op, sxtx
124 op3_32 \op, lsl
125 op3_32 \op, lsr
126 op3_32 \op, asr
127 op3_32x \op, uxtb
128 op3_32x \op, uxth
129 op3_32x \op, sxtb
130 op3_32x \op, sxth
131 .endm
132
133 .macro arith2 op, if_ext=1
134 op2_64 \op, lsl
135 op2_64 \op, lsr
136 op2_64 \op, asr
137 .if \if_ext
138 op2_64x \op, uxtb
139 op2_64x \op, uxth
140 op2_64x \op, uxtw
141 op2_64x \op, sxtb
142 op2_64x \op, sxth
143 op2_64x \op, sxtw
144 .endif
145 op2_32 \op, lsl
146 op2_32 \op, lsr
147 op2_32 \op, asr
148 .if \if_ext
149 op2_32x \op, uxtb
150 op2_32x \op, uxth
151 op2_32x \op, sxtb
152 op2_32x \op, sxth
153 .endif
154 .endm
155
156func:
157 logical orr
158 logical and
159 logical eor
160
161 logical bic
162 logical orn
163 logical eon
164
165 arith3 add
166 arith3 sub
167
168 arith2 neg, 0
169 arith2 cmp
170 arith2 cmn