1 /* ldst-reg-pair.s Test file for AArch64 load-store reg.pair instructions.
3 Copyright (C) 2011-2016 Free Software Foundation, Inc.
4 Contributed by ARM Ltd.
6 This file is part of GAS.
8 GAS is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the license, or
11 (at your option) any later version.
13 GAS is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; see the file COPYING3. If not,
20 see <http://www.gnu.org/licenses/>. */
23 * Load-store reg.pair (offset)
24 * Load-store reg.pair (post-ind.)
25 * Load-store reg.pair (pre-ind.)
26 * Load-store na.pair (pre-ind.)
30 .macro op3_offset op, reg, imm
31 \op \reg\()7, \reg\()15, [sp, #\imm]
35 .macro op3_post_ind op, reg, imm
36 \op \reg\()7, \reg\()15, [sp], #\imm
40 .macro op3_pre_ind op, reg, imm
41 \op \reg\()7, \reg\()15, [sp, #\imm]!
44 .macro op3 op, reg, size, type
45 // a variety of values for the imm7 field
46 .irp imm7, -64, -31, -1, 0, 15, 63
49 op3_offset \op, \reg, "(\imm7*\size)"
53 op3_post_ind \op, \reg, "(\imm7*\size)"
57 op3_pre_ind \op, \reg, "(\imm7*\size)"
62 .macro ldst_reg_pair type
63 // op, reg, size(in byte) of one of the pair, type
67 op3 ldpsw, x, 4, \type
82 .macro ldst_reg_na_pair type
83 // op, reg, size(in byte) of one of the pair, type
96 op3 stnp, q, 16, \type
97 op3 ldnp, q, 16, \type
101 // Load-store reg.pair (offset)
104 // Load-store reg.pair (post-ind.)
107 // Load-store reg.pair (pre-ind.)
110 // Load-store na.pair (offset)