summaryrefslogtreecommitdiff
path: root/opcodes/aarch64-opc-2.c
diff options
context:
space:
mode:
authornobody <>2012-08-14 11:59:06 +0000
committernobody <>2012-08-14 11:59:06 +0000
commit69c386ed5f534171f93a87cf2668e4868f8604bb (patch)
tree9717c0d0bee96242f3dfa7bcae9268d41521d6b6 /opcodes/aarch64-opc-2.c
parent61e140c5afadcaa8c55d083b80ffc1b6029e2cf7 (diff)
downloadbinutils-gdb-69c386ed5f534171f93a87cf2668e4868f8604bb.tar.gz
This commit was manufactured by cvs2svn to create branch 'binutils-
2_23-branch'. Cherrypick from master 2012-08-14 11:59:05 UTC Nick Clifton <nickc@redhat.com> 'Updated Ukranian translations.': bfd/cpu-aarch64.c bfd/elf64-aarch64.c gas/config/tc-aarch64.c gas/config/tc-aarch64.h gas/doc/c-aarch64.texi gas/testsuite/gas/aarch64/aarch64.exp gas/testsuite/gas/aarch64/addsub.d gas/testsuite/gas/aarch64/addsub.s gas/testsuite/gas/aarch64/advsimd-across.d gas/testsuite/gas/aarch64/advsimd-across.s gas/testsuite/gas/aarch64/advsimd-misc.d gas/testsuite/gas/aarch64/advsimd-misc.s gas/testsuite/gas/aarch64/advsisd-copy.d gas/testsuite/gas/aarch64/advsisd-copy.s gas/testsuite/gas/aarch64/advsisd-misc.d gas/testsuite/gas/aarch64/advsisd-misc.s gas/testsuite/gas/aarch64/alias.d gas/testsuite/gas/aarch64/alias.s gas/testsuite/gas/aarch64/bitfield-alias.d gas/testsuite/gas/aarch64/bitfield-alias.s gas/testsuite/gas/aarch64/bitfield-bfm.d gas/testsuite/gas/aarch64/bitfield-bfm.s gas/testsuite/gas/aarch64/bitfield-dump gas/testsuite/gas/aarch64/bitfield-no-aliases.d gas/testsuite/gas/aarch64/crypto.d gas/testsuite/gas/aarch64/crypto.s gas/testsuite/gas/aarch64/diagnostic.d gas/testsuite/gas/aarch64/diagnostic.l gas/testsuite/gas/aarch64/diagnostic.s gas/testsuite/gas/aarch64/floatdp2.d gas/testsuite/gas/aarch64/floatdp2.s gas/testsuite/gas/aarch64/fp_cvt_int.d gas/testsuite/gas/aarch64/fp_cvt_int.s gas/testsuite/gas/aarch64/illegal-2.d gas/testsuite/gas/aarch64/illegal-2.l gas/testsuite/gas/aarch64/illegal-2.s gas/testsuite/gas/aarch64/illegal.d gas/testsuite/gas/aarch64/illegal.l gas/testsuite/gas/aarch64/illegal.s gas/testsuite/gas/aarch64/inst-directive.d gas/testsuite/gas/aarch64/inst-directive.s gas/testsuite/gas/aarch64/int-insns.d gas/testsuite/gas/aarch64/int-insns.s gas/testsuite/gas/aarch64/ldst-exclusive.d gas/testsuite/gas/aarch64/ldst-exclusive.s gas/testsuite/gas/aarch64/ldst-reg-imm-post-ind.d gas/testsuite/gas/aarch64/ldst-reg-imm-post-ind.s gas/testsuite/gas/aarch64/ldst-reg-imm-pre-ind.d gas/testsuite/gas/aarch64/ldst-reg-imm-pre-ind.s gas/testsuite/gas/aarch64/ldst-reg-pair.d gas/testsuite/gas/aarch64/ldst-reg-pair.s gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s gas/testsuite/gas/aarch64/ldst-reg-uns-imm.d gas/testsuite/gas/aarch64/ldst-reg-uns-imm.s gas/testsuite/gas/aarch64/ldst-reg-unscaled-imm.d gas/testsuite/gas/aarch64/ldst-reg-unscaled-imm.s gas/testsuite/gas/aarch64/legacy_reg_names.d gas/testsuite/gas/aarch64/legacy_reg_names.l gas/testsuite/gas/aarch64/legacy_reg_names.s gas/testsuite/gas/aarch64/mapmisc.d gas/testsuite/gas/aarch64/mapmisc.dat gas/testsuite/gas/aarch64/mapmisc.s gas/testsuite/gas/aarch64/mapping.d gas/testsuite/gas/aarch64/mapping.s gas/testsuite/gas/aarch64/mapping2.d gas/testsuite/gas/aarch64/mapping2.s gas/testsuite/gas/aarch64/mapping3.d gas/testsuite/gas/aarch64/mapping3.s gas/testsuite/gas/aarch64/mapping4.d gas/testsuite/gas/aarch64/mapping4.s gas/testsuite/gas/aarch64/mov-no-aliases.d gas/testsuite/gas/aarch64/mov.d gas/testsuite/gas/aarch64/mov.s gas/testsuite/gas/aarch64/movi.d gas/testsuite/gas/aarch64/movi.s gas/testsuite/gas/aarch64/msr.d gas/testsuite/gas/aarch64/msr.s gas/testsuite/gas/aarch64/neon-fp-cvt-int.d gas/testsuite/gas/aarch64/neon-fp-cvt-int.s gas/testsuite/gas/aarch64/neon-frint.d gas/testsuite/gas/aarch64/neon-frint.s gas/testsuite/gas/aarch64/neon-ins.d gas/testsuite/gas/aarch64/neon-ins.s gas/testsuite/gas/aarch64/neon-not.d gas/testsuite/gas/aarch64/neon-not.s gas/testsuite/gas/aarch64/neon-vfp-reglist-post.d gas/testsuite/gas/aarch64/neon-vfp-reglist-post.s gas/testsuite/gas/aarch64/neon-vfp-reglist.d gas/testsuite/gas/aarch64/neon-vfp-reglist.s gas/testsuite/gas/aarch64/no-aliases.d gas/testsuite/gas/aarch64/optional.d gas/testsuite/gas/aarch64/optional.s gas/testsuite/gas/aarch64/programmer-friendly.d gas/testsuite/gas/aarch64/programmer-friendly.s gas/testsuite/gas/aarch64/reloc-data.d gas/testsuite/gas/aarch64/reloc-data.s gas/testsuite/gas/aarch64/reloc-insn.d gas/testsuite/gas/aarch64/reloc-insn.s gas/testsuite/gas/aarch64/shifted.d gas/testsuite/gas/aarch64/shifted.s gas/testsuite/gas/aarch64/symbol.d gas/testsuite/gas/aarch64/symbol.s gas/testsuite/gas/aarch64/sysreg-1.d gas/testsuite/gas/aarch64/sysreg-1.s gas/testsuite/gas/aarch64/sysreg.d gas/testsuite/gas/aarch64/sysreg.s gas/testsuite/gas/aarch64/system.d gas/testsuite/gas/aarch64/system.s gas/testsuite/gas/aarch64/tlbi_op.d gas/testsuite/gas/aarch64/tlbi_op.s gas/testsuite/gas/aarch64/tls.d gas/testsuite/gas/aarch64/tls.s gas/testsuite/gas/aarch64/verbose-error.d gas/testsuite/gas/aarch64/verbose-error.l gas/testsuite/gas/aarch64/verbose-error.s gas/testsuite/gas/i386/arch-10-bdver2.d gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d gas/testsuite/gas/mips/branch-swap-2.l gas/testsuite/gas/mips/branch-swap-2.s gas/testsuite/gas/mmix/err-fb-2.s include/elf/aarch64.h include/opcode/aarch64.h ld/emulparams/aarch64elf.sh ld/emulparams/aarch64elfb.sh ld/emulparams/aarch64linux.sh ld/emulparams/aarch64linuxb.sh ld/emultempl/aarch64elf.em ld/po/uk.po ld/testsuite/ld-aarch64/aarch64-elf.exp ld/testsuite/ld-aarch64/aarch64.ld ld/testsuite/ld-aarch64/eh-frame-bar.s ld/testsuite/ld-aarch64/eh-frame-foo.s ld/testsuite/ld-aarch64/eh-frame.d ld/testsuite/ld-aarch64/emit-relocs-257-be.d ld/testsuite/ld-aarch64/emit-relocs-257.d ld/testsuite/ld-aarch64/emit-relocs-257.s ld/testsuite/ld-aarch64/emit-relocs-260-be.d ld/testsuite/ld-aarch64/emit-relocs-260.d ld/testsuite/ld-aarch64/emit-relocs-260.s ld/testsuite/ld-aarch64/emit-relocs-262.d ld/testsuite/ld-aarch64/emit-relocs-262.s ld/testsuite/ld-aarch64/emit-relocs-263.d ld/testsuite/ld-aarch64/emit-relocs-263.s ld/testsuite/ld-aarch64/emit-relocs-264.d ld/testsuite/ld-aarch64/emit-relocs-264.s ld/testsuite/ld-aarch64/emit-relocs-265.d ld/testsuite/ld-aarch64/emit-relocs-265.s ld/testsuite/ld-aarch64/emit-relocs-266.d ld/testsuite/ld-aarch64/emit-relocs-266.s ld/testsuite/ld-aarch64/emit-relocs-267.d ld/testsuite/ld-aarch64/emit-relocs-267.s ld/testsuite/ld-aarch64/emit-relocs-268.d ld/testsuite/ld-aarch64/emit-relocs-268.s ld/testsuite/ld-aarch64/emit-relocs-269.d ld/testsuite/ld-aarch64/emit-relocs-269.s ld/testsuite/ld-aarch64/emit-relocs-270-bad.d ld/testsuite/ld-aarch64/emit-relocs-270.d ld/testsuite/ld-aarch64/emit-relocs-270.s ld/testsuite/ld-aarch64/emit-relocs-271.d ld/testsuite/ld-aarch64/emit-relocs-271.s ld/testsuite/ld-aarch64/emit-relocs-272.d ld/testsuite/ld-aarch64/emit-relocs-272.s ld/testsuite/ld-aarch64/emit-relocs-273.d ld/testsuite/ld-aarch64/emit-relocs-273.s ld/testsuite/ld-aarch64/emit-relocs-274.d ld/testsuite/ld-aarch64/emit-relocs-274.s ld/testsuite/ld-aarch64/emit-relocs-275.d ld/testsuite/ld-aarch64/emit-relocs-275.s ld/testsuite/ld-aarch64/emit-relocs-276.d ld/testsuite/ld-aarch64/emit-relocs-276.s ld/testsuite/ld-aarch64/emit-relocs-277.d ld/testsuite/ld-aarch64/emit-relocs-277.s ld/testsuite/ld-aarch64/emit-relocs-278.d ld/testsuite/ld-aarch64/emit-relocs-278.s ld/testsuite/ld-aarch64/emit-relocs-279-bad.d ld/testsuite/ld-aarch64/emit-relocs-279.d ld/testsuite/ld-aarch64/emit-relocs-279.s ld/testsuite/ld-aarch64/emit-relocs-280.d ld/testsuite/ld-aarch64/emit-relocs-280.s ld/testsuite/ld-aarch64/emit-relocs-282.d ld/testsuite/ld-aarch64/emit-relocs-282.s ld/testsuite/ld-aarch64/emit-relocs-283.d ld/testsuite/ld-aarch64/emit-relocs-283.s ld/testsuite/ld-aarch64/emit-relocs-284.d ld/testsuite/ld-aarch64/emit-relocs-284.s ld/testsuite/ld-aarch64/emit-relocs-285.d ld/testsuite/ld-aarch64/emit-relocs-285.s ld/testsuite/ld-aarch64/emit-relocs-286-bad.d ld/testsuite/ld-aarch64/emit-relocs-286.d ld/testsuite/ld-aarch64/emit-relocs-286.s ld/testsuite/ld-aarch64/emit-relocs-287.d ld/testsuite/ld-aarch64/emit-relocs-287.s ld/testsuite/ld-aarch64/emit-relocs-299.d ld/testsuite/ld-aarch64/emit-relocs-299.s ld/testsuite/ld-aarch64/emit-relocs-311.d ld/testsuite/ld-aarch64/emit-relocs-311.s ld/testsuite/ld-aarch64/emit-relocs-312.d ld/testsuite/ld-aarch64/emit-relocs-312.s ld/testsuite/ld-aarch64/emit-relocs1.s ld/testsuite/ld-aarch64/farcall-b-none-function.d ld/testsuite/ld-aarch64/farcall-b-none-function.s ld/testsuite/ld-aarch64/farcall-b.d ld/testsuite/ld-aarch64/farcall-b.s ld/testsuite/ld-aarch64/farcall-back.d ld/testsuite/ld-aarch64/farcall-back.s ld/testsuite/ld-aarch64/farcall-bl-none-function.d ld/testsuite/ld-aarch64/farcall-bl-none-function.s ld/testsuite/ld-aarch64/farcall-bl.d ld/testsuite/ld-aarch64/farcall-bl.s ld/testsuite/ld-aarch64/farcall-section.d ld/testsuite/ld-aarch64/farcall-section.s ld/testsuite/ld-aarch64/limit-b.d ld/testsuite/ld-aarch64/limit-b.s ld/testsuite/ld-aarch64/limit-bl.d ld/testsuite/ld-aarch64/limit-bl.s ld/testsuite/ld-aarch64/relocs.ld ld/testsuite/ld-aarch64/tls-desc-ie.d ld/testsuite/ld-aarch64/tls-desc-ie.s ld/testsuite/ld-aarch64/tls-relax-all.d ld/testsuite/ld-aarch64/tls-relax-all.s ld/testsuite/ld-aarch64/tls-relax-gd-ie.d ld/testsuite/ld-aarch64/tls-relax-gd-ie.s ld/testsuite/ld-aarch64/tls-relax-gd-le.d ld/testsuite/ld-aarch64/tls-relax-gd-le.s ld/testsuite/ld-aarch64/tls-relax-gdesc-ie-2.d ld/testsuite/ld-aarch64/tls-relax-gdesc-ie-2.s ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.d ld/testsuite/ld-aarch64/tls-relax-gdesc-ie.s ld/testsuite/ld-aarch64/tls-relax-gdesc-le-2.d ld/testsuite/ld-aarch64/tls-relax-gdesc-le-2.s ld/testsuite/ld-aarch64/tls-relax-gdesc-le.d ld/testsuite/ld-aarch64/tls-relax-gdesc-le.s ld/testsuite/ld-aarch64/tls-relax-ie-le-2.d ld/testsuite/ld-aarch64/tls-relax-ie-le-2.s ld/testsuite/ld-aarch64/tls-relax-ie-le-3.d ld/testsuite/ld-aarch64/tls-relax-ie-le-3.s ld/testsuite/ld-aarch64/tls-relax-ie-le.d ld/testsuite/ld-aarch64/tls-relax-ie-le.s ld/testsuite/ld-aarch64/weak-undefined.d ld/testsuite/ld-aarch64/weak-undefined.s ld/testsuite/ld-mips-elf/elf-rel-got-n32-embed.d ld/testsuite/ld-mips-elf/elf-rel-got-n64-embed.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n32-embed.d ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-embed.d ld/testsuite/ld-mips-elf/export-class-call16-def.s ld/testsuite/ld-mips-elf/export-class-call16-n32.dd ld/testsuite/ld-mips-elf/export-class-call16-n32.gd ld/testsuite/ld-mips-elf/export-class-call16-n32.s ld/testsuite/ld-mips-elf/export-class-call16-n64.dd ld/testsuite/ld-mips-elf/export-class-call16-n64.gd ld/testsuite/ld-mips-elf/export-class-call16-n64.s ld/testsuite/ld-mips-elf/export-class-call16-o32-irix.dd ld/testsuite/ld-mips-elf/export-class-call16-o32.dd ld/testsuite/ld-mips-elf/export-class-call16-o32.gd ld/testsuite/ld-mips-elf/export-class-call16-o32.s ld/testsuite/ld-mips-elf/export-class-call16.ld ld/testsuite/ld-mips-elf/gp-hidden-64.rd ld/testsuite/ld-mips-elf/gp-hidden-lib-64.rd ld/testsuite/ld-mips-elf/gp-hidden-lib.rd ld/testsuite/ld-mips-elf/gp-hidden-lib.s ld/testsuite/ld-mips-elf/gp-hidden-ver-64.rd ld/testsuite/ld-mips-elf/gp-hidden-ver.rd ld/testsuite/ld-mips-elf/gp-hidden-ver.s ld/testsuite/ld-mips-elf/gp-hidden-ver.ver ld/testsuite/ld-mips-elf/gp-hidden.rd ld/testsuite/ld-mips-elf/gp-hidden.s ld/testsuite/ld-mips-elf/gp-hidden.sd opcodes/aarch64-asm-2.c opcodes/aarch64-asm.c opcodes/aarch64-asm.h opcodes/aarch64-dis-2.c opcodes/aarch64-dis.c opcodes/aarch64-dis.h opcodes/aarch64-gen.c opcodes/aarch64-opc-2.c opcodes/aarch64-opc.c opcodes/aarch64-opc.h opcodes/aarch64-tbl.h
Diffstat (limited to 'opcodes/aarch64-opc-2.c')
-rw-r--r--opcodes/aarch64-opc-2.c195
1 files changed, 195 insertions, 0 deletions
diff --git a/opcodes/aarch64-opc-2.c b/opcodes/aarch64-opc-2.c
new file mode 100644
index 00000000000..68681f6a1cf
--- /dev/null
+++ b/opcodes/aarch64-opc-2.c
@@ -0,0 +1,195 @@
+/* This file is automatically generated by aarch64-gen. Do not edit! */
+/* Copyright 2012 Free Software Foundation, Inc.
+ Contributed by ARM Ltd.
+
+ This file is part of the GNU opcodes library.
+
+ This library is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ It is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING3. If not,
+ see <http://www.gnu.org/licenses/>. */
+
+#include "sysdep.h"
+#include "aarch64-opc.h"
+
+
+const struct aarch64_operand aarch64_operands[] =
+{
+ {AARCH64_OPND_CLASS_NIL, "", 0, {0}, "<none>"},
+ {AARCH64_OPND_CLASS_INT_REG, "Rd", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rd}, "an integer register"},
+ {AARCH64_OPND_CLASS_INT_REG, "Rn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "an integer register"},
+ {AARCH64_OPND_CLASS_INT_REG, "Rm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "an integer register"},
+ {AARCH64_OPND_CLASS_INT_REG, "Rt", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "an integer register"},
+ {AARCH64_OPND_CLASS_INT_REG, "Rt2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt2}, "an integer register"},
+ {AARCH64_OPND_CLASS_INT_REG, "Rs", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rs}, "an integer register"},
+ {AARCH64_OPND_CLASS_INT_REG, "Ra", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Ra}, "an integer register"},
+ {AARCH64_OPND_CLASS_INT_REG, "Rt_SYS", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "an integer register"},
+ {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"},
+ {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"},
+ {AARCH64_OPND_CLASS_MODIFIED_REG, "Rm_EXT", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an integer register with optional extension"},
+ {AARCH64_OPND_CLASS_MODIFIED_REG, "Rm_SFT", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an integer register with optional shift"},
+ {AARCH64_OPND_CLASS_FP_REG, "Fd", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rd}, "a floating-point register"},
+ {AARCH64_OPND_CLASS_FP_REG, "Fn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "a floating-point register"},
+ {AARCH64_OPND_CLASS_FP_REG, "Fm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "a floating-point register"},
+ {AARCH64_OPND_CLASS_FP_REG, "Fa", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Ra}, "a floating-point register"},
+ {AARCH64_OPND_CLASS_FP_REG, "Ft", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "a floating-point register"},
+ {AARCH64_OPND_CLASS_FP_REG, "Ft2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt2}, "a floating-point register"},
+ {AARCH64_OPND_CLASS_SISD_REG, "Sd", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rd}, "a SIMD scalar register"},
+ {AARCH64_OPND_CLASS_SISD_REG, "Sn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "a SIMD scalar register"},
+ {AARCH64_OPND_CLASS_SISD_REG, "Sm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "a SIMD scalar register"},
+ {AARCH64_OPND_CLASS_SIMD_REG, "Vd", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rd}, "a SIMD vector register"},
+ {AARCH64_OPND_CLASS_SIMD_REG, "Vn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "a SIMD vector register"},
+ {AARCH64_OPND_CLASS_SIMD_REG, "Vm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "a SIMD vector register"},
+ {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"},
+ {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"},
+ {AARCH64_OPND_CLASS_SIMD_ELEMENT, "Ed", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rd}, "a SIMD vector element"},
+ {AARCH64_OPND_CLASS_SIMD_ELEMENT, "En", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "a SIMD vector element"},
+ {AARCH64_OPND_CLASS_SIMD_ELEMENT, "Em", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "a SIMD vector element"},
+ {AARCH64_OPND_CLASS_SIMD_REGLIST, "LVn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "a SIMD vector register list"},
+ {AARCH64_OPND_CLASS_SIMD_REGLIST, "LVt", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a SIMD vector register list"},
+ {AARCH64_OPND_CLASS_SIMD_REGLIST, "LVt_AL", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a SIMD vector register list"},
+ {AARCH64_OPND_CLASS_SIMD_REGLIST, "LEt", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a SIMD vector element list"},
+ {AARCH64_OPND_CLASS_CP_REG, "Cn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRn}, "a 4-bit opcode field named for historical reasons C0 - C15"},
+ {AARCH64_OPND_CLASS_CP_REG, "Cm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRm}, "a 4-bit opcode field named for historical reasons C0 - C15"},
+ {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"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMM_VLSL", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a left shift amount for an AdvSIMD register"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMM_VLSR", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a right shift amount for an AdvSIMD register"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "SIMD_IMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "SIMD_IMM_SFT", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an 8-bit unsigned immediate with optional shift"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "SIMD_FPIMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an 8-bit floating-point constant"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "SHLL_IMM", OPD_F_HAS_EXTRACTOR, {}, "an immediate shift amount of 8, 16 or 32"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMM0", 0, {}, "0"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "FPIMM0", 0, {}, "0.0"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "FPIMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm8}, "an 8-bit floating-point constant"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMMR", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_immr}, "the right rotate amount"},
+ {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"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "WIDTH", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6}, "the width of the bit-field"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6}, "an immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "UIMM3_OP1", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_op1}, "a 3-bit unsigned immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "UIMM3_OP2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_op2}, "a 3-bit unsigned immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "UIMM4", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRm}, "a 4-bit unsigned immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "UIMM7", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRm, FLD_op2}, "a 7-bit unsigned immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "BIT_NUM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_b5, FLD_b40}, "the bit number to be tested"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "EXCEPTION", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm16}, "a 16-bit unsigned immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "CCMP_IMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm5}, "a 5-bit unsigned immediate"},
+ {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"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "LIMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_N,FLD_immr,FLD_imms}, "Logical immediate"},
+ {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"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "HALF", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm16}, "a 16-bit immediate with optional left shift"},
+ {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"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMM_MOV", 0, {}, "an immediate"},
+ {AARCH64_OPND_CLASS_NIL, "COND", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a condition"},
+ {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"},
+ {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"},
+ {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"},
+ {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"},
+ {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"},
+ {AARCH64_OPND_CLASS_ADDRESS, "ADDR_SIMPLE", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an address with base register (no offset)"},
+ {AARCH64_OPND_CLASS_ADDRESS, "ADDR_REGOFF", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an address with register offset"},
+ {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"},
+ {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"},
+ {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"},
+ {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"},
+ {AARCH64_OPND_CLASS_ADDRESS, "SIMD_ADDR_SIMPLE", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an address with base register (no offset)"},
+ {AARCH64_OPND_CLASS_ADDRESS, "SIMD_ADDR_POST", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a post-indexed address with immediate or register increment"},
+ {AARCH64_OPND_CLASS_SYSTEM, "SYSREG", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a system register"},
+ {AARCH64_OPND_CLASS_SYSTEM, "PSTATEFIELD", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a PSTATE field name"},
+ {AARCH64_OPND_CLASS_SYSTEM, "SYSREG_AT", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an address translation operation specifier"},
+ {AARCH64_OPND_CLASS_SYSTEM, "SYSREG_DC", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a data cache maintenance operation specifier"},
+ {AARCH64_OPND_CLASS_SYSTEM, "SYSREG_IC", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an instructin cache maintenance operation specifier"},
+ {AARCH64_OPND_CLASS_SYSTEM, "SYSREG_TLBI", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a TBL invalidation operation specifier"},
+ {AARCH64_OPND_CLASS_SYSTEM, "BARRIER", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a barrier option name"},
+ {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"},
+ {AARCH64_OPND_CLASS_SYSTEM, "PRFOP", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an prefetch operation specifier"},
+ {AARCH64_OPND_CLASS_NIL, "", 0, {0}, "DUMMY"},
+};
+
+/* Indexed by an enum aarch64_op enumerator, the value is the offset of
+ the corresponding aarch64_opcode entry in the aarch64_opcode_table. */
+
+static const unsigned op_enum_table [] =
+{
+ 0,
+ 648,
+ 649,
+ 650,
+ 653,
+ 654,
+ 655,
+ 656,
+ 657,
+ 651,
+ 652,
+ 658,
+ 659,
+ 681,
+ 682,
+ 685,
+ 691,
+ 692,
+ 695,
+ 697,
+ 698,
+ 687,
+ 688,
+ 701,
+ 703,
+ 741,
+ 742,
+ 743,
+ 744,
+ 12,
+ 506,
+ 507,
+ 764,
+ 766,
+ 768,
+ 748,
+ 767,
+ 765,
+ 259,
+ 495,
+ 505,
+ 504,
+ 746,
+ 501,
+ 498,
+ 491,
+ 490,
+ 497,
+ 500,
+ 502,
+ 503,
+ 756,
+ 125,
+ 522,
+ 525,
+ 528,
+ 523,
+ 526,
+ 614,
+ 160,
+ 161,
+ 162,
+ 163,
+ 416,
+ 583,
+};
+
+/* Given the opcode enumerator OP, return the pointer to the corresponding
+ opcode entry. */
+
+const aarch64_opcode *
+aarch64_get_opcode (enum aarch64_op op)
+{
+ return aarch64_opcode_table + op_enum_table[op];
+}