1 /* shifted.s Test file for AArch64 add-substract (extended reg.) and
2 add-substract (shifted reg.) instructions.
4 Copyright (C) 2011-2017 Free Software Foundation, Inc.
5 Contributed by ARM Ltd.
7 This file is part of GAS.
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.
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.
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/>. */
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
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
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
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
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
66 .macro op2_64 op, shift
71 \op x2, x3, \shift #15
72 \op x2, x3, \shift #31
73 \op x2, x3, \shift #63
76 .macro op2_32 op, shift
81 \op w2, w3, \shift #15
82 \op w2, w3, \shift #31
85 .macro op2_64x op, shift
93 .macro op2_32x op, shift
119 op3_64x_more \op, uxtx
123 op3_64x_more \op, sxtx
133 .macro arith2 op, if_ext=1