1 /* This file is automatically generated by aarch64-gen. Do not edit! */
2 /* Copyright (C) 2012-2019 Free Software Foundation, Inc.
3 Contributed by ARM Ltd.
5 This file is part of the GNU opcodes library.
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
12 It is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; see the file COPYING3. If not,
19 see <http://www.gnu.org/licenses/>. */
22 #include "aarch64-opc.h"
25 const struct aarch64_operand aarch64_operands
[] =
27 {AARCH64_OPND_CLASS_NIL
, "", 0, {0}, "<none>"},
28 {AARCH64_OPND_CLASS_INT_REG
, "Rd", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rd
}, "an integer register"},
29 {AARCH64_OPND_CLASS_INT_REG
, "Rn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an integer register"},
30 {AARCH64_OPND_CLASS_INT_REG
, "Rm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rm
}, "an integer register"},
31 {AARCH64_OPND_CLASS_INT_REG
, "Rt", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rt
}, "an integer register"},
32 {AARCH64_OPND_CLASS_INT_REG
, "Rt2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rt2
}, "an integer register"},
33 {AARCH64_OPND_CLASS_INT_REG
, "Rt_SP", OPD_F_MAYBE_SP
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rt
}, "an integer or stack pointer register"},
34 {AARCH64_OPND_CLASS_INT_REG
, "Rs", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rs
}, "an integer register"},
35 {AARCH64_OPND_CLASS_INT_REG
, "Ra", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Ra
}, "an integer register"},
36 {AARCH64_OPND_CLASS_INT_REG
, "Rt_SYS", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rt
}, "an integer register"},
37 {AARCH64_OPND_CLASS_INT_REG
, "Rd_SP", OPD_F_MAYBE_SP
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rd
}, "an integer or stack pointer register"},
38 {AARCH64_OPND_CLASS_INT_REG
, "Rn_SP", OPD_F_MAYBE_SP
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an integer or stack pointer register"},
39 {AARCH64_OPND_CLASS_INT_REG
, "Rm_SP", OPD_F_MAYBE_SP
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rm
}, "an integer or stack pointer register"},
40 {AARCH64_OPND_CLASS_INT_REG
, "PAIRREG", OPD_F_HAS_EXTRACTOR
, {}, "the second reg of a pair"},
41 {AARCH64_OPND_CLASS_MODIFIED_REG
, "Rm_EXT", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an integer register with optional extension"},
42 {AARCH64_OPND_CLASS_MODIFIED_REG
, "Rm_SFT", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an integer register with optional shift"},
43 {AARCH64_OPND_CLASS_FP_REG
, "Fd", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rd
}, "a floating-point register"},
44 {AARCH64_OPND_CLASS_FP_REG
, "Fn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "a floating-point register"},
45 {AARCH64_OPND_CLASS_FP_REG
, "Fm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rm
}, "a floating-point register"},
46 {AARCH64_OPND_CLASS_FP_REG
, "Fa", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Ra
}, "a floating-point register"},
47 {AARCH64_OPND_CLASS_FP_REG
, "Ft", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rt
}, "a floating-point register"},
48 {AARCH64_OPND_CLASS_FP_REG
, "Ft2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rt2
}, "a floating-point register"},
49 {AARCH64_OPND_CLASS_SISD_REG
, "Sd", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rd
}, "a SIMD scalar register"},
50 {AARCH64_OPND_CLASS_SISD_REG
, "Sn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "a SIMD scalar register"},
51 {AARCH64_OPND_CLASS_SISD_REG
, "Sm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rm
}, "a SIMD scalar register"},
52 {AARCH64_OPND_CLASS_SIMD_REG
, "Va", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Ra
}, "a SIMD vector register"},
53 {AARCH64_OPND_CLASS_SIMD_REG
, "Vd", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rd
}, "a SIMD vector register"},
54 {AARCH64_OPND_CLASS_SIMD_REG
, "Vn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "a SIMD vector register"},
55 {AARCH64_OPND_CLASS_SIMD_REG
, "Vm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rm
}, "a SIMD vector register"},
56 {AARCH64_OPND_CLASS_FP_REG
, "VdD1", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rd
}, "the top half of a 128-bit FP/SIMD register"},
57 {AARCH64_OPND_CLASS_FP_REG
, "VnD1", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "the top half of a 128-bit FP/SIMD register"},
58 {AARCH64_OPND_CLASS_SIMD_ELEMENT
, "Ed", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rd
}, "a SIMD vector element"},
59 {AARCH64_OPND_CLASS_SIMD_ELEMENT
, "En", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "a SIMD vector element"},
60 {AARCH64_OPND_CLASS_SIMD_ELEMENT
, "Em", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rm
}, "a SIMD vector element"},
61 {AARCH64_OPND_CLASS_SIMD_ELEMENT
, "Em16", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rm
}, "a SIMD vector element limited to V0-V15"},
62 {AARCH64_OPND_CLASS_SIMD_REGLIST
, "LVn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "a SIMD vector register list"},
63 {AARCH64_OPND_CLASS_SIMD_REGLIST
, "LVt", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a SIMD vector register list"},
64 {AARCH64_OPND_CLASS_SIMD_REGLIST
, "LVt_AL", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a SIMD vector register list"},
65 {AARCH64_OPND_CLASS_SIMD_REGLIST
, "LEt", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a SIMD vector element list"},
66 {AARCH64_OPND_CLASS_IMMEDIATE
, "CRn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_CRn
}, "a 4-bit opcode field named for historical reasons C0 - C15"},
67 {AARCH64_OPND_CLASS_IMMEDIATE
, "CRm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_CRm
}, "a 4-bit opcode field named for historical reasons C0 - C15"},
68 {AARCH64_OPND_CLASS_IMMEDIATE
, "IDX", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm4
}, "an immediate as the index of the least significant byte"},
69 {AARCH64_OPND_CLASS_IMMEDIATE
, "MASK", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm4_2
}, "an immediate as the index of the least significant byte"},
70 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM_VLSL", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a left shift amount for an AdvSIMD register"},
71 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM_VLSR", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a right shift amount for an AdvSIMD register"},
72 {AARCH64_OPND_CLASS_IMMEDIATE
, "SIMD_IMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an immediate"},
73 {AARCH64_OPND_CLASS_IMMEDIATE
, "SIMD_IMM_SFT", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an 8-bit unsigned immediate with optional shift"},
74 {AARCH64_OPND_CLASS_IMMEDIATE
, "SIMD_FPIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an 8-bit floating-point constant"},
75 {AARCH64_OPND_CLASS_IMMEDIATE
, "SHLL_IMM", OPD_F_HAS_EXTRACTOR
, {}, "an immediate shift amount of 8, 16 or 32"},
76 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM0", 0, {}, "0"},
77 {AARCH64_OPND_CLASS_IMMEDIATE
, "FPIMM0", 0, {}, "0.0"},
78 {AARCH64_OPND_CLASS_IMMEDIATE
, "FPIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm8
}, "an 8-bit floating-point constant"},
79 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMMR", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_immr
}, "the right rotate amount"},
80 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMMS", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm6
}, "the leftmost bit number to be moved from the source"},
81 {AARCH64_OPND_CLASS_IMMEDIATE
, "WIDTH", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm6
}, "the width of the bit-field"},
82 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm6
}, "an immediate"},
83 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM_2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm6_2
}, "an immediate"},
84 {AARCH64_OPND_CLASS_IMMEDIATE
, "UIMM3_OP1", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_op1
}, "a 3-bit unsigned immediate"},
85 {AARCH64_OPND_CLASS_IMMEDIATE
, "UIMM3_OP2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_op2
}, "a 3-bit unsigned immediate"},
86 {AARCH64_OPND_CLASS_IMMEDIATE
, "UIMM4", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_CRm
}, "a 4-bit unsigned immediate"},
87 {AARCH64_OPND_CLASS_IMMEDIATE
, "UIMM4_ADDG", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm4_3
}, "a 4-bit unsigned Logical Address Tag modifier"},
88 {AARCH64_OPND_CLASS_IMMEDIATE
, "UIMM7", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_CRm
, FLD_op2
}, "a 7-bit unsigned immediate"},
89 {AARCH64_OPND_CLASS_IMMEDIATE
, "UIMM10", OPD_F_SHIFT_BY_4
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_immr
}, "a 10-bit unsigned multiple of 16"},
90 {AARCH64_OPND_CLASS_IMMEDIATE
, "BIT_NUM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_b5
, FLD_b40
}, "the bit number to be tested"},
91 {AARCH64_OPND_CLASS_IMMEDIATE
, "EXCEPTION", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm16
}, "a 16-bit unsigned immediate"},
92 {AARCH64_OPND_CLASS_IMMEDIATE
, "CCMP_IMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm5
}, "a 5-bit unsigned immediate"},
93 {AARCH64_OPND_CLASS_IMMEDIATE
, "SIMM5", OPD_F_SEXT
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm5
}, "a 5-bit signed immediate"},
94 {AARCH64_OPND_CLASS_IMMEDIATE
, "NZCV", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_nzcv
}, "a flag bit specifier giving an alternative value for each flag"},
95 {AARCH64_OPND_CLASS_IMMEDIATE
, "LIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_N
,FLD_immr
,FLD_imms
}, "Logical immediate"},
96 {AARCH64_OPND_CLASS_IMMEDIATE
, "AIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_shift
,FLD_imm12
}, "a 12-bit unsigned immediate with optional left shift of 12 bits"},
97 {AARCH64_OPND_CLASS_IMMEDIATE
, "HALF", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm16
}, "a 16-bit immediate with optional left shift"},
98 {AARCH64_OPND_CLASS_IMMEDIATE
, "FBITS", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_scale
}, "the number of bits after the binary point in the fixed-point value"},
99 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM_MOV", 0, {}, "an immediate"},
100 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM_ROT1", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_rotate1
}, "a 2-bit rotation specifier for complex arithmetic operations"},
101 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM_ROT2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_rotate2
}, "a 2-bit rotation specifier for complex arithmetic operations"},
102 {AARCH64_OPND_CLASS_IMMEDIATE
, "IMM_ROT3", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_rotate3
}, "a 1-bit rotation specifier for complex arithmetic operations"},
103 {AARCH64_OPND_CLASS_COND
, "COND", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a condition"},
104 {AARCH64_OPND_CLASS_COND
, "COND1", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "one of the standard conditions, excluding AL and NV."},
105 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_ADRP", OPD_F_SEXT
| OPD_F_HAS_EXTRACTOR
, {FLD_immhi
, FLD_immlo
}, "21-bit PC-relative address of a 4KB page"},
106 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_PCREL14", OPD_F_SEXT
| OPD_F_SHIFT_BY_2
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm14
}, "14-bit PC-relative address"},
107 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_PCREL19", OPD_F_SEXT
| OPD_F_SHIFT_BY_2
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm19
}, "19-bit PC-relative address"},
108 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_PCREL21", OPD_F_SEXT
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_immhi
,FLD_immlo
}, "21-bit PC-relative address"},
109 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_PCREL26", OPD_F_SEXT
| OPD_F_SHIFT_BY_2
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm26
}, "26-bit PC-relative address"},
110 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_SIMPLE", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an address with base register (no offset)"},
111 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_REGOFF", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an address with register offset"},
112 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_SIMM7", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm7
,FLD_index2
}, "an address with 7-bit signed immediate offset"},
113 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_SIMM9", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm9
,FLD_index
}, "an address with 9-bit signed immediate offset"},
114 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_SIMM9_2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm9
,FLD_index
}, "an address with 9-bit negative or unaligned immediate offset"},
115 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_SIMM10", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_S_imm10
,FLD_imm9
,FLD_index
}, "an address with 10-bit scaled, signed immediate offset"},
116 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_SIMM11", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm7
,FLD_index2
}, "an address with 11-bit signed immediate (multiple of 16) offset"},
117 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_UIMM12", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_imm12
}, "an address with scaled, unsigned immediate offset"},
118 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_SIMM13", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm9
,FLD_index
}, "an address with 13-bit signed immediate (multiple of 16) offset"},
119 {AARCH64_OPND_CLASS_ADDRESS
, "SIMD_ADDR_SIMPLE", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an address with base register (no offset)"},
120 {AARCH64_OPND_CLASS_ADDRESS
, "ADDR_OFFSET", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_imm9
,FLD_index
}, "an address with an optional 8-bit signed immediate offset"},
121 {AARCH64_OPND_CLASS_ADDRESS
, "SIMD_ADDR_POST", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a post-indexed address with immediate or register increment"},
122 {AARCH64_OPND_CLASS_SYSTEM
, "SYSREG", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a system register"},
123 {AARCH64_OPND_CLASS_SYSTEM
, "PSTATEFIELD", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a PSTATE field name"},
124 {AARCH64_OPND_CLASS_SYSTEM
, "SYSREG_AT", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an address translation operation specifier"},
125 {AARCH64_OPND_CLASS_SYSTEM
, "SYSREG_DC", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a data cache maintenance operation specifier"},
126 {AARCH64_OPND_CLASS_SYSTEM
, "SYSREG_IC", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "an instruction cache maintenance operation specifier"},
127 {AARCH64_OPND_CLASS_SYSTEM
, "SYSREG_TLBI", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a TBL invalidation operation specifier"},
128 {AARCH64_OPND_CLASS_SYSTEM
, "SYSREG_SR", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a Speculation Restriction option name (RCTX)"},
129 {AARCH64_OPND_CLASS_SYSTEM
, "BARRIER", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a barrier option name"},
130 {AARCH64_OPND_CLASS_SYSTEM
, "BARRIER_ISB", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "the ISB option name SY or an optional 4-bit unsigned immediate"},
131 {AARCH64_OPND_CLASS_SYSTEM
, "PRFOP", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "a prefetch operation specifier"},
132 {AARCH64_OPND_CLASS_SYSTEM
, "BARRIER_PSB", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "the PSB option name CSYNC"},
133 {AARCH64_OPND_CLASS_SYSTEM
, "BTI", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {}, "BTI targets j/c/jc"},
134 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_S4x16", 4 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 4-bit signed offset, multiplied by 16"},
135 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_S4xVL", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 4-bit signed offset, multiplied by VL"},
136 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_S4x2xVL", 1 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 4-bit signed offset, multiplied by 2*VL"},
137 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_S4x3xVL", 2 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 4-bit signed offset, multiplied by 3*VL"},
138 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_S4x4xVL", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 4-bit signed offset, multiplied by 4*VL"},
139 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_S6xVL", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 6-bit signed offset, multiplied by VL"},
140 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_S9xVL", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 9-bit signed offset, multiplied by VL"},
141 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_U6", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 6-bit unsigned offset"},
142 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_U6x2", 1 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 6-bit unsigned offset, multiplied by 2"},
143 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_U6x4", 2 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 6-bit unsigned offset, multiplied by 4"},
144 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RI_U6x8", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
}, "an address with a 6-bit unsigned offset, multiplied by 8"},
145 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_R", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with an optional scalar register offset"},
146 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RR", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
147 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RR_LSL1", 1 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
148 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RR_LSL2", 2 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
149 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RR_LSL3", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
150 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RX", (0 << OPD_F_OD_LSB
) | OPD_F_NO_ZR
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
151 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RX_LSL1", (1 << OPD_F_OD_LSB
) | OPD_F_NO_ZR
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
152 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RX_LSL2", (2 << OPD_F_OD_LSB
) | OPD_F_NO_ZR
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
153 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RX_LSL3", (3 << OPD_F_OD_LSB
) | OPD_F_NO_ZR
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_Rm
}, "an address with a scalar register offset"},
154 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
}, "an address with a vector register offset"},
155 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_LSL1", 1 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
}, "an address with a vector register offset"},
156 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_LSL2", 2 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
}, "an address with a vector register offset"},
157 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_LSL3", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
}, "an address with a vector register offset"},
158 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW_14", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_14
}, "an address with a vector register offset"},
159 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW_22", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_22
}, "an address with a vector register offset"},
160 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW1_14", 1 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_14
}, "an address with a vector register offset"},
161 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW1_22", 1 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_22
}, "an address with a vector register offset"},
162 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW2_14", 2 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_14
}, "an address with a vector register offset"},
163 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW2_22", 2 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_22
}, "an address with a vector register offset"},
164 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW3_14", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_14
}, "an address with a vector register offset"},
165 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_RZ_XTW3_22", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_Rn
,FLD_SVE_Zm_16
,FLD_SVE_xs_22
}, "an address with a vector register offset"},
166 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_ZI_U5", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "an address with a 5-bit unsigned offset"},
167 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_ZI_U5x2", 1 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "an address with a 5-bit unsigned offset, multiplied by 2"},
168 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_ZI_U5x4", 2 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "an address with a 5-bit unsigned offset, multiplied by 4"},
169 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_ZI_U5x8", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "an address with a 5-bit unsigned offset, multiplied by 8"},
170 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_ZZ_LSL", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
,FLD_SVE_Zm_16
}, "an address with a vector register offset"},
171 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_ZZ_SXTW", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
,FLD_SVE_Zm_16
}, "an address with a vector register offset"},
172 {AARCH64_OPND_CLASS_ADDRESS
, "SVE_ADDR_ZZ_UXTW", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
,FLD_SVE_Zm_16
}, "an address with a vector register offset"},
173 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_AIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm9
}, "a 9-bit unsigned arithmetic operand"},
174 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_ASIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm9
}, "a 9-bit signed arithmetic operand"},
175 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_FPIMM8", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm8
}, "an 8-bit floating-point immediate"},
176 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_I1_HALF_ONE", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_i1
}, "either 0.5 or 1.0"},
177 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_I1_HALF_TWO", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_i1
}, "either 0.5 or 2.0"},
178 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_I1_ZERO_ONE", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_i1
}, "either 0.0 or 1.0"},
179 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_IMM_ROT1", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_rot1
}, "a 1-bit rotation specifier for complex arithmetic operations"},
180 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_IMM_ROT2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_rot2
}, "a 2-bit rotation specifier for complex arithmetic operations"},
181 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_INV_LIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_N
,FLD_SVE_immr
,FLD_SVE_imms
}, "an inverted 13-bit logical immediate"},
182 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_LIMM", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_N
,FLD_SVE_immr
,FLD_SVE_imms
}, "a 13-bit logical immediate"},
183 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_LIMM_MOV", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_N
,FLD_SVE_immr
,FLD_SVE_imms
}, "a 13-bit logical move immediate"},
184 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_PATTERN", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_pattern
}, "an enumeration value such as POW2"},
185 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_PATTERN_SCALED", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_pattern
}, "an enumeration value such as POW2"},
186 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_PRFOP", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_prfop
}, "an enumeration value such as PLDL1KEEP"},
187 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pd", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pd
}, "an SVE predicate register"},
188 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pg3", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pg3
}, "an SVE predicate register"},
189 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pg4_5", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pg4_5
}, "an SVE predicate register"},
190 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pg4_10", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pg4_10
}, "an SVE predicate register"},
191 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pg4_16", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pg4_16
}, "an SVE predicate register"},
192 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pm
}, "an SVE predicate register"},
193 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pn
}, "an SVE predicate register"},
194 {AARCH64_OPND_CLASS_PRED_REG
, "SVE_Pt", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Pt
}, "an SVE predicate register"},
195 {AARCH64_OPND_CLASS_INT_REG
, "SVE_Rm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Rm
}, "an integer register or zero"},
196 {AARCH64_OPND_CLASS_INT_REG
, "SVE_Rn_SP", OPD_F_MAYBE_SP
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Rn
}, "an integer register or SP"},
197 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SHLIMM_PRED", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_tszh
,FLD_SVE_imm5
}, "a shift-left immediate operand"},
198 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SHLIMM_UNPRED", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_tszh
,FLD_imm5
}, "a shift-left immediate operand"},
199 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SHRIMM_PRED", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_tszh
,FLD_SVE_imm5
}, "a shift-right immediate operand"},
200 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SHRIMM_UNPRED", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_tszh
,FLD_imm5
}, "a shift-right immediate operand"},
201 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SIMM5", OPD_F_SEXT
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm5
}, "a 5-bit signed immediate"},
202 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SIMM5B", OPD_F_SEXT
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm5b
}, "a 5-bit signed immediate"},
203 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SIMM6", OPD_F_SEXT
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imms
}, "a 6-bit signed immediate"},
204 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_SIMM8", OPD_F_SEXT
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm8
}, "an 8-bit signed immediate"},
205 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_UIMM3", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm3
}, "a 3-bit unsigned immediate"},
206 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_UIMM7", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm7
}, "a 7-bit unsigned immediate"},
207 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_UIMM8", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_imm8
}, "an 8-bit unsigned immediate"},
208 {AARCH64_OPND_CLASS_IMMEDIATE
, "SVE_UIMM8_53", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_imm5
,FLD_imm3
}, "an 8-bit unsigned immediate"},
209 {AARCH64_OPND_CLASS_SIMD_REG
, "SVE_VZn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "a SIMD register"},
210 {AARCH64_OPND_CLASS_SIMD_REG
, "SVE_Vd", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Vd
}, "a SIMD register"},
211 {AARCH64_OPND_CLASS_SIMD_REG
, "SVE_Vm", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Vm
}, "a SIMD register"},
212 {AARCH64_OPND_CLASS_SIMD_REG
, "SVE_Vn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Vn
}, "a SIMD register"},
213 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Za_5", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Za_5
}, "an SVE vector register"},
214 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Za_16", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Za_16
}, "an SVE vector register"},
215 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zd", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zd
}, "an SVE vector register"},
216 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zm_5", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zm_5
}, "an SVE vector register"},
217 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zm_16", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zm_16
}, "an SVE vector register"},
218 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zm3_INDEX", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zm_16
}, "an indexed SVE vector register"},
219 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zm3_22_INDEX", 3 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_i3h
, FLD_SVE_Zm_16
}, "an indexed SVE vector register"},
220 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zm4_INDEX", 4 << OPD_F_OD_LSB
| OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zm_16
}, "an indexed SVE vector register"},
221 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zn", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "an SVE vector register"},
222 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zn_INDEX", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "an indexed SVE vector register"},
223 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_ZnxN", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zn
}, "a list of SVE vector registers"},
224 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_Zt", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zt
}, "an SVE vector register"},
225 {AARCH64_OPND_CLASS_SVE_REG
, "SVE_ZtxN", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SVE_Zt
}, "a list of SVE vector registers"},
226 {AARCH64_OPND_CLASS_SIMD_ELEMENT
, "SM3_IMM2", OPD_F_HAS_INSERTER
| OPD_F_HAS_EXTRACTOR
, {FLD_SM3_imm2
}, "an indexed SM3 vector immediate"},
227 {AARCH64_OPND_CLASS_NIL
, "", 0, {0}, "DUMMY"},
230 /* Indexed by an enum aarch64_op enumerator, the value is the offset of
231 the corresponding aarch64_opcode entry in the aarch64_opcode_table. */
233 static const unsigned op_enum_table
[] =
318 /* Given the opcode enumerator OP, return the pointer to the corresponding
321 const aarch64_opcode
*
322 aarch64_get_opcode (enum aarch64_op op
)
324 return aarch64_opcode_table
+ op_enum_table
[op
];