Annotation of src/external/gpl3/binutils/dist/opcodes/aarch64-dis.h, Revision 1.1.1.1.4.2
1.1.1.1.4.2! yamt 1: /* aarch64-dis.h -- Header file for aarch64-dis.c and aarch64-dis-2.c.
! 2: Copyright 2012 Free Software Foundation, Inc.
! 3: Contributed by ARM Ltd.
! 4:
! 5: This file is part of the GNU opcodes library.
! 6:
! 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)
! 10: any later version.
! 11:
! 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.
! 16:
! 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/>. */
! 20:
! 21: #ifndef OPCODES_AARCH64_DIS_H
! 22: #define OPCODES_AARCH64_DIS_H
! 23: #include "bfd_stdint.h"
! 24: #include "aarch64-opc.h"
! 25:
! 26: /* Lookup opcode WORD in the opcode table.
! 27:
! 28: In the case of multiple aarch64_opcode candidates, one of them will be
! 29: returned; for other candidate(s), call aarch64_find_next_opcode to
! 30: obtain. Note that aarch64_find_next_opcode finds the next
! 31: aarch64_opcode candidate in a way as if all related aarch64_opcode
! 32: entries were in a single-link list.
! 33:
! 34: N.B. all alias opcodes are ignored here. */
! 35:
! 36: const aarch64_opcode* aarch64_opcode_lookup (uint32_t);
! 37: const aarch64_opcode* aarch64_find_next_opcode (const aarch64_opcode *);
! 38:
! 39: /* Given OPCODE, return its alias, e.g. given UBFM, return LSL.
! 40:
! 41: In the case of multiple alias candidates, the one of the highest priority
! 42: (or one of several aliases of the same highest priority) will be
! 43: returned; for the other candidate(s), call aarch64_find_next_alias_opcode
! 44: to obtain. Note that aarch64_find_next_alias_opcode finds the next
! 45: alias candidate in a way as if all related aliases were in a single-link
! 46: list with priority from the highest to the least. */
! 47:
! 48: const aarch64_opcode* aarch64_find_alias_opcode (const aarch64_opcode *);
! 49: const aarch64_opcode* aarch64_find_next_alias_opcode (const aarch64_opcode *);
! 50:
! 51: /* Switch-table-based high-level operand extractor. */
! 52:
! 53: int aarch64_extract_operand (const aarch64_operand *, aarch64_opnd_info *,
! 54: const aarch64_insn, const aarch64_inst *);
! 55:
! 56: /* Operand extractors. */
! 57:
! 58: #define AARCH64_DECL_OPD_EXTRACTOR(x) \
! 59: int aarch64_##x (const aarch64_operand *, aarch64_opnd_info *, \
! 60: const aarch64_insn, const aarch64_inst *)
! 61:
! 62: AARCH64_DECL_OPD_EXTRACTOR (ext_regno);
! 63: AARCH64_DECL_OPD_EXTRACTOR (ext_regrt_sysins);
! 64: AARCH64_DECL_OPD_EXTRACTOR (ext_reglane);
! 65: AARCH64_DECL_OPD_EXTRACTOR (ext_reglist);
! 66: AARCH64_DECL_OPD_EXTRACTOR (ext_ldst_reglist);
! 67: AARCH64_DECL_OPD_EXTRACTOR (ext_ldst_reglist_r);
! 68: AARCH64_DECL_OPD_EXTRACTOR (ext_ldst_elemlist);
! 69: AARCH64_DECL_OPD_EXTRACTOR (ext_advsimd_imm_shift);
! 70: AARCH64_DECL_OPD_EXTRACTOR (ext_shll_imm);
! 71: AARCH64_DECL_OPD_EXTRACTOR (ext_imm);
! 72: AARCH64_DECL_OPD_EXTRACTOR (ext_imm_half);
! 73: AARCH64_DECL_OPD_EXTRACTOR (ext_advsimd_imm_modified);
! 74: AARCH64_DECL_OPD_EXTRACTOR (ext_fbits);
! 75: AARCH64_DECL_OPD_EXTRACTOR (ext_aimm);
! 76: AARCH64_DECL_OPD_EXTRACTOR (ext_limm);
! 77: AARCH64_DECL_OPD_EXTRACTOR (ext_ft);
! 78: AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simple);
! 79: AARCH64_DECL_OPD_EXTRACTOR (ext_addr_regoff);
! 80: AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simm);
! 81: AARCH64_DECL_OPD_EXTRACTOR (ext_addr_uimm12);
! 82: AARCH64_DECL_OPD_EXTRACTOR (ext_simd_addr_post);
! 83: AARCH64_DECL_OPD_EXTRACTOR (ext_cond);
! 84: AARCH64_DECL_OPD_EXTRACTOR (ext_sysreg);
! 85: AARCH64_DECL_OPD_EXTRACTOR (ext_pstatefield);
! 86: AARCH64_DECL_OPD_EXTRACTOR (ext_sysins_op);
! 87: AARCH64_DECL_OPD_EXTRACTOR (ext_barrier);
! 88: AARCH64_DECL_OPD_EXTRACTOR (ext_prfop);
! 89: AARCH64_DECL_OPD_EXTRACTOR (ext_reg_extended);
! 90: AARCH64_DECL_OPD_EXTRACTOR (ext_reg_shifted);
! 91:
! 92: #undef AARCH64_DECL_OPD_EXTRACTOR
! 93:
! 94: #endif /* OPCODES_AARCH64_DIS_H */
CVSweb <webmaster@jp.NetBSD.org>