Rizin
unix-like reverse engineering framework and cli tools
aarch64-dis.h File Reference
#include "aarch64-opc.h"

Go to the source code of this file.

Macros

#define AARCH64_DECL_OPD_EXTRACTOR(x)
 

Functions

const aarch64_opcodeaarch64_opcode_lookup (uint32_t)
 
const aarch64_opcodeaarch64_find_next_opcode (const aarch64_opcode *)
 
const aarch64_opcodeaarch64_find_alias_opcode (const aarch64_opcode *)
 
const aarch64_opcodeaarch64_find_next_alias_opcode (const aarch64_opcode *)
 
bfd_boolean aarch64_extract_operand (const aarch64_operand *, aarch64_opnd_info *, const aarch64_insn, const aarch64_inst *, aarch64_operand_error *)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_regno)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_regno_pair)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_regrt_sysins)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_reglane)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_reglist)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_ldst_reglist)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_ldst_reglist_r)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_ldst_elemlist)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_advsimd_imm_shift)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_shll_imm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_imm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_imm_half)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_advsimd_imm_modified)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_fpimm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_fbits)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_aimm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_limm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_inv_limm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_ft)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simple)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_offset)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_regoff)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simm10)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_uimm12)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_simd_addr_post)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_cond)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sysreg)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_pstatefield)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sysins_op)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_barrier)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_hint)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_prfop)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_reg_extended)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_reg_shifted)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_ri_s4)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_ri_s4xvl)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_ri_s6xvl)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_ri_s9xvl)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_ri_u6)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_rr_lsl)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_rz_xtw)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_zi_u5)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_zz_lsl)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_zz_sxtw)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_addr_zz_uxtw)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_aimm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_asimm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_float_half_one)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_float_half_two)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_float_zero_one)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_index)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_limm_mov)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_quad_index)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_reglist)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_scale)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_shlimm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_sve_shrimm)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_imm_rotate1)
 
 AARCH64_DECL_OPD_EXTRACTOR (ext_imm_rotate2)
 

Macro Definition Documentation

◆ AARCH64_DECL_OPD_EXTRACTOR

#define AARCH64_DECL_OPD_EXTRACTOR (   x)
Value:
const aarch64_insn, const aarch64_inst *, \
uint32_t aarch64_insn
Definition: aarch64.h:40
int x
Definition: mipsasm.c:20
int bfd_boolean
Definition: mybfd.h:98

Definition at line 63 of file aarch64-dis.h.

Function Documentation

◆ AARCH64_DECL_OPD_EXTRACTOR() [1/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_addr_offset  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [2/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_addr_regoff  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [3/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_addr_simm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [4/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_addr_simm10  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [5/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_addr_simple  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [6/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_addr_uimm12  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [7/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_advsimd_imm_modified  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [8/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_advsimd_imm_shift  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [9/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_aimm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [10/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_barrier  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [11/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_cond  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [12/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_fbits  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [13/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_fpimm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [14/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_ft  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [15/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_hint  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [16/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_imm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [17/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_imm_half  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [18/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_imm_rotate1  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [19/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_imm_rotate2  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [20/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_inv_limm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [21/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_ldst_elemlist  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [22/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_ldst_reglist  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [23/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_ldst_reglist_r  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [24/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_limm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [25/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_prfop  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [26/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_pstatefield  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [27/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_reg_extended  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [28/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_reg_shifted  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [29/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_reglane  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [30/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_reglist  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [31/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_regno  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [32/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_regno_pair  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [33/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_regrt_sysins  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [34/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_shll_imm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [35/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_simd_addr_post  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [36/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_ri_s4  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [37/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_ri_s4xvl  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [38/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_ri_s6xvl  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [39/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_ri_s9xvl  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [40/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_ri_u6  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [41/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_rr_lsl  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [42/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_rz_xtw  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [43/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_zi_u5  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [44/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_zz_lsl  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [45/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_zz_sxtw  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [46/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_addr_zz_uxtw  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [47/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_aimm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [48/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_asimm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [49/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_float_half_one  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [50/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_float_half_two  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [51/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_float_zero_one  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [52/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_index  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [53/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_limm_mov  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [54/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_quad_index  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [55/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_reglist  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [56/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_scale  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [57/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_shlimm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [58/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sve_shrimm  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [59/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sysins_op  )

◆ AARCH64_DECL_OPD_EXTRACTOR() [60/60]

AARCH64_DECL_OPD_EXTRACTOR ( ext_sysreg  )

◆ aarch64_extract_operand()

bfd_boolean aarch64_extract_operand ( const aarch64_operand self,
aarch64_opnd_info info,
const  aarch64_insn,
const aarch64_inst inst,
aarch64_operand_error errors 
)

Definition at line 19718 of file aarch64-dis-2.c.

19722 {
19723  /* Use the index as the key. */
19724  int key = self - aarch64_operands;
19725  switch (key)
19726  {
19727  case 1:
19728  case 2:
19729  case 3:
19730  case 4:
19731  case 5:
19732  case 6:
19733  case 7:
19734  case 9:
19735  case 10:
19736  case 11:
19737  case 15:
19738  case 16:
19739  case 17:
19740  case 18:
19741  case 20:
19742  case 21:
19743  case 22:
19744  case 23:
19745  case 24:
19746  case 25:
19747  case 26:
19748  case 27:
19749  case 28:
19750  case 29:
19751  case 153:
19752  case 154:
19753  case 155:
19754  case 156:
19755  case 157:
19756  case 158:
19757  case 159:
19758  case 160:
19759  case 161:
19760  case 162:
19761  case 175:
19762  case 176:
19763  case 177:
19764  case 178:
19765  case 179:
19766  case 180:
19767  case 181:
19768  case 182:
19769  case 183:
19770  case 187:
19771  case 190:
19772  return aarch64_ext_regno (self, info, code, inst, errors);
19773  case 8:
19774  return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
19775  case 12:
19776  return aarch64_ext_regno_pair (self, info, code, inst, errors);
19777  case 13:
19778  return aarch64_ext_reg_extended (self, info, code, inst, errors);
19779  case 14:
19780  return aarch64_ext_reg_shifted (self, info, code, inst, errors);
19781  case 19:
19782  return aarch64_ext_ft (self, info, code, inst, errors);
19783  case 30:
19784  case 31:
19785  case 32:
19786  case 33:
19787  case 192:
19788  return aarch64_ext_reglane (self, info, code, inst, errors);
19789  case 34:
19790  return aarch64_ext_reglist (self, info, code, inst, errors);
19791  case 35:
19792  return aarch64_ext_ldst_reglist (self, info, code, inst, errors);
19793  case 36:
19794  return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors);
19795  case 37:
19796  return aarch64_ext_ldst_elemlist (self, info, code, inst, errors);
19797  case 38:
19798  case 39:
19799  case 40:
19800  case 41:
19801  case 51:
19802  case 52:
19803  case 53:
19804  case 54:
19805  case 55:
19806  case 56:
19807  case 57:
19808  case 58:
19809  case 59:
19810  case 60:
19811  case 61:
19812  case 62:
19813  case 63:
19814  case 64:
19815  case 75:
19816  case 76:
19817  case 77:
19818  case 78:
19819  case 79:
19820  case 150:
19821  case 152:
19822  case 167:
19823  case 168:
19824  case 169:
19825  case 170:
19826  case 171:
19827  case 172:
19828  case 173:
19829  case 174:
19830  return aarch64_ext_imm (self, info, code, inst, errors);
19831  case 42:
19832  case 43:
19833  return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors);
19834  case 44:
19835  case 45:
19836  case 46:
19837  return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors);
19838  case 47:
19839  return aarch64_ext_shll_imm (self, info, code, inst, errors);
19840  case 50:
19841  case 141:
19842  return aarch64_ext_fpimm (self, info, code, inst, errors);
19843  case 65:
19844  case 148:
19845  return aarch64_ext_limm (self, info, code, inst, errors);
19846  case 66:
19847  return aarch64_ext_aimm (self, info, code, inst, errors);
19848  case 67:
19849  return aarch64_ext_imm_half (self, info, code, inst, errors);
19850  case 68:
19851  return aarch64_ext_fbits (self, info, code, inst, errors);
19852  case 70:
19853  case 71:
19854  case 146:
19855  return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
19856  case 72:
19857  case 145:
19858  return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
19859  case 73:
19860  case 74:
19861  return aarch64_ext_cond (self, info, code, inst, errors);
19862  case 80:
19863  case 87:
19864  return aarch64_ext_addr_simple (self, info, code, inst, errors);
19865  case 81:
19866  return aarch64_ext_addr_regoff (self, info, code, inst, errors);
19867  case 82:
19868  case 83:
19869  case 84:
19870  return aarch64_ext_addr_simm (self, info, code, inst, errors);
19871  case 85:
19872  return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
19873  case 86:
19874  return aarch64_ext_addr_uimm12 (self, info, code, inst, errors);
19875  case 88:
19876  return aarch64_ext_addr_offset (self, info, code, inst, errors);
19877  case 89:
19878  return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
19879  case 90:
19880  return aarch64_ext_sysreg (self, info, code, inst, errors);
19881  case 91:
19882  return aarch64_ext_pstatefield (self, info, code, inst, errors);
19883  case 92:
19884  case 93:
19885  case 94:
19886  case 95:
19887  return aarch64_ext_sysins_op (self, info, code, inst, errors);
19888  case 96:
19889  case 97:
19890  return aarch64_ext_barrier (self, info, code, inst, errors);
19891  case 98:
19892  return aarch64_ext_prfop (self, info, code, inst, errors);
19893  case 99:
19894  return aarch64_ext_hint (self, info, code, inst, errors);
19895  case 100:
19896  return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
19897  case 101:
19898  case 102:
19899  case 103:
19900  case 104:
19901  return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
19902  case 105:
19903  return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
19904  case 106:
19905  return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
19906  case 107:
19907  case 108:
19908  case 109:
19909  case 110:
19910  return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
19911  case 111:
19912  case 112:
19913  case 113:
19914  case 114:
19915  case 115:
19916  case 116:
19917  case 117:
19918  case 118:
19919  case 119:
19920  case 120:
19921  case 121:
19922  case 122:
19923  case 123:
19924  return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
19925  case 124:
19926  case 125:
19927  case 126:
19928  case 127:
19929  case 128:
19930  case 129:
19931  case 130:
19932  case 131:
19933  return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
19934  case 132:
19935  case 133:
19936  case 134:
19937  case 135:
19938  return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
19939  case 136:
19940  return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
19941  case 137:
19942  return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
19943  case 138:
19944  return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
19945  case 139:
19946  return aarch64_ext_sve_aimm (self, info, code, inst, errors);
19947  case 140:
19948  return aarch64_ext_sve_asimm (self, info, code, inst, errors);
19949  case 142:
19950  return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
19951  case 143:
19952  return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
19953  case 144:
19954  return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors);
19955  case 147:
19956  return aarch64_ext_inv_limm (self, info, code, inst, errors);
19957  case 149:
19958  return aarch64_ext_sve_limm_mov (self, info, code, inst, errors);
19959  case 151:
19960  return aarch64_ext_sve_scale (self, info, code, inst, errors);
19961  case 163:
19962  case 164:
19963  return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
19964  case 165:
19965  case 166:
19966  return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
19967  case 184:
19968  case 185:
19969  case 186:
19970  return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
19971  case 188:
19972  return aarch64_ext_sve_index (self, info, code, inst, errors);
19973  case 189:
19974  case 191:
19975  return aarch64_ext_sve_reglist (self, info, code, inst, errors);
19976  default: assert (0); abort ();
19977  }
19978 }
bfd_boolean aarch64_ext_sve_addr_ri_s4(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1495
bfd_boolean aarch64_ext_ft(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:948
bfd_boolean aarch64_ext_prfop(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1295
bfd_boolean aarch64_ext_shll_imm(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:637
bfd_boolean aarch64_ext_sve_addr_ri_u6(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1508
bfd_boolean aarch64_ext_addr_simm(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1070
bfd_boolean aarch64_ext_imm_rotate2(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:791
bfd_boolean aarch64_ext_reg_shifted(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1370
bfd_boolean aarch64_ext_imm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:659
bfd_boolean aarch64_ext_sve_limm_mov(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors)
Definition: aarch64-dis.c:1754
bfd_boolean aarch64_ext_sve_scale(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors)
Definition: aarch64-dis.c:1798
bfd_boolean aarch64_ext_fpimm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:766
bfd_boolean aarch64_ext_sve_shlimm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors)
Definition: aarch64-dis.c:1826
bfd_boolean aarch64_ext_sysins_op(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1240
bfd_boolean aarch64_ext_sve_addr_ri_s9xvl(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1460
bfd_boolean aarch64_ext_sve_aimm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors)
Definition: aarch64-dis.c:1662
bfd_boolean aarch64_ext_imm_half(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors)
Definition: aarch64-dis.c:683
bfd_boolean aarch64_ext_addr_regoff(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1026
bfd_boolean aarch64_ext_regno_pair(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code ATTRIBUTE_UNUSED, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:272
bfd_boolean aarch64_ext_sve_float_zero_one(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1717
bfd_boolean aarch64_ext_aimm(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:816
bfd_boolean aarch64_ext_addr_offset(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1003
bfd_boolean aarch64_ext_advsimd_imm_modified(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:697
bfd_boolean aarch64_ext_addr_simple(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:989
bfd_boolean aarch64_ext_advsimd_imm_shift(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:573
bfd_boolean aarch64_ext_fbits(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:804
bfd_boolean aarch64_ext_sve_float_half_two(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1701
bfd_boolean aarch64_ext_sysreg(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1194
bfd_boolean aarch64_ext_sve_addr_zi_u5(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1573
bfd_boolean aarch64_ext_simd_addr_post(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1146
bfd_boolean aarch64_ext_sve_asimm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors)
Definition: aarch64-dis.c:1673
bfd_boolean aarch64_ext_inv_limm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors)
Definition: aarch64-dis.c:934
bfd_boolean aarch64_ext_sve_addr_rz_xtw(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1549
bfd_boolean aarch64_ext_reg_extended(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1336
bfd_boolean aarch64_ext_sve_addr_rr_lsl(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1521
bfd_boolean aarch64_ext_reglane(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:304
bfd_boolean aarch64_ext_sve_float_half_one(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1685
bfd_boolean aarch64_ext_addr_uimm12(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1106
bfd_boolean aarch64_ext_sve_index(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1735
bfd_boolean aarch64_ext_regno(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:262
bfd_boolean aarch64_ext_sve_shrimm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors)
Definition: aarch64-dis.c:1840
bfd_boolean aarch64_ext_sve_addr_zz_lsl(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1607
bfd_boolean aarch64_ext_addr_simm10(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1123
bfd_boolean aarch64_ext_cond(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1180
bfd_boolean aarch64_ext_sve_addr_zz_sxtw(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1619
bfd_boolean aarch64_ext_sve_reglist(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1784
bfd_boolean aarch64_ext_pstatefield(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1223
bfd_boolean aarch64_ext_barrier(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1280
bfd_boolean aarch64_ext_limm(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:918
bfd_boolean aarch64_ext_regrt_sysins(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:285
bfd_boolean aarch64_ext_hint(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1309
bfd_boolean aarch64_ext_ldst_elemlist(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:503
bfd_boolean aarch64_ext_ldst_reglist_r(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:476
bfd_boolean aarch64_ext_sve_quad_index(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1768
bfd_boolean aarch64_ext_sve_addr_zz_uxtw(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1631
bfd_boolean aarch64_ext_sve_addr_ri_s4xvl(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1425
bfd_boolean aarch64_ext_reglist(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:417
bfd_boolean aarch64_ext_sve_addr_ri_s6xvl(const aarch64_operand *self, aarch64_opnd_info *info, aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:1442
bfd_boolean aarch64_ext_ldst_reglist(const aarch64_operand *self ATTRIBUTE_UNUSED, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:431
bfd_boolean aarch64_ext_imm_rotate1(const aarch64_operand *self, aarch64_opnd_info *info, const aarch64_insn code, const aarch64_inst *inst ATTRIBUTE_UNUSED, aarch64_operand_error *errors ATTRIBUTE_UNUSED)
Definition: aarch64-dis.c:778
const struct aarch64_operand aarch64_operands[]
Definition: aarch64-opc-2.c:28
RzBinInfo * info(RzBinFile *bf)
Definition: bin_ne.c:86
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len key
Definition: sflib.h:118
assert(limit<=UINT32_MAX/2)
Definition: inftree9.h:24

References aarch64_ext_addr_offset(), aarch64_ext_addr_regoff(), aarch64_ext_addr_simm(), aarch64_ext_addr_simm10(), aarch64_ext_addr_simple(), aarch64_ext_addr_uimm12(), aarch64_ext_advsimd_imm_modified(), aarch64_ext_advsimd_imm_shift(), aarch64_ext_aimm(), aarch64_ext_barrier(), aarch64_ext_cond(), aarch64_ext_fbits(), aarch64_ext_fpimm(), aarch64_ext_ft(), aarch64_ext_hint(), aarch64_ext_imm(), aarch64_ext_imm_half(), aarch64_ext_imm_rotate1(), aarch64_ext_imm_rotate2(), aarch64_ext_inv_limm(), aarch64_ext_ldst_elemlist(), aarch64_ext_ldst_reglist(), aarch64_ext_ldst_reglist_r(), aarch64_ext_limm(), aarch64_ext_prfop(), aarch64_ext_pstatefield(), aarch64_ext_reg_extended(), aarch64_ext_reg_shifted(), aarch64_ext_reglane(), aarch64_ext_reglist(), aarch64_ext_regno(), aarch64_ext_regno_pair(), aarch64_ext_regrt_sysins(), aarch64_ext_shll_imm(), aarch64_ext_simd_addr_post(), aarch64_ext_sve_addr_ri_s4(), aarch64_ext_sve_addr_ri_s4xvl(), aarch64_ext_sve_addr_ri_s6xvl(), aarch64_ext_sve_addr_ri_s9xvl(), aarch64_ext_sve_addr_ri_u6(), aarch64_ext_sve_addr_rr_lsl(), aarch64_ext_sve_addr_rz_xtw(), aarch64_ext_sve_addr_zi_u5(), aarch64_ext_sve_addr_zz_lsl(), aarch64_ext_sve_addr_zz_sxtw(), aarch64_ext_sve_addr_zz_uxtw(), aarch64_ext_sve_aimm(), aarch64_ext_sve_asimm(), aarch64_ext_sve_float_half_one(), aarch64_ext_sve_float_half_two(), aarch64_ext_sve_float_zero_one(), aarch64_ext_sve_index(), aarch64_ext_sve_limm_mov(), aarch64_ext_sve_quad_index(), aarch64_ext_sve_reglist(), aarch64_ext_sve_scale(), aarch64_ext_sve_shlimm(), aarch64_ext_sve_shrimm(), aarch64_ext_sysins_op(), aarch64_ext_sysreg(), aarch64_operands, assert(), info(), and key.

Referenced by aarch64_opcode_decode().

◆ aarch64_find_alias_opcode()

const aarch64_opcode* aarch64_find_alias_opcode ( const aarch64_opcode opcode)

Definition at line 19394 of file aarch64-dis-2.c.

19395 {
19396  /* Use the index as the key to locate the alias opcode. */
19397  int key = opcode - aarch64_opcode_table;
19398  int value;
19399  switch (key)
19400  {
19401  case 2: value = 3; break; /* sbc --> ngc. */
19402  case 4: value = 5; break; /* sbcs --> ngcs. */
19403  case 7: value = 8; break; /* adds --> cmn. */
19404  case 10: value = 11; break; /* subs --> cmp. */
19405  case 12: value = 13; break; /* add --> mov. */
19406  case 14: value = 15; break; /* adds --> cmn. */
19407  case 17: value = 18; break; /* subs --> cmp. */
19408  case 20: value = 21; break; /* adds --> cmn. */
19409  case 22: value = 23; break; /* sub --> neg. */
19410  case 24: value = 25; break; /* subs --> cmp. */
19411  case 150: value = 151; break; /* umov --> mov. */
19412  case 152: value = 153; break; /* ins --> mov. */
19413  case 154: value = 155; break; /* ins --> mov. */
19414  case 236: value = 237; break; /* not --> mvn. */
19415  case 311: value = 312; break; /* orr --> mov. */
19416  case 382: value = 383; break; /* sshll --> sxtl. */
19417  case 384: value = 385; break; /* sshll2 --> sxtl2. */
19418  case 406: value = 407; break; /* ushll --> uxtl. */
19419  case 408: value = 409; break; /* ushll2 --> uxtl2. */
19420  case 529: value = 530; break; /* dup --> mov. */
19421  case 612: value = 617; break; /* sbfm --> sxtw. */
19422  case 619: value = 621; break; /* bfm --> bfc. */
19423  case 623: value = 627; break; /* ubfm --> uxth. */
19424  case 657: value = 659; break; /* csinc --> cset. */
19425  case 660: value = 662; break; /* csinv --> csetm. */
19426  case 663: value = 664; break; /* csneg --> cneg. */
19427  case 682: value = 682; break; /* rev --> rev. */
19428  case 707: value = 708; break; /* lslv --> lsl. */
19429  case 709: value = 710; break; /* lsrv --> lsr. */
19430  case 711: value = 712; break; /* asrv --> asr. */
19431  case 713: value = 714; break; /* rorv --> ror. */
19432  case 724: value = 725; break; /* madd --> mul. */
19433  case 726: value = 727; break; /* msub --> mneg. */
19434  case 728: value = 729; break; /* smaddl --> smull. */
19435  case 730: value = 731; break; /* smsubl --> smnegl. */
19436  case 733: value = 734; break; /* umaddl --> umull. */
19437  case 735: value = 736; break; /* umsubl --> umnegl. */
19438  case 746: value = 747; break; /* extr --> ror. */
19439  case 959: value = 960; break; /* and --> bic. */
19440  case 961: value = 962; break; /* orr --> mov. */
19441  case 964: value = 965; break; /* ands --> tst. */
19442  case 968: value = 970; break; /* orr --> uxtw. */
19443  case 971: value = 972; break; /* orn --> mvn. */
19444  case 975: value = 976; break; /* ands --> tst. */
19445  case 1006: value = 1102; break; /* ldaddb --> staddb. */
19446  case 1007: value = 1103; break; /* ldaddh --> staddh. */
19447  case 1008: value = 1104; break; /* ldadd --> stadd. */
19448  case 1010: value = 1105; break; /* ldaddlb --> staddlb. */
19449  case 1013: value = 1106; break; /* ldaddlh --> staddlh. */
19450  case 1016: value = 1107; break; /* ldaddl --> staddl. */
19451  case 1018: value = 1108; break; /* ldclrb --> stclrb. */
19452  case 1019: value = 1109; break; /* ldclrh --> stclrh. */
19453  case 1020: value = 1110; break; /* ldclr --> stclr. */
19454  case 1022: value = 1111; break; /* ldclrlb --> stclrlb. */
19455  case 1025: value = 1112; break; /* ldclrlh --> stclrlh. */
19456  case 1028: value = 1113; break; /* ldclrl --> stclrl. */
19457  case 1030: value = 1114; break; /* ldeorb --> steorb. */
19458  case 1031: value = 1115; break; /* ldeorh --> steorh. */
19459  case 1032: value = 1116; break; /* ldeor --> steor. */
19460  case 1034: value = 1117; break; /* ldeorlb --> steorlb. */
19461  case 1037: value = 1118; break; /* ldeorlh --> steorlh. */
19462  case 1040: value = 1119; break; /* ldeorl --> steorl. */
19463  case 1042: value = 1120; break; /* ldsetb --> stsetb. */
19464  case 1043: value = 1121; break; /* ldseth --> stseth. */
19465  case 1044: value = 1122; break; /* ldset --> stset. */
19466  case 1046: value = 1123; break; /* ldsetlb --> stsetlb. */
19467  case 1049: value = 1124; break; /* ldsetlh --> stsetlh. */
19468  case 1052: value = 1125; break; /* ldsetl --> stsetl. */
19469  case 1054: value = 1126; break; /* ldsmaxb --> stsmaxb. */
19470  case 1055: value = 1127; break; /* ldsmaxh --> stsmaxh. */
19471  case 1056: value = 1128; break; /* ldsmax --> stsmax. */
19472  case 1058: value = 1129; break; /* ldsmaxlb --> stsmaxlb. */
19473  case 1061: value = 1130; break; /* ldsmaxlh --> stsmaxlh. */
19474  case 1064: value = 1131; break; /* ldsmaxl --> stsmaxl. */
19475  case 1066: value = 1132; break; /* ldsminb --> stsminb. */
19476  case 1067: value = 1133; break; /* ldsminh --> stsminh. */
19477  case 1068: value = 1134; break; /* ldsmin --> stsmin. */
19478  case 1070: value = 1135; break; /* ldsminlb --> stsminlb. */
19479  case 1073: value = 1136; break; /* ldsminlh --> stsminlh. */
19480  case 1076: value = 1137; break; /* ldsminl --> stsminl. */
19481  case 1078: value = 1138; break; /* ldumaxb --> stumaxb. */
19482  case 1079: value = 1139; break; /* ldumaxh --> stumaxh. */
19483  case 1080: value = 1140; break; /* ldumax --> stumax. */
19484  case 1082: value = 1141; break; /* ldumaxlb --> stumaxlb. */
19485  case 1085: value = 1142; break; /* ldumaxlh --> stumaxlh. */
19486  case 1088: value = 1143; break; /* ldumaxl --> stumaxl. */
19487  case 1090: value = 1144; break; /* lduminb --> stuminb. */
19488  case 1091: value = 1145; break; /* lduminh --> stuminh. */
19489  case 1092: value = 1146; break; /* ldumin --> stumin. */
19490  case 1094: value = 1147; break; /* lduminlb --> stuminlb. */
19491  case 1097: value = 1148; break; /* lduminlh --> stuminlh. */
19492  case 1100: value = 1149; break; /* lduminl --> stuminl. */
19493  case 1150: value = 1151; break; /* movn --> mov. */
19494  case 1152: value = 1153; break; /* movz --> mov. */
19495  case 1158: value = 1194; break; /* hint --> autibsp. */
19496  case 1174: value = 1176; break; /* dsb --> pssbb. */
19497  case 1179: value = 1183; break; /* sys --> tlbi. */
19498  case 1242: value = 1992; break; /* and --> bic. */
19499  case 1244: value = 1225; break; /* and --> mov. */
19500  case 1245: value = 1229; break; /* ands --> movs. */
19501  case 1280: value = 1993; break; /* cmpge --> cmple. */
19502  case 1283: value = 1996; break; /* cmpgt --> cmplt. */
19503  case 1285: value = 1994; break; /* cmphi --> cmplo. */
19504  case 1288: value = 1995; break; /* cmphs --> cmpls. */
19505  case 1310: value = 1222; break; /* cpy --> mov. */
19506  case 1311: value = 1224; break; /* cpy --> mov. */
19507  case 1312: value = 2003; break; /* cpy --> fmov. */
19508  case 1324: value = 1217; break; /* dup --> mov. */
19509  case 1325: value = 1219; break; /* dup --> mov. */
19510  case 1326: value = 2002; break; /* dup --> fmov. */
19511  case 1327: value = 1220; break; /* dupm --> mov. */
19512  case 1329: value = 1997; break; /* eor --> eon. */
19513  case 1331: value = 1230; break; /* eor --> not. */
19514  case 1332: value = 1231; break; /* eors --> nots. */
19515  case 1337: value = 1998; break; /* facge --> facle. */
19516  case 1338: value = 1999; break; /* facgt --> faclt. */
19517  case 1351: value = 2000; break; /* fcmge --> fcmle. */
19518  case 1353: value = 2001; break; /* fcmgt --> fcmlt. */
19519  case 1359: value = 1214; break; /* fcpy --> fmov. */
19520  case 1382: value = 1213; break; /* fdup --> fmov. */
19521  case 1713: value = 1215; break; /* orr --> mov. */
19522  case 1714: value = 2004; break; /* orr --> orn. */
19523  case 1716: value = 1218; break; /* orr --> mov. */
19524  case 1717: value = 1228; break; /* orrs --> movs. */
19525  case 1779: value = 1223; break; /* sel --> mov. */
19526  case 1780: value = 1226; break; /* sel --> mov. */
19527  default: return NULL;
19528  }
19529 
19530  return aarch64_opcode_table + value;
19531 }
struct aarch64_opcode aarch64_opcode_table[]
Definition: aarch64-tbl.h:2241
static int value
Definition: cmd_api.c:93
#define NULL
Definition: cris-opc.c:27

References aarch64_opcode_table, key, NULL, and value.

Referenced by determine_disassembling_preference().

◆ aarch64_find_next_alias_opcode()

const aarch64_opcode* aarch64_find_next_alias_opcode ( const aarch64_opcode opcode)

Definition at line 19534 of file aarch64-dis-2.c.

19535 {
19536  /* Use the index as the key to locate the next opcode. */
19537  int key = opcode - aarch64_opcode_table;
19538  int value;
19539  switch (key)
19540  {
19541  case 3: value = 2; break; /* ngc --> sbc. */
19542  case 5: value = 4; break; /* ngcs --> sbcs. */
19543  case 8: value = 7; break; /* cmn --> adds. */
19544  case 11: value = 10; break; /* cmp --> subs. */
19545  case 13: value = 12; break; /* mov --> add. */
19546  case 15: value = 14; break; /* cmn --> adds. */
19547  case 18: value = 17; break; /* cmp --> subs. */
19548  case 21: value = 20; break; /* cmn --> adds. */
19549  case 23: value = 22; break; /* neg --> sub. */
19550  case 25: value = 26; break; /* cmp --> negs. */
19551  case 26: value = 24; break; /* negs --> subs. */
19552  case 151: value = 150; break; /* mov --> umov. */
19553  case 153: value = 152; break; /* mov --> ins. */
19554  case 155: value = 154; break; /* mov --> ins. */
19555  case 237: value = 236; break; /* mvn --> not. */
19556  case 312: value = 311; break; /* mov --> orr. */
19557  case 383: value = 382; break; /* sxtl --> sshll. */
19558  case 385: value = 384; break; /* sxtl2 --> sshll2. */
19559  case 407: value = 406; break; /* uxtl --> ushll. */
19560  case 409: value = 408; break; /* uxtl2 --> ushll2. */
19561  case 530: value = 529; break; /* mov --> dup. */
19562  case 617: value = 616; break; /* sxtw --> sxth. */
19563  case 616: value = 615; break; /* sxth --> sxtb. */
19564  case 615: value = 618; break; /* sxtb --> asr. */
19565  case 618: value = 614; break; /* asr --> sbfx. */
19566  case 614: value = 613; break; /* sbfx --> sbfiz. */
19567  case 613: value = 612; break; /* sbfiz --> sbfm. */
19568  case 621: value = 622; break; /* bfc --> bfxil. */
19569  case 622: value = 620; break; /* bfxil --> bfi. */
19570  case 620: value = 619; break; /* bfi --> bfm. */
19571  case 627: value = 626; break; /* uxth --> uxtb. */
19572  case 626: value = 629; break; /* uxtb --> lsr. */
19573  case 629: value = 628; break; /* lsr --> lsl. */
19574  case 628: value = 625; break; /* lsl --> ubfx. */
19575  case 625: value = 624; break; /* ubfx --> ubfiz. */
19576  case 624: value = 623; break; /* ubfiz --> ubfm. */
19577  case 659: value = 658; break; /* cset --> cinc. */
19578  case 658: value = 657; break; /* cinc --> csinc. */
19579  case 662: value = 661; break; /* csetm --> cinv. */
19580  case 661: value = 660; break; /* cinv --> csinv. */
19581  case 664: value = 663; break; /* cneg --> csneg. */
19582  case 682: value = 683; break; /* rev --> rev64. */
19583  case 708: value = 707; break; /* lsl --> lslv. */
19584  case 710: value = 709; break; /* lsr --> lsrv. */
19585  case 712: value = 711; break; /* asr --> asrv. */
19586  case 714: value = 713; break; /* ror --> rorv. */
19587  case 725: value = 724; break; /* mul --> madd. */
19588  case 727: value = 726; break; /* mneg --> msub. */
19589  case 729: value = 728; break; /* smull --> smaddl. */
19590  case 731: value = 730; break; /* smnegl --> smsubl. */
19591  case 734: value = 733; break; /* umull --> umaddl. */
19592  case 736: value = 735; break; /* umnegl --> umsubl. */
19593  case 747: value = 746; break; /* ror --> extr. */
19594  case 960: value = 959; break; /* bic --> and. */
19595  case 962: value = 961; break; /* mov --> orr. */
19596  case 965: value = 964; break; /* tst --> ands. */
19597  case 970: value = 969; break; /* uxtw --> mov. */
19598  case 969: value = 968; break; /* mov --> orr. */
19599  case 972: value = 971; break; /* mvn --> orn. */
19600  case 976: value = 975; break; /* tst --> ands. */
19601  case 1102: value = 1006; break; /* staddb --> ldaddb. */
19602  case 1103: value = 1007; break; /* staddh --> ldaddh. */
19603  case 1104: value = 1008; break; /* stadd --> ldadd. */
19604  case 1105: value = 1010; break; /* staddlb --> ldaddlb. */
19605  case 1106: value = 1013; break; /* staddlh --> ldaddlh. */
19606  case 1107: value = 1016; break; /* staddl --> ldaddl. */
19607  case 1108: value = 1018; break; /* stclrb --> ldclrb. */
19608  case 1109: value = 1019; break; /* stclrh --> ldclrh. */
19609  case 1110: value = 1020; break; /* stclr --> ldclr. */
19610  case 1111: value = 1022; break; /* stclrlb --> ldclrlb. */
19611  case 1112: value = 1025; break; /* stclrlh --> ldclrlh. */
19612  case 1113: value = 1028; break; /* stclrl --> ldclrl. */
19613  case 1114: value = 1030; break; /* steorb --> ldeorb. */
19614  case 1115: value = 1031; break; /* steorh --> ldeorh. */
19615  case 1116: value = 1032; break; /* steor --> ldeor. */
19616  case 1117: value = 1034; break; /* steorlb --> ldeorlb. */
19617  case 1118: value = 1037; break; /* steorlh --> ldeorlh. */
19618  case 1119: value = 1040; break; /* steorl --> ldeorl. */
19619  case 1120: value = 1042; break; /* stsetb --> ldsetb. */
19620  case 1121: value = 1043; break; /* stseth --> ldseth. */
19621  case 1122: value = 1044; break; /* stset --> ldset. */
19622  case 1123: value = 1046; break; /* stsetlb --> ldsetlb. */
19623  case 1124: value = 1049; break; /* stsetlh --> ldsetlh. */
19624  case 1125: value = 1052; break; /* stsetl --> ldsetl. */
19625  case 1126: value = 1054; break; /* stsmaxb --> ldsmaxb. */
19626  case 1127: value = 1055; break; /* stsmaxh --> ldsmaxh. */
19627  case 1128: value = 1056; break; /* stsmax --> ldsmax. */
19628  case 1129: value = 1058; break; /* stsmaxlb --> ldsmaxlb. */
19629  case 1130: value = 1061; break; /* stsmaxlh --> ldsmaxlh. */
19630  case 1131: value = 1064; break; /* stsmaxl --> ldsmaxl. */
19631  case 1132: value = 1066; break; /* stsminb --> ldsminb. */
19632  case 1133: value = 1067; break; /* stsminh --> ldsminh. */
19633  case 1134: value = 1068; break; /* stsmin --> ldsmin. */
19634  case 1135: value = 1070; break; /* stsminlb --> ldsminlb. */
19635  case 1136: value = 1073; break; /* stsminlh --> ldsminlh. */
19636  case 1137: value = 1076; break; /* stsminl --> ldsminl. */
19637  case 1138: value = 1078; break; /* stumaxb --> ldumaxb. */
19638  case 1139: value = 1079; break; /* stumaxh --> ldumaxh. */
19639  case 1140: value = 1080; break; /* stumax --> ldumax. */
19640  case 1141: value = 1082; break; /* stumaxlb --> ldumaxlb. */
19641  case 1142: value = 1085; break; /* stumaxlh --> ldumaxlh. */
19642  case 1143: value = 1088; break; /* stumaxl --> ldumaxl. */
19643  case 1144: value = 1090; break; /* stuminb --> lduminb. */
19644  case 1145: value = 1091; break; /* stuminh --> lduminh. */
19645  case 1146: value = 1092; break; /* stumin --> ldumin. */
19646  case 1147: value = 1094; break; /* stuminlb --> lduminlb. */
19647  case 1148: value = 1097; break; /* stuminlh --> lduminlh. */
19648  case 1149: value = 1100; break; /* stuminl --> lduminl. */
19649  case 1151: value = 1150; break; /* mov --> movn. */
19650  case 1153: value = 1152; break; /* mov --> movz. */
19651  case 1194: value = 1193; break; /* autibsp --> autibz. */
19652  case 1193: value = 1192; break; /* autibz --> autiasp. */
19653  case 1192: value = 1191; break; /* autiasp --> autiaz. */
19654  case 1191: value = 1190; break; /* autiaz --> pacibsp. */
19655  case 1190: value = 1189; break; /* pacibsp --> pacibz. */
19656  case 1189: value = 1188; break; /* pacibz --> paciasp. */
19657  case 1188: value = 1187; break; /* paciasp --> paciaz. */
19658  case 1187: value = 1172; break; /* paciaz --> psb. */
19659  case 1172: value = 1171; break; /* psb --> esb. */
19660  case 1171: value = 1170; break; /* esb --> autib1716. */
19661  case 1170: value = 1169; break; /* autib1716 --> autia1716. */
19662  case 1169: value = 1168; break; /* autia1716 --> pacib1716. */
19663  case 1168: value = 1167; break; /* pacib1716 --> pacia1716. */
19664  case 1167: value = 1166; break; /* pacia1716 --> xpaclri. */
19665  case 1166: value = 1165; break; /* xpaclri --> sevl. */
19666  case 1165: value = 1164; break; /* sevl --> sev. */
19667  case 1164: value = 1163; break; /* sev --> wfi. */
19668  case 1163: value = 1162; break; /* wfi --> wfe. */
19669  case 1162: value = 1161; break; /* wfe --> yield. */
19670  case 1161: value = 1160; break; /* yield --> csdb. */
19671  case 1160: value = 1159; break; /* csdb --> nop. */
19672  case 1159: value = 1158; break; /* nop --> hint. */
19673  case 1176: value = 1175; break; /* pssbb --> ssbb. */
19674  case 1175: value = 1174; break; /* ssbb --> dsb. */
19675  case 1183: value = 1182; break; /* tlbi --> ic. */
19676  case 1182: value = 1181; break; /* ic --> dc. */
19677  case 1181: value = 1180; break; /* dc --> at. */
19678  case 1180: value = 1179; break; /* at --> sys. */
19679  case 1992: value = 1242; break; /* bic --> and. */
19680  case 1225: value = 1244; break; /* mov --> and. */
19681  case 1229: value = 1245; break; /* movs --> ands. */
19682  case 1993: value = 1280; break; /* cmple --> cmpge. */
19683  case 1996: value = 1283; break; /* cmplt --> cmpgt. */
19684  case 1994: value = 1285; break; /* cmplo --> cmphi. */
19685  case 1995: value = 1288; break; /* cmpls --> cmphs. */
19686  case 1222: value = 1310; break; /* mov --> cpy. */
19687  case 1224: value = 1311; break; /* mov --> cpy. */
19688  case 2003: value = 1227; break; /* fmov --> mov. */
19689  case 1227: value = 1312; break; /* mov --> cpy. */
19690  case 1217: value = 1324; break; /* mov --> dup. */
19691  case 1219: value = 1216; break; /* mov --> mov. */
19692  case 1216: value = 1325; break; /* mov --> dup. */
19693  case 2002: value = 1221; break; /* fmov --> mov. */
19694  case 1221: value = 1326; break; /* mov --> dup. */
19695  case 1220: value = 1327; break; /* mov --> dupm. */
19696  case 1997: value = 1329; break; /* eon --> eor. */
19697  case 1230: value = 1331; break; /* not --> eor. */
19698  case 1231: value = 1332; break; /* nots --> eors. */
19699  case 1998: value = 1337; break; /* facle --> facge. */
19700  case 1999: value = 1338; break; /* faclt --> facgt. */
19701  case 2000: value = 1351; break; /* fcmle --> fcmge. */
19702  case 2001: value = 1353; break; /* fcmlt --> fcmgt. */
19703  case 1214: value = 1359; break; /* fmov --> fcpy. */
19704  case 1213: value = 1382; break; /* fmov --> fdup. */
19705  case 1215: value = 1713; break; /* mov --> orr. */
19706  case 2004: value = 1714; break; /* orn --> orr. */
19707  case 1218: value = 1716; break; /* mov --> orr. */
19708  case 1228: value = 1717; break; /* movs --> orrs. */
19709  case 1223: value = 1779; break; /* mov --> sel. */
19710  case 1226: value = 1780; break; /* mov --> sel. */
19711  default: return NULL;
19712  }
19713 
19714  return aarch64_opcode_table + value;
19715 }

References aarch64_opcode_table, key, NULL, and value.

Referenced by determine_disassembling_preference().

◆ aarch64_find_next_opcode()

const aarch64_opcode* aarch64_find_next_opcode ( const aarch64_opcode opcode)

Definition at line 19145 of file aarch64-dis-2.c.

19146 {
19147  /* Use the index as the key to locate the next opcode. */
19148  int key = opcode - aarch64_opcode_table;
19149  int value;
19150  switch (key)
19151  {
19152  case 941: value = 945; break; /* stnp --> stp. */
19153  case 945: return NULL; /* stp --> NULL. */
19154  case 939: value = 940; break; /* stllrb --> stllrh. */
19155  case 940: return NULL; /* stllrh --> NULL. */
19156  case 942: value = 946; break; /* ldnp --> ldp. */
19157  case 946: return NULL; /* ldp --> NULL. */
19158  case 1584: value = 1585; break; /* ldff1b --> ldff1b. */
19159  case 1585: return NULL; /* ldff1b --> NULL. */
19160  case 1640: value = 1641; break; /* ldff1sw --> ldff1sw. */
19161  case 1641: return NULL; /* ldff1sw --> NULL. */
19162  case 1588: value = 1589; break; /* ldff1b --> ldff1b. */
19163  case 1589: return NULL; /* ldff1b --> NULL. */
19164  case 1607: value = 1608; break; /* ldff1h --> ldff1h. */
19165  case 1608: return NULL; /* ldff1h --> NULL. */
19166  case 1586: value = 1587; break; /* ldff1b --> ldff1b. */
19167  case 1587: return NULL; /* ldff1b --> NULL. */
19168  case 1605: value = 1606; break; /* ldff1h --> ldff1h. */
19169  case 1606: return NULL; /* ldff1h --> NULL. */
19170  case 1590: value = 1591; break; /* ldff1b --> ldff1b. */
19171  case 1591: return NULL; /* ldff1b --> NULL. */
19172  case 1609: value = 1610; break; /* ldff1h --> ldff1h. */
19173  case 1610: return NULL; /* ldff1h --> NULL. */
19174  case 1630: value = 1631; break; /* ldff1sh --> ldff1sh. */
19175  case 1631: return NULL; /* ldff1sh --> NULL. */
19176  case 1618: value = 1619; break; /* ldff1sb --> ldff1sb. */
19177  case 1619: return NULL; /* ldff1sb --> NULL. */
19178  case 1649: value = 1650; break; /* ldff1w --> ldff1w. */
19179  case 1650: return NULL; /* ldff1w --> NULL. */
19180  case 1622: value = 1623; break; /* ldff1sb --> ldff1sb. */
19181  case 1623: return NULL; /* ldff1sb --> NULL. */
19182  case 1632: value = 1633; break; /* ldff1sh --> ldff1sh. */
19183  case 1633: return NULL; /* ldff1sh --> NULL. */
19184  case 1620: value = 1621; break; /* ldff1sb --> ldff1sb. */
19185  case 1621: return NULL; /* ldff1sb --> NULL. */
19186  case 1651: value = 1652; break; /* ldff1w --> ldff1w. */
19187  case 1652: return NULL; /* ldff1w --> NULL. */
19188  case 1596: value = 1597; break; /* ldff1d --> ldff1d. */
19189  case 1597: return NULL; /* ldff1d --> NULL. */
19190  case 1157: value = 1158; break; /* msr --> hint. */
19191  case 1158: value = 1173; break; /* hint --> clrex. */
19192  case 1173: value = 1174; break; /* clrex --> dsb. */
19193  case 1174: value = 1177; break; /* dsb --> dmb. */
19194  case 1177: value = 1178; break; /* dmb --> isb. */
19195  case 1178: value = 1179; break; /* isb --> sys. */
19196  case 1179: value = 1184; break; /* sys --> msr. */
19197  case 1184: value = 2042; break; /* msr --> cfinv. */
19198  case 2042: return NULL; /* cfinv --> NULL. */
19199  case 1185: value = 1186; break; /* sysl --> mrs. */
19200  case 1186: return NULL; /* mrs --> NULL. */
19201  case 434: value = 435; break; /* st4 --> st1. */
19202  case 435: value = 436; break; /* st1 --> st2. */
19203  case 436: value = 437; break; /* st2 --> st3. */
19204  case 437: return NULL; /* st3 --> NULL. */
19205  case 442: value = 443; break; /* st4 --> st1. */
19206  case 443: value = 444; break; /* st1 --> st2. */
19207  case 444: value = 445; break; /* st2 --> st3. */
19208  case 445: return NULL; /* st3 --> NULL. */
19209  case 438: value = 439; break; /* ld4 --> ld1. */
19210  case 439: value = 440; break; /* ld1 --> ld2. */
19211  case 440: value = 441; break; /* ld2 --> ld3. */
19212  case 441: return NULL; /* ld3 --> NULL. */
19213  case 454: value = 456; break; /* ld1 --> ld1r. */
19214  case 456: return NULL; /* ld1r --> NULL. */
19215  case 458: value = 460; break; /* ld2 --> ld2r. */
19216  case 460: return NULL; /* ld2r --> NULL. */
19217  case 455: value = 457; break; /* ld3 --> ld3r. */
19218  case 457: return NULL; /* ld3r --> NULL. */
19219  case 459: value = 461; break; /* ld4 --> ld4r. */
19220  case 461: return NULL; /* ld4r --> NULL. */
19221  case 446: value = 447; break; /* ld4 --> ld1. */
19222  case 447: value = 448; break; /* ld1 --> ld2. */
19223  case 448: value = 449; break; /* ld2 --> ld3. */
19224  case 449: return NULL; /* ld3 --> NULL. */
19225  case 466: value = 468; break; /* ld1 --> ld1r. */
19226  case 468: return NULL; /* ld1r --> NULL. */
19227  case 467: value = 469; break; /* ld3 --> ld3r. */
19228  case 469: return NULL; /* ld3r --> NULL. */
19229  case 470: value = 472; break; /* ld2 --> ld2r. */
19230  case 472: return NULL; /* ld2r --> NULL. */
19231  case 471: value = 473; break; /* ld4 --> ld4r. */
19232  case 473: return NULL; /* ld4r --> NULL. */
19233  case 752: value = 753; break; /* fcvtzs --> fcvtzs. */
19234  case 753: return NULL; /* fcvtzs --> NULL. */
19235  case 748: value = 749; break; /* scvtf --> scvtf. */
19236  case 749: return NULL; /* scvtf --> NULL. */
19237  case 754: value = 755; break; /* fcvtzu --> fcvtzu. */
19238  case 755: return NULL; /* fcvtzu --> NULL. */
19239  case 750: value = 751; break; /* ucvtf --> ucvtf. */
19240  case 751: return NULL; /* ucvtf --> NULL. */
19241  case 756: value = 757; break; /* fcvtns --> fcvtns. */
19242  case 757: return NULL; /* fcvtns --> NULL. */
19243  case 776: value = 777; break; /* fcvtms --> fcvtms. */
19244  case 777: return NULL; /* fcvtms --> NULL. */
19245  case 772: value = 773; break; /* fcvtps --> fcvtps. */
19246  case 773: return NULL; /* fcvtps --> NULL. */
19247  case 780: value = 781; break; /* fcvtzs --> fcvtzs. */
19248  case 781: return NULL; /* fcvtzs --> NULL. */
19249  case 764: value = 765; break; /* fcvtas --> fcvtas. */
19250  case 765: return NULL; /* fcvtas --> NULL. */
19251  case 760: value = 761; break; /* scvtf --> scvtf. */
19252  case 761: return NULL; /* scvtf --> NULL. */
19253  case 768: value = 769; break; /* fmov --> fmov. */
19254  case 769: return NULL; /* fmov --> NULL. */
19255  case 758: value = 759; break; /* fcvtnu --> fcvtnu. */
19256  case 759: return NULL; /* fcvtnu --> NULL. */
19257  case 778: value = 779; break; /* fcvtmu --> fcvtmu. */
19258  case 779: return NULL; /* fcvtmu --> NULL. */
19259  case 774: value = 775; break; /* fcvtpu --> fcvtpu. */
19260  case 775: return NULL; /* fcvtpu --> NULL. */
19261  case 782: value = 783; break; /* fcvtzu --> fcvtzu. */
19262  case 783: return NULL; /* fcvtzu --> NULL. */
19263  case 766: value = 767; break; /* fcvtau --> fcvtau. */
19264  case 767: return NULL; /* fcvtau --> NULL. */
19265  case 762: value = 763; break; /* ucvtf --> ucvtf. */
19266  case 763: return NULL; /* ucvtf --> NULL. */
19267  case 770: value = 771; break; /* fmov --> fmov. */
19268  case 771: return NULL; /* fmov --> NULL. */
19269  case 799: value = 800; break; /* fmov --> fmov. */
19270  case 800: return NULL; /* fmov --> NULL. */
19271  case 808: value = 809; break; /* frintn --> frintn. */
19272  case 809: return NULL; /* frintn --> NULL. */
19273  case 803: value = 804; break; /* fneg --> fneg. */
19274  case 804: return NULL; /* fneg --> NULL. */
19275  case 812: value = 813; break; /* frintm --> frintm. */
19276  case 813: return NULL; /* frintm --> NULL. */
19277  case 801: value = 802; break; /* fabs --> fabs. */
19278  case 802: return NULL; /* fabs --> NULL. */
19279  case 810: value = 811; break; /* frintp --> frintp. */
19280  case 811: return NULL; /* frintp --> NULL. */
19281  case 805: value = 806; break; /* fsqrt --> fsqrt. */
19282  case 806: return NULL; /* fsqrt --> NULL. */
19283  case 814: value = 815; break; /* frintz --> frintz. */
19284  case 815: return NULL; /* frintz --> NULL. */
19285  case 816: value = 817; break; /* frinta --> frinta. */
19286  case 817: return NULL; /* frinta --> NULL. */
19287  case 818: value = 819; break; /* frintx --> frintx. */
19288  case 819: return NULL; /* frintx --> NULL. */
19289  case 820: value = 821; break; /* frinti --> frinti. */
19290  case 821: return NULL; /* frinti --> NULL. */
19291  case 791: value = 792; break; /* fcmp --> fcmp. */
19292  case 792: return NULL; /* fcmp --> NULL. */
19293  case 793: value = 794; break; /* fcmpe --> fcmpe. */
19294  case 794: return NULL; /* fcmpe --> NULL. */
19295  case 795: value = 796; break; /* fcmp --> fcmp. */
19296  case 796: return NULL; /* fcmp --> NULL. */
19297  case 797: value = 798; break; /* fcmpe --> fcmpe. */
19298  case 798: return NULL; /* fcmpe --> NULL. */
19299  case 848: value = 849; break; /* fmov --> fmov. */
19300  case 849: return NULL; /* fmov --> NULL. */
19301  case 822: value = 823; break; /* fmul --> fmul. */
19302  case 823: return NULL; /* fmul --> NULL. */
19303  case 838: value = 839; break; /* fnmul --> fnmul. */
19304  case 839: return NULL; /* fnmul --> NULL. */
19305  case 830: value = 831; break; /* fmax --> fmax. */
19306  case 831: return NULL; /* fmax --> NULL. */
19307  case 826: value = 827; break; /* fadd --> fadd. */
19308  case 827: return NULL; /* fadd --> NULL. */
19309  case 834: value = 835; break; /* fmaxnm --> fmaxnm. */
19310  case 835: return NULL; /* fmaxnm --> NULL. */
19311  case 824: value = 825; break; /* fdiv --> fdiv. */
19312  case 825: return NULL; /* fdiv --> NULL. */
19313  case 832: value = 833; break; /* fmin --> fmin. */
19314  case 833: return NULL; /* fmin --> NULL. */
19315  case 828: value = 829; break; /* fsub --> fsub. */
19316  case 829: return NULL; /* fsub --> NULL. */
19317  case 836: value = 837; break; /* fminnm --> fminnm. */
19318  case 837: return NULL; /* fminnm --> NULL. */
19319  case 787: value = 788; break; /* fccmp --> fccmp. */
19320  case 788: return NULL; /* fccmp --> NULL. */
19321  case 789: value = 790; break; /* fccmpe --> fccmpe. */
19322  case 790: return NULL; /* fccmpe --> NULL. */
19323  case 850: value = 851; break; /* fcsel --> fcsel. */
19324  case 851: return NULL; /* fcsel --> NULL. */
19325  case 131: value = 368; break; /* movi --> sshr. */
19326  case 368: value = 370; break; /* sshr --> srshr. */
19327  case 370: return NULL; /* srshr --> NULL. */
19328  case 139: value = 390; break; /* mvni --> ushr. */
19329  case 390: value = 392; break; /* ushr --> urshr. */
19330  case 392: value = 394; break; /* urshr --> sri. */
19331  case 394: value = 396; break; /* sri --> sqshlu. */
19332  case 396: return NULL; /* sqshlu --> NULL. */
19333  case 132: value = 369; break; /* orr --> ssra. */
19334  case 369: value = 371; break; /* ssra --> srsra. */
19335  case 371: value = 372; break; /* srsra --> shl. */
19336  case 372: value = 373; break; /* shl --> sqshl. */
19337  case 373: return NULL; /* sqshl --> NULL. */
19338  case 140: value = 391; break; /* bic --> usra. */
19339  case 391: value = 393; break; /* usra --> ursra. */
19340  case 393: value = 395; break; /* ursra --> sli. */
19341  case 395: value = 397; break; /* sli --> uqshl. */
19342  case 397: return NULL; /* uqshl --> NULL. */
19343  case 840: value = 841; break; /* fmadd --> fmadd. */
19344  case 841: return NULL; /* fmadd --> NULL. */
19345  case 844: value = 845; break; /* fnmadd --> fnmadd. */
19346  case 845: return NULL; /* fnmadd --> NULL. */
19347  case 133: value = 374; break; /* movi --> shrn. */
19348  case 374: value = 375; break; /* shrn --> shrn2. */
19349  case 375: value = 382; break; /* shrn2 --> sshll. */
19350  case 382: value = 384; break; /* sshll --> sshll2. */
19351  case 384: return NULL; /* sshll2 --> NULL. */
19352  case 141: value = 398; break; /* mvni --> sqshrun. */
19353  case 398: value = 399; break; /* sqshrun --> sqshrun2. */
19354  case 399: value = 406; break; /* sqshrun2 --> ushll. */
19355  case 406: value = 408; break; /* ushll --> ushll2. */
19356  case 408: return NULL; /* ushll2 --> NULL. */
19357  case 134: value = 378; break; /* orr --> sqshrn. */
19358  case 378: value = 379; break; /* sqshrn --> sqshrn2. */
19359  case 379: return NULL; /* sqshrn2 --> NULL. */
19360  case 142: value = 402; break; /* bic --> uqshrn. */
19361  case 402: value = 403; break; /* uqshrn --> uqshrn2. */
19362  case 403: return NULL; /* uqshrn2 --> NULL. */
19363  case 136: value = 386; break; /* movi --> scvtf. */
19364  case 386: value = 387; break; /* scvtf --> scvtf. */
19365  case 387: return NULL; /* scvtf --> NULL. */
19366  case 144: value = 145; break; /* movi --> movi. */
19367  case 145: value = 410; break; /* movi --> ucvtf. */
19368  case 410: value = 411; break; /* ucvtf --> ucvtf. */
19369  case 411: return NULL; /* ucvtf --> NULL. */
19370  case 138: value = 388; break; /* fmov --> fcvtzs. */
19371  case 388: value = 389; break; /* fcvtzs --> fcvtzs. */
19372  case 389: return NULL; /* fcvtzs --> NULL. */
19373  case 412: value = 413; break; /* fcvtzu --> fcvtzu. */
19374  case 413: return NULL; /* fcvtzu --> NULL. */
19375  case 842: value = 843; break; /* fmsub --> fmsub. */
19376  case 843: return NULL; /* fmsub --> NULL. */
19377  case 846: value = 847; break; /* fnmsub --> fnmsub. */
19378  case 847: return NULL; /* fnmsub --> NULL. */
19379  case 592: value = 593; break; /* scvtf --> scvtf. */
19380  case 593: return NULL; /* scvtf --> NULL. */
19381  case 594: value = 595; break; /* fcvtzs --> fcvtzs. */
19382  case 595: return NULL; /* fcvtzs --> NULL. */
19383  case 608: value = 609; break; /* ucvtf --> ucvtf. */
19384  case 609: return NULL; /* ucvtf --> NULL. */
19385  case 610: value = 611; break; /* fcvtzu --> fcvtzu. */
19386  case 611: return NULL; /* fcvtzu --> NULL. */
19387  default: return NULL;
19388  }
19389 
19390  return aarch64_opcode_table + value;
19391 }

References aarch64_opcode_table, key, NULL, and value.

Referenced by aarch64_decode_insn().

◆ aarch64_opcode_lookup()

const aarch64_opcode* aarch64_opcode_lookup ( uint32_t  word)

Definition at line 19139 of file aarch64-dis-2.c.

19140 {
19142 }
static int aarch64_opcode_lookup_1(uint32_t word)
Definition: aarch64-dis-2.c:30

References aarch64_opcode_lookup_1(), and aarch64_opcode_table.

Referenced by aarch64_decode_insn().