Miasm2
 All Classes Namespaces Files Functions Variables Typedefs Properties Macros
Classes | Functions | Variables
miasm2.arch.aarch64.arch Namespace Reference

Classes

class  aarch64_b40
 
class  aarch64_cond_arg
 
class  aarch64_cond_inv_arg
 
class  aarch64_crreg
 
class  aarch64_deref
 
class  aarch64_deref_nooff
 
class  aarch64_deref_size
 
class  aarch64_eq
 
class  aarch64_gpreg
 
class  aarch64_gpreg0
 
class  aarch64_gpreg32
 
class  aarch64_gpreg32_noarg
 
class  aarch64_gpreg32_nodec
 
class  aarch64_gpreg64
 
class  aarch64_gpreg64_noarg
 
class  aarch64_gpreg64_nodec
 
class  aarch64_gpreg_ext
 
class  aarch64_gpreg_ext2
 
class  aarch64_gpreg_ext2_128
 
class  aarch64_gpreg_isf
 
class  aarch64_gpreg_n1
 
class  aarch64_gpreg_noarg
 
class  aarch64_gpreg_sftimm
 
class  aarch64_gpregz
 
class  aarch64_gpregz32
 
class  aarch64_gpregz32_noarg
 
class  aarch64_gpregz64
 
class  aarch64_gpregz64_noarg
 
class  aarch64_imm_32
 
class  aarch64_imm_64
 
class  aarch64_imm_hw
 
class  aarch64_imm_hw_sc
 
class  aarch64_imm_nsr
 
class  aarch64_imm_sf
 
class  aarch64_imm_sft
 
class  aarch64_immhi_page
 
class  aarch64_immhip_page
 
class  aarch64_int64_noarg
 
class  aarch64_offs
 
class  aarch64_pcoff
 
class  aarch64_sd_scale
 
class  aarch64_sf_scale
 
class  aarch64_simd08
 
class  aarch64_simd08_noarg
 
class  aarch64_simd128
 
class  aarch64_simd128_noarg
 
class  aarch64_simd16
 
class  aarch64_simd16_noarg
 
class  aarch64_simd32
 
class  aarch64_simd32_noarg
 
class  aarch64_simd64
 
class  aarch64_simd64_noarg
 
class  aarch64_simdreg
 
class  aarch64_simdreg_32_64
 
class  aarch64_simdreg_32_64_zero
 
class  aarch64_simdreg_h
 
class  aarch64_uint64
 
class  aarch64_uint64_noarg
 
class  additional_info
 
class  instruction_aarch64
 
class  mn_aarch64
 

Functions

def ast_id2expr32
 
def ast_int2expr32
 
def ast_id2expr64
 
def ast_int2expr64
 
def op_shift2expr
 
def op_shift2expr_slice_at
 
def op_ext_reg
 
def shift2expr
 
def shift2expr_sc
 
def extend2expr
 
def shiftext2expr
 
def ast_id2expr
 
def ast_int2expr
 
def deref2expr_nooff
 
def deref2expr_post
 
def deref2expr_pre
 
def deref2expr_pre_wb
 
def deref_ext2op
 
def aarch64op
 
def set_imm_to_size
 
def test_set_sf
 
def ror
 
def rol
 
def imm_to_imm_rot_form
 
def set_mem_off
 
def get_size
 

Variables

tuple log = logging.getLogger("aarch64dis")
 
tuple console_handler = logging.StreamHandler()
 
dictionary replace_regs
 
tuple my_var_parser32 = parse_ast(ast_id2expr32, ast_int2expr32)
 
tuple my_var_parser64 = parse_ast(ast_id2expr64, ast_int2expr64)
 
 int_or_expr = base_expr
 
 int_or_expr32 = base_expr32
 
 int_or_expr64 = base_expr64
 
dictionary shift2expr_dct = {'LSL': '<<', 'LSR': '>>', 'ASR': 'a>>', 'ROR': '>>>'}
 
list shift_str = ["LSL", "LSR", "ASR", "ROR"]
 
list shift_expr = ["<<", ">>", "a>>", '>>>']
 
tuple all_binaryop_lsl_t
 
tuple all_binaryop_shiftleft_t
 
list extend_lst = ['UXTB', 'UXTH', 'UXTW', 'UXTX', 'SXTB', 'SXTH', 'SXTW', 'SXTX']
 
list extend2_lst = ['UXTW', 'LSL', 'SXTW', 'SXTX']
 
tuple all_extend_t = literal_list(extend_lst)
 
tuple all_extend2_t = literal_list(extend2_lst)
 
tuple gpregz32_extend
 
tuple gpregz64_extend
 
tuple shift32_off
 
tuple shift64_off
 
tuple shiftimm_imm_sc
 
 shiftimm_off_sc = shiftimm_imm_sc|int_or_expr
 
tuple shift_off = (shift32_off | shift64_off)
 
tuple reg_ext_off = (gpregz32_extend | gpregz64_extend)
 
tuple gpregs_32_64 = (gpregs32_info.parser | gpregs64_info.parser)
 
tuple gpregsz_32_64 = (gpregsz32_info.parser | gpregsz64_info.parser | int_or_expr)
 
tuple simdregs
 
tuple simdregs_h = (simd32_info.parser | simd64_info.parser | simd128_info.parser)
 
tuple simdregs_h_zero
 
dictionary gpregs_info
 
dictionary gpregsz_info
 
dictionary simds_info
 
tuple my_var_parser = parse_ast(ast_id2expr, ast_int2expr)
 
tuple LBRACK = Suppress("[")
 
tuple RBRACK = Suppress("]")
 
tuple COMMA = Suppress(",")
 
tuple POSTINC = Suppress("!")
 
tuple deref_nooff
 
tuple deref_off_post
 
tuple deref_off_pre
 
tuple deref_off_pre_wb
 
tuple deref = (deref_off_post | deref_off_pre_wb | deref_off_pre | deref_nooff)
 
tuple deref_ext2
 
list CONDS
 
list CONDS_INV
 
list BRCOND = ['B.' + cond for cond in CONDS]
 
list OPTION2SIZE
 
dictionary EXT2_OP
 
tuple EXT2_OP_INV = dict([(items[1], items[0]) for items in EXT2_OP.items()])
 
dictionary UINTS = {32: uint32, 64: uint64}
 
tuple modf = bs_mod_name(l=1, fname='modf', mn_mod=['', 'S'])
 
tuple sf = bs(l=1, fname='sf', order=-1)
 
tuple shift = bs(l=2, fname='shift')
 
tuple shiftb = bs(l=1, fname='shift', order=-1)
 
tuple rn64_v = bs(l=5, cls=(aarch64_gpreg64_nodec,), fname='rn', order=-1)
 
tuple rn = bs(l=5, cls=(aarch64_gpreg,), fname="rn")
 
tuple rs = bs(l=5, cls=(aarch64_gpreg,), fname="rs")
 
tuple rm = bs(l=5, cls=(aarch64_gpreg,), fname="rm")
 
tuple rd = bs(l=5, cls=(aarch64_gpreg,), fname="rd")
 
tuple ra = bs(l=5, cls=(aarch64_gpregz,), fname="ra")
 
tuple rt = bs(l=5, cls=(aarch64_gpregz,), fname="rt")
 
tuple rt2 = bs(l=5, cls=(aarch64_gpregz,), fname="rt2")
 
tuple rn0 = bs(l=5, cls=(aarch64_gpreg0,), fname="rn")
 
tuple rmz = bs(l=5, cls=(aarch64_gpregz,), fname="rm")
 
tuple rnz = bs(l=5, cls=(aarch64_gpregz,), fname="rn")
 
tuple rdz = bs(l=5, cls=(aarch64_gpregz,), fname="rd")
 
tuple rn_n1 = bs(l=5, cls=(aarch64_gpreg_n1,), fname="rn")
 
tuple rm_n1 = bs(l=5, cls=(aarch64_gpreg_n1,), fname="rm")
 
tuple rn_na = bs(l=5, cls=(aarch64_gpreg_noarg,), fname="rn", order=-1)
 
tuple rn32_na = bs(l=5, cls=(aarch64_gpreg32_noarg,), fname="rn", order=-1)
 
tuple rn64_na = bs(l=5, cls=(aarch64_gpreg64_noarg,), fname="rn", order=-1)
 
tuple sd1 = bs(l=5, cls=(aarch64_simdreg_h,), fname="rt")
 
tuple sd2 = bs(l=5, cls=(aarch64_simdreg_h,), fname="rt2")
 
tuple sdn_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="rn")
 
tuple sdd_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="rd")
 
tuple sdm_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="rm")
 
tuple sda_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="ra")
 
tuple sdm_32_64_zero = bs(l=5, cls=(aarch64_simdreg_32_64_zero,), fname="rm")
 
tuple crn = bs(l=4, cls=(aarch64_crreg,), fname="crn")
 
tuple crm = bs(l=4, cls=(aarch64_crreg,), fname="crm")
 
tuple rn64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rn")
 
tuple rs64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rs")
 
tuple rm64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rm")
 
tuple rd64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rd")
 
tuple rt64 = bs(l=5, cls=(aarch64_gpregz64,), fname="rt")
 
tuple ra64 = bs(l=5, cls=(aarch64_gpregz64,), fname="ra")
 
tuple rn32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rn")
 
tuple rm32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rm")
 
tuple rd32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rd")
 
tuple rs32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rs")
 
tuple sd08 = bs(l=5, cls=(aarch64_simd08,), fname="rd")
 
tuple sd16 = bs(l=5, cls=(aarch64_simd16,), fname="rd")
 
tuple sd32 = bs(l=5, cls=(aarch64_simd32,), fname="rd")
 
tuple sd64 = bs(l=5, cls=(aarch64_simd64,), fname="rd")
 
tuple sd128 = bs(l=5, cls=(aarch64_simd128,), fname="rd")
 
tuple sn08 = bs(l=5, cls=(aarch64_simd08,), fname="rn")
 
tuple sn16 = bs(l=5, cls=(aarch64_simd16,), fname="rn")
 
tuple sn32 = bs(l=5, cls=(aarch64_simd32,), fname="rn")
 
tuple sn64 = bs(l=5, cls=(aarch64_simd64,), fname="rn")
 
tuple sn128 = bs(l=5, cls=(aarch64_simd128,), fname="rn")
 
tuple rt32 = bs(l=5, cls=(aarch64_gpregz32,), fname="rt")
 
tuple rt_isf = bs(l=5, cls=(aarch64_gpreg_isf,), fname="rt")
 
tuple rn64_deref = bs(l=5, cls=(aarch64_deref,), fname="rn")
 
tuple rn64_deref_sz = bs(l=5, cls=(aarch64_deref_size,), fname="rn")
 
tuple rn64_deref_sf = bs(l=5, cls=(aarch64_sf_scale,), fname="rn")
 
tuple rn64_deref_sd = bs(l=5, cls=(aarch64_sd_scale,), fname="rn")
 
tuple rn64_deref_nooff = bs(l=5, cls=(aarch64_deref_nooff,), fname="rn")
 
tuple imm_sft_12 = bs(l=12, cls=(aarch64_imm_sft,))
 
tuple imm32_3 = bs(l=3, fname="imm")
 
tuple imm6 = bs(l=6, fname="imm", order=-1)
 
tuple imm3 = bs(l=3, fname="imm", order=-1)
 
tuple simm6 = bs(l=6, cls=(aarch64_int64_noarg, m_arg), fname="imm", order=-1)
 
tuple simm9 = bs(l=9, cls=(aarch64_int64_noarg,), fname="imm", order=-1)
 
tuple simm7 = bs(l=7, cls=(aarch64_int64_noarg,), fname="imm", order=-1)
 
tuple nzcv = bs(l=4, cls=(aarch64_uint64_noarg, m_arg), fname="nzcv", order=-1)
 
tuple uimm5 = bs(l=5, cls=(aarch64_uint64_noarg, m_arg), fname="imm", order=-1)
 
tuple uimm12 = bs(l=12, cls=(aarch64_uint64_noarg,), fname="imm", order=-1)
 
tuple uimm16 = bs(l=16, cls=(aarch64_uint64_noarg, m_arg), fname="imm", order=-1)
 
tuple uimm7 = bs(l=7, cls=(aarch64_uint64_noarg,), fname="imm", order=-1)
 
tuple uimm8 = bs(l=8, cls=(aarch64_uint64,), fname="imm", order=-1)
 
tuple op1 = bs(l=3, cls=(aarch64_uint64, m_arg), fname="op1")
 
tuple op2 = bs(l=3, cls=(aarch64_uint64, m_arg), fname="op2")
 
tuple imm16 = bs(l=16, fname="imm", order=-1)
 
tuple immlo = bs(l=2, fname='immlo')
 
tuple immhip = bs(l=19, cls=(aarch64_immhip_page,))
 
tuple immhi = bs(l=19, cls=(aarch64_immhi_page,))
 
tuple option = bs(l=3, fname='option', order=-1)
 
tuple rm_ext = bs(l=5, cls=(aarch64_gpreg_ext,), fname="rm")
 
tuple rm_sft = bs(l=5, cls=(aarch64_gpreg_sftimm,), fname="rm")
 
tuple rm_ext2 = bs(l=5, cls=(aarch64_gpreg_ext2,), fname="rm")
 
tuple rm_ext2_128 = bs(l=5, cls=(aarch64_gpreg_ext2_128,), fname="rm")
 
tuple imms = bs(l=6, cls=(aarch64_imm_nsr,), fname='imms')
 
tuple immr = bs(l=6, fname='immr')
 
tuple immn = bs(l=1, fname='immn')
 
tuple imm16_hw = bs(l=16, cls=(aarch64_imm_hw,), fname='imm')
 
tuple imm16_hw_sc = bs(l=16, cls=(aarch64_imm_hw_sc,), fname='imm')
 
tuple hw = bs(l=2, fname='hw')
 
tuple a_imms = bs(l=6, cls=(aarch64_imm_sf, m_arg), fname="imm1", order=-1)
 
tuple a_immr = bs(l=6, cls=(aarch64_imm_sf, m_arg), fname="imm1", order=-1)
 
dictionary adsu_name = {'ADD': 0, 'SUB': 1}
 
tuple bs_adsu_name = bs_name(l=1, name=adsu_name)
 
tuple offs19 = bs(l=19, cls=(aarch64_offs,), fname='off')
 
tuple offs26 = bs(l=26, cls=(aarch64_offs,), fname='off')
 
tuple offs14 = bs(l=14, cls=(aarch64_offs,), fname='off')
 
tuple b40 = bs(l=5, cls=(aarch64_b40,), fname='b40', order=1)
 
tuple sdsize1 = bs(l=1, fname="size")
 
tuple sdsize = bs(l=2, fname="size")
 
tuple opsize = bs(l=2, fname="size")
 
tuple sd = bs(l=5, cls=(aarch64_simdreg,), fname='sd')
 
tuple opc = bs(l=1, fname='opc', order=-1)
 
dictionary logic_name = {'AND': 0, 'ORR': 1, 'EOR': 2}
 
tuple bs_logic_name = bs_name(l=2, name=logic_name)
 
dictionary logicbf_name = {'SBFM': 0b00, 'BFM': 0b01, 'UBFM': 0b10}
 
tuple bs_logicbf_name = bs_name(l=2, name=logicbf_name)
 
tuple bcond
 
tuple cond_arg = bs(l=4, cls=(aarch64_cond_arg,), fname=cond)
 
tuple cond_inv_arg = bs(l=4, cls=(aarch64_cond_inv_arg,), fname=cond)
 
tuple post_pre = bs(l=1, order=-1, fname='postpre')
 
dictionary ccmp_name = {'CCMN': 0, 'CCMP': 1}
 
tuple bs_ccmp_name = bs_name(l=1, name=ccmp_name)
 
dictionary ldst_b_name = {'STRB': 0, 'LDRB': 1}
 
tuple bs_ldst_b_name = bs_name(l=1, name=ldst_b_name)
 
dictionary ldst_name = {'STR': 0, 'LDR': 1}
 
tuple bs_ldst_name = bs_name(l=1, name=ldst_name)
 
dictionary ldst_h_name = {'STRH': 0, 'LDRH': 1}
 
tuple bs_ldst_h_name = bs_name(l=1, name=ldst_h_name)
 
dictionary ldst_tb_name = {'STTRB': 0, 'LDTRB': 1}
 
tuple bs_ldst_tb_name = bs_name(l=1, name=ldst_tb_name)
 
dictionary ldst_th_name = {'STTRH': 0, 'LDTRH': 1}
 
tuple bs_ldst_th_name = bs_name(l=1, name=ldst_th_name)
 
dictionary ldst_ub_name = {'STURB': 0, 'LDURB': 1}
 
tuple bs_ldst_ub_name = bs_name(l=1, name=ldst_ub_name)
 
dictionary ldst_u_name = {'STUR': 0, 'LDUR': 1}
 
tuple bs_ldst_u_name = bs_name(l=1, name=ldst_u_name)
 
dictionary ldst_t_name = {'STTR': 0, 'LDTR': 1}
 
tuple bs_ldst_st_name = bs_name(l=1, name=ldst_t_name)
 
dictionary ldst_1u_name = {'STUR': 0b0, 'LDUR': 0b1}
 
tuple bs_ldst_1u_name = bs_name(l=1, name=ldst_1u_name)
 
dictionary ldst_uh_name = {'STURH': 0, 'LDURH': 1}
 
tuple bs_ldst_uh_name = bs_name(l=1, name=ldst_uh_name)
 
dictionary ldst_sw_name = {'STRSW': 0, 'LDRSW': 1}
 
tuple bs_ldst_sw_name = bs_name(l=1, name=ldst_sw_name)
 
dictionary movwide_name = {'MOVN': 0b00, 'MOVZ': 0b10}
 
tuple bs_movwide_name = bs_name(l=2, name=movwide_name)
 
dictionary ldstp_name = {'STP': 0b0, 'LDP': 0b1}
 
tuple bs_ldstp_name = bs_name(l=1, name=ldstp_name)
 
dictionary datap0_name
 
tuple bs_datap0_name = bs_name(l=6, name=datap0_name)
 
dictionary datap1_name
 
tuple bs_datap1_name = bs_name(l=6, name=datap1_name)
 
tuple swapargs = bs_swapargs(l=1, fname="swap", mn_mod=range(1 << 1))
 
dictionary shiftr_name = {'LSL': 0b00, 'LSR': 0b01, 'ASR': 0b10, 'ROR': 0b11}
 
tuple bs_shiftr_name = bs_name(l=2, name=shiftr_name)
 
dictionary msr_name = {'MSR': 0b0, 'MRS': 0b1}
 
tuple bs_msr_name = bs_name(l=1, name=msr_name)
 

Function Documentation

def miasm2.arch.aarch64.arch.aarch64op (   name,
  fields,
  args = None,
  alias = False 
)

Definition at line 531 of file arch.py.

532 def aarch64op(name, fields, args=None, alias=False):
533  dct = {"fields": fields, "alias":alias}
534  if args is not None:
535  dct['args'] = args
536  type(name, (mn_aarch64,), dct)
537 
def miasm2.arch.aarch64.arch.ast_id2expr (   t)

Definition at line 214 of file arch.py.

215 def ast_id2expr(t):
216  if not t in mn_aarch64.regs.all_regs_ids_byname:
217  r = m2_expr.ExprId(asm_label(t))
218  else:
219  r = mn_aarch64.regs.all_regs_ids_byname[t]
220  return r
221 
def miasm2.arch.aarch64.arch.ast_id2expr32 (   t)

Definition at line 77 of file arch.py.

77 
78 def ast_id2expr32(t):
79  if not t in mn_aarch64.regs.all_regs_ids_byname:
80  r = m2_expr.ExprId(asm_label(t))
81  else:
82  r = mn_aarch64.regs.all_regs_ids_byname[t]
83  if not r.size == 32:
84  raise StopIteration
85  return r
86 
def miasm2.arch.aarch64.arch.ast_id2expr64 (   t)

Definition at line 91 of file arch.py.

91 
92 def ast_id2expr64(t):
93  if not t in mn_aarch64.regs.all_regs_ids_byname:
94  r = m2_expr.ExprId(asm_label(t))
95  else:
96  r = mn_aarch64.regs.all_regs_ids_byname[t]
97  if not r.size == 64:
98  raise StopIteration
99  return r
100 
def miasm2.arch.aarch64.arch.ast_int2expr (   a)

Definition at line 222 of file arch.py.

223 def ast_int2expr(a):
224  return m2_expr.ExprInt64(a)
def miasm2.arch.aarch64.arch.ast_int2expr32 (   a)

Definition at line 87 of file arch.py.

87 
88 def ast_int2expr32(a):
89  return m2_expr.ExprInt32(a)
90 
def miasm2.arch.aarch64.arch.ast_int2expr64 (   a)

Definition at line 101 of file arch.py.

102 def ast_int2expr64(a):
103  return m2_expr.ExprInt64(a)
def miasm2.arch.aarch64.arch.deref2expr_nooff (   t)

Definition at line 242 of file arch.py.

243 def deref2expr_nooff(t):
244  t = t[0]
245  # XXX default
246  return m2_expr.ExprOp("preinc", t[0], m2_expr.ExprInt64(0))
247 
def miasm2.arch.aarch64.arch.deref2expr_post (   t)

Definition at line 248 of file arch.py.

249 def deref2expr_post(t):
250  t = t[0]
251  if t[1] in regs_module.all_regs_ids:
252  raise StopIteration
253  return m2_expr.ExprOp("postinc", t[0], t[1])
254 
def miasm2.arch.aarch64.arch.deref2expr_pre (   t)

Definition at line 255 of file arch.py.

256 def deref2expr_pre(t):
257  t = t[0]
258  if t[1] in regs_module.all_regs_ids:
259  raise StopIteration
260  return m2_expr.ExprOp("preinc", t[0], t[1])
261 
def miasm2.arch.aarch64.arch.deref2expr_pre_wb (   t)

Definition at line 262 of file arch.py.

263 def deref2expr_pre_wb(t):
264  t = t[0]
265  if t[1] in regs_module.all_regs_ids:
266  raise StopIteration
267  return m2_expr.ExprOp("preinc_wb", t[0], t[1])
def miasm2.arch.aarch64.arch.deref_ext2op (   t)

Definition at line 285 of file arch.py.

286 def deref_ext2op(t):
287  t = t[0]
288  if len(t) == 4:
289  expr = set_imm_to_size(t[1].size, t[3])
290  if expr is None:
291  raise StopIteration
292  return m2_expr.ExprOp('segm', t[0], m2_expr.ExprOp(t[2], t[1], expr))
293  elif len(t) == 2:
294  return m2_expr.ExprOp('segm', t[0], t[1])
295 
296  raise ValueError("cad deref")

+ Here is the call graph for this function:

def miasm2.arch.aarch64.arch.extend2expr (   t)

Definition at line 157 of file arch.py.

158 def extend2expr(t):
159  if len(t) == 1:
160  return t[0]
161  return m2_expr.ExprOp(t[1], t[0], t[2])
162 
def miasm2.arch.aarch64.arch.get_size (   parent)

Definition at line 1259 of file arch.py.

1260 def get_size(parent):
1261  if not hasattr(parent, "size"):
1262  return 0
1263  if hasattr(parent.size, "amount"):
1264  size = parent.size.amount
1265  else:
1266  size = parent.size.value
1267  return size
1268 

+ Here is the caller graph for this function:

def miasm2.arch.aarch64.arch.imm_to_imm_rot_form (   value,
  size 
)

Definition at line 1064 of file arch.py.

1065 def imm_to_imm_rot_form(value, size):
1066  for i in xrange(0, size):
1067  mod_value = int(rol(value, i, size))
1068  if (mod_value + 1) & mod_value == 0:
1069  return i
1070  return None
1071 

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

def miasm2.arch.aarch64.arch.op_ext_reg (   s,
  l,
  t 
)

Definition at line 129 of file arch.py.

130 def op_ext_reg(s, l, t):
131  return t[0]
132 
def miasm2.arch.aarch64.arch.op_shift2expr (   s,
  l,
  t 
)

Definition at line 121 of file arch.py.

122 def op_shift2expr(s, l, t):
123  return shift2expr_dct[t[0]]
124 
def miasm2.arch.aarch64.arch.op_shift2expr_slice_at (   s,
  l,
  t 
)

Definition at line 125 of file arch.py.

126 def op_shift2expr_slice_at(s, l, t):
127  return "slice_at"
128 
def miasm2.arch.aarch64.arch.rol (   value,
  amount,
  size 
)

Definition at line 1058 of file arch.py.

1059 def rol(value, amount, size):
1060  return (value << amount) | (value >> (size - amount))

+ Here is the caller graph for this function:

def miasm2.arch.aarch64.arch.ror (   value,
  amount,
  size 
)

Definition at line 1054 of file arch.py.

1055 def ror(value, amount, size):
1056  return (value >> amount) | (value << (size - amount))
1057 

+ Here is the caller graph for this function:

def miasm2.arch.aarch64.arch.set_imm_to_size (   size,
  expr 
)

Definition at line 805 of file arch.py.

806 def set_imm_to_size(size, expr):
807  if size == expr.size:
808  return expr
809  if size > expr.size:
810  expr = m2_expr.ExprInt(int(expr.arg), size)
811  else:
812  if expr.arg > (1 << size) - 1:
813  return None
814  expr = m2_expr.ExprInt(int(expr.arg), size)
815  return expr
816 

+ Here is the caller graph for this function:

def miasm2.arch.aarch64.arch.set_mem_off (   parent,
  imm 
)

Definition at line 1243 of file arch.py.

1244 def set_mem_off(parent, imm):
1245  if hasattr(parent, 'simm'):
1246  mask = (1 << parent.simm.l) - 1
1247  if imm != sign_ext(imm & mask, parent.simm.l, 64):
1248  return False
1249  parent.simm.value = imm & mask
1250  elif hasattr(parent, 'uimm'):
1251  mask = (1 << parent.uimm.l) - 1
1252  if imm > mask:
1253  return False
1254  parent.uimm.value = imm
1255  else:
1256  raise ValueError('unknown imm')
1257  return True
1258 
def sign_ext
Definition: cpu.py:1602

+ Here is the call graph for this function:

def miasm2.arch.aarch64.arch.shift2expr (   t)

Definition at line 133 of file arch.py.

134 def shift2expr(t):
135  if len(t) == 1:
136  return t[0]
137  elif len(t) == 3:
138  if t[0].size == 32 and isinstance(t[2], m2_expr.ExprInt):
139  t[2] = m2_expr.ExprInt32(t[2].arg)
140  return m2_expr.ExprOp(t[1], t[0], t[2])
141  else:
142  raise ValueError('bad string')
143 
def miasm2.arch.aarch64.arch.shift2expr_sc (   t)

Definition at line 144 of file arch.py.

145 def shift2expr_sc(t):
146  if len(t) == 1:
147  return t[0]
148  elif len(t) == 3:
149  if t[0].size == 32 and isinstance(t[2], m2_expr.ExprInt):
150  t[2] = m2_expr.ExprInt32(t[2].arg)
151  if t[1] != '<<':
152  raise ValueError('bad op')
153  return m2_expr.ExprOp("slice_at", t[0], t[2])
154  else:
155  raise ValueError('bad string')
156 
def miasm2.arch.aarch64.arch.shiftext2expr (   t)

Definition at line 163 of file arch.py.

164 def shiftext2expr(t):
165  if len(t) == 1:
166  return t[0]
167  else:
168  return m2_expr.ExprOp(t[1], t[0], t[2])
def miasm2.arch.aarch64.arch.test_set_sf (   parent,
  size 
)

Definition at line 1001 of file arch.py.

1002 def test_set_sf(parent, size):
1003  if not hasattr(parent, 'sf'):
1004  return False
1005  if parent.sf.value == None:
1006  parent.sf.value = 1 if size == 64 else 0
1007  return True
1008  psize = 64 if parent.sf.value else 32
1009  return psize == size
1010 

+ Here is the caller graph for this function:

Variable Documentation

tuple miasm2.arch.aarch64.arch.a_immr = bs(l=6, cls=(aarch64_imm_sf, m_arg), fname="imm1", order=-1)

Definition at line 1565 of file arch.py.

tuple miasm2.arch.aarch64.arch.a_imms = bs(l=6, cls=(aarch64_imm_sf, m_arg), fname="imm1", order=-1)

Definition at line 1564 of file arch.py.

dictionary miasm2.arch.aarch64.arch.adsu_name = {'ADD': 0, 'SUB': 1}

Definition at line 1569 of file arch.py.

tuple miasm2.arch.aarch64.arch.all_binaryop_lsl_t
Initial value:
2  shift_str)
def literal_list
Definition: cpu.py:80

Definition at line 169 of file arch.py.

tuple miasm2.arch.aarch64.arch.all_binaryop_shiftleft_t
Initial value:
2  ["LSL"])
def literal_list
Definition: cpu.py:80

Definition at line 172 of file arch.py.

tuple miasm2.arch.aarch64.arch.all_extend2_t = literal_list(extend2_lst)

Definition at line 179 of file arch.py.

tuple miasm2.arch.aarch64.arch.all_extend_t = literal_list(extend_lst)

Definition at line 178 of file arch.py.

tuple miasm2.arch.aarch64.arch.b40 = bs(l=5, cls=(aarch64_b40,), fname='b40', order=1)

Definition at line 1577 of file arch.py.

tuple miasm2.arch.aarch64.arch.bcond
Initial value:
1 = bs_mod_name(l=4, fname='cond', mn_mod=['EQ', 'NE', 'CS', 'CC',
2  'MI', 'PL', 'VS', 'VC',
3  'HI', 'LS', 'GE', 'LT',
4  'GT', 'LE', 'AL', 'NV'])

Definition at line 1638 of file arch.py.

list miasm2.arch.aarch64.arch.BRCOND = ['B.' + cond for cond in CONDS]

Definition at line 320 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_adsu_name = bs_name(l=1, name=adsu_name)

Definition at line 1570 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ccmp_name = bs_name(l=1, name=ccmp_name)

Definition at line 1661 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_datap0_name = bs_name(l=6, name=datap0_name)

Definition at line 1790 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_datap1_name = bs_name(l=6, name=datap1_name)

Definition at line 1795 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_1u_name = bs_name(l=1, name=ldst_1u_name)

Definition at line 1687 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_b_name = bs_name(l=1, name=ldst_b_name)

Definition at line 1666 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_h_name = bs_name(l=1, name=ldst_h_name)

Definition at line 1670 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_name = bs_name(l=1, name=ldst_name)

Definition at line 1668 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_st_name = bs_name(l=1, name=ldst_t_name)

Definition at line 1684 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_sw_name = bs_name(l=1, name=ldst_sw_name)

Definition at line 1694 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_tb_name = bs_name(l=1, name=ldst_tb_name)

Definition at line 1673 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_th_name = bs_name(l=1, name=ldst_th_name)

Definition at line 1676 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_u_name = bs_name(l=1, name=ldst_u_name)

Definition at line 1681 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_ub_name = bs_name(l=1, name=ldst_ub_name)

Definition at line 1679 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldst_uh_name = bs_name(l=1, name=ldst_uh_name)

Definition at line 1690 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_ldstp_name = bs_name(l=1, name=ldstp_name)

Definition at line 1778 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_logic_name = bs_name(l=2, name=logic_name)

Definition at line 1607 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_logicbf_name = bs_name(l=2, name=logicbf_name)

Definition at line 1617 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_movwide_name = bs_name(l=2, name=movwide_name)

Definition at line 1771 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_msr_name = bs_name(l=1, name=msr_name)

Definition at line 1912 of file arch.py.

tuple miasm2.arch.aarch64.arch.bs_shiftr_name = bs_name(l=2, name=shiftr_name)

Definition at line 1896 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ccmp_name = {'CCMN': 0, 'CCMP': 1}

Definition at line 1660 of file arch.py.

tuple miasm2.arch.aarch64.arch.COMMA = Suppress(",")

Definition at line 270 of file arch.py.

tuple miasm2.arch.aarch64.arch.cond_arg = bs(l=4, cls=(aarch64_cond_arg,), fname=cond)

Definition at line 1643 of file arch.py.

tuple miasm2.arch.aarch64.arch.cond_inv_arg = bs(l=4, cls=(aarch64_cond_inv_arg,), fname=cond)

Definition at line 1644 of file arch.py.

list miasm2.arch.aarch64.arch.CONDS
Initial value:
1 = [
2  'EQ', 'NE', 'CS', 'CC',
3  'MI', 'PL', 'VS', 'VC',
4  'HI', 'LS', 'GE', 'LT',
5  'GT', 'LE', 'AL', 'NV']

Definition at line 308 of file arch.py.

list miasm2.arch.aarch64.arch.CONDS_INV
Initial value:
1 = [
2  'NE', 'EQ', 'CC', 'CS',
3  'PL', 'MI', 'VC', 'VS',
4  'LS', 'HI', 'LT', 'GE',
5  'LE', 'GT', 'NV', 'AL']

Definition at line 314 of file arch.py.

tuple miasm2.arch.aarch64.arch.console_handler = logging.StreamHandler()

Definition at line 18 of file arch.py.

tuple miasm2.arch.aarch64.arch.crm = bs(l=4, cls=(aarch64_crreg,), fname="crm")

Definition at line 1477 of file arch.py.

tuple miasm2.arch.aarch64.arch.crn = bs(l=4, cls=(aarch64_crreg,), fname="crn")

Definition at line 1476 of file arch.py.

dictionary miasm2.arch.aarch64.arch.datap0_name
Initial value:
1 = {'RBIT': 0b000000, 'REV16': 0b000001,
2  'REV': 0b000010,
3  'CLZ': 0b000100, 'CLS': 0b000101}

Definition at line 1787 of file arch.py.

dictionary miasm2.arch.aarch64.arch.datap1_name
Initial value:
1 = {'RBIT': 0b000000, 'REV16': 0b000001,
2  'REV32': 0b000010, 'REV': 0b000011,
3  'CLZ': 0b000100, 'CLS': 0b000101}

Definition at line 1792 of file arch.py.

tuple miasm2.arch.aarch64.arch.deref = (deref_off_post | deref_off_pre_wb | deref_off_pre | deref_nooff)

Definition at line 282 of file arch.py.

tuple miasm2.arch.aarch64.arch.deref_ext2
Initial value:
1 = Group(LBRACK + gpregs_32_64 + COMMA + gpregs_32_64 +
2  Optional(all_extend2_t + int_or_expr) + RBRACK)

Definition at line 297 of file arch.py.

tuple miasm2.arch.aarch64.arch.deref_nooff
Initial value:
1 = Group(
2  LBRACK + gpregs64_info.parser + RBRACK)

Definition at line 273 of file arch.py.

tuple miasm2.arch.aarch64.arch.deref_off_post
Initial value:
1 = Group(LBRACK + gpregs64_info.parser +
2  RBRACK + COMMA + int_or_expr64)

Definition at line 275 of file arch.py.

tuple miasm2.arch.aarch64.arch.deref_off_pre
Initial value:
1 = Group(LBRACK + gpregs64_info.parser +
2  COMMA + int_or_expr64 + RBRACK)

Definition at line 277 of file arch.py.

tuple miasm2.arch.aarch64.arch.deref_off_pre_wb
Initial value:
1 = Group(LBRACK + gpregs64_info.parser + COMMA +
2  int_or_expr64 + RBRACK + POSTINC)

Definition at line 279 of file arch.py.

dictionary miasm2.arch.aarch64.arch.EXT2_OP
Initial value:
1 = {0b010: 'UXTW',
2  0b011: 'LSL',
3  0b110: 'SXTW',
4  0b111: 'SXTX'}

Definition at line 918 of file arch.py.

tuple miasm2.arch.aarch64.arch.EXT2_OP_INV = dict([(items[1], items[0]) for items in EXT2_OP.items()])

Definition at line 922 of file arch.py.

list miasm2.arch.aarch64.arch.extend2_lst = ['UXTW', 'LSL', 'SXTW', 'SXTX']

Definition at line 176 of file arch.py.

list miasm2.arch.aarch64.arch.extend_lst = ['UXTB', 'UXTH', 'UXTW', 'UXTX', 'SXTB', 'SXTH', 'SXTW', 'SXTX']

Definition at line 175 of file arch.py.

tuple miasm2.arch.aarch64.arch.gpregs_32_64 = (gpregs32_info.parser | gpregs64_info.parser)

Definition at line 203 of file arch.py.

dictionary miasm2.arch.aarch64.arch.gpregs_info
Initial value:
1 = {32: gpregs32_info,
2  64: gpregs64_info}

Definition at line 225 of file arch.py.

tuple miasm2.arch.aarch64.arch.gpregsz_32_64 = (gpregsz32_info.parser | gpregsz64_info.parser | int_or_expr)

Definition at line 204 of file arch.py.

dictionary miasm2.arch.aarch64.arch.gpregsz_info
Initial value:
1 = {32: gpregsz32_info,
2  64: gpregsz64_info}

Definition at line 227 of file arch.py.

tuple miasm2.arch.aarch64.arch.gpregz32_extend
Initial value:
1 = (gpregsz32_info.parser + Optional(
2  all_extend_t + int_or_expr32))

Definition at line 182 of file arch.py.

tuple miasm2.arch.aarch64.arch.gpregz64_extend
Initial value:
1 = (gpregsz64_info.parser + Optional(
2  all_extend_t + int_or_expr64))

Definition at line 184 of file arch.py.

tuple miasm2.arch.aarch64.arch.hw = bs(l=2, fname='hw')

Definition at line 1561 of file arch.py.

tuple miasm2.arch.aarch64.arch.imm16 = bs(l=16, fname="imm", order=-1)

Definition at line 1537 of file arch.py.

tuple miasm2.arch.aarch64.arch.imm16_hw = bs(l=16, cls=(aarch64_imm_hw,), fname='imm')

Definition at line 1559 of file arch.py.

tuple miasm2.arch.aarch64.arch.imm16_hw_sc = bs(l=16, cls=(aarch64_imm_hw_sc,), fname='imm')

Definition at line 1560 of file arch.py.

tuple miasm2.arch.aarch64.arch.imm3 = bs(l=3, fname="imm", order=-1)

Definition at line 1521 of file arch.py.

tuple miasm2.arch.aarch64.arch.imm32_3 = bs(l=3, fname="imm")

Definition at line 1519 of file arch.py.

tuple miasm2.arch.aarch64.arch.imm6 = bs(l=6, fname="imm", order=-1)

Definition at line 1520 of file arch.py.

tuple miasm2.arch.aarch64.arch.imm_sft_12 = bs(l=12, cls=(aarch64_imm_sft,))

Definition at line 1516 of file arch.py.

tuple miasm2.arch.aarch64.arch.immhi = bs(l=19, cls=(aarch64_immhi_page,))

Definition at line 1542 of file arch.py.

tuple miasm2.arch.aarch64.arch.immhip = bs(l=19, cls=(aarch64_immhip_page,))

Definition at line 1541 of file arch.py.

tuple miasm2.arch.aarch64.arch.immlo = bs(l=2, fname='immlo')

Definition at line 1540 of file arch.py.

tuple miasm2.arch.aarch64.arch.immn = bs(l=1, fname='immn')

Definition at line 1556 of file arch.py.

tuple miasm2.arch.aarch64.arch.immr = bs(l=6, fname='immr')

Definition at line 1555 of file arch.py.

tuple miasm2.arch.aarch64.arch.imms = bs(l=6, cls=(aarch64_imm_nsr,), fname='imms')

Definition at line 1554 of file arch.py.

miasm2.arch.aarch64.arch.int_or_expr = base_expr

Definition at line 111 of file arch.py.

miasm2.arch.aarch64.arch.int_or_expr32 = base_expr32

Definition at line 112 of file arch.py.

miasm2.arch.aarch64.arch.int_or_expr64 = base_expr64

Definition at line 113 of file arch.py.

tuple miasm2.arch.aarch64.arch.LBRACK = Suppress("[")

Definition at line 268 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_1u_name = {'STUR': 0b0, 'LDUR': 0b1}

Definition at line 1686 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_b_name = {'STRB': 0, 'LDRB': 1}

Definition at line 1665 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_h_name = {'STRH': 0, 'LDRH': 1}

Definition at line 1669 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_name = {'STR': 0, 'LDR': 1}

Definition at line 1667 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_sw_name = {'STRSW': 0, 'LDRSW': 1}

Definition at line 1693 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_t_name = {'STTR': 0, 'LDTR': 1}

Definition at line 1683 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_tb_name = {'STTRB': 0, 'LDTRB': 1}

Definition at line 1672 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_th_name = {'STTRH': 0, 'LDTRH': 1}

Definition at line 1675 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_u_name = {'STUR': 0, 'LDUR': 1}

Definition at line 1680 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_ub_name = {'STURB': 0, 'LDURB': 1}

Definition at line 1678 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldst_uh_name = {'STURH': 0, 'LDURH': 1}

Definition at line 1689 of file arch.py.

dictionary miasm2.arch.aarch64.arch.ldstp_name = {'STP': 0b0, 'LDP': 0b1}

Definition at line 1777 of file arch.py.

tuple miasm2.arch.aarch64.arch.log = logging.getLogger("aarch64dis")

Definition at line 17 of file arch.py.

dictionary miasm2.arch.aarch64.arch.logic_name = {'AND': 0, 'ORR': 1, 'EOR': 2}

Definition at line 1606 of file arch.py.

dictionary miasm2.arch.aarch64.arch.logicbf_name = {'SBFM': 0b00, 'BFM': 0b01, 'UBFM': 0b10}

Definition at line 1616 of file arch.py.

tuple miasm2.arch.aarch64.arch.modf = bs_mod_name(l=1, fname='modf', mn_mod=['', 'S'])

Definition at line 1401 of file arch.py.

dictionary miasm2.arch.aarch64.arch.movwide_name = {'MOVN': 0b00, 'MOVZ': 0b10}

Definition at line 1770 of file arch.py.

dictionary miasm2.arch.aarch64.arch.msr_name = {'MSR': 0b0, 'MRS': 0b1}

Definition at line 1911 of file arch.py.

tuple miasm2.arch.aarch64.arch.my_var_parser = parse_ast(ast_id2expr, ast_int2expr)

Definition at line 238 of file arch.py.

tuple miasm2.arch.aarch64.arch.my_var_parser32 = parse_ast(ast_id2expr32, ast_int2expr32)

Definition at line 104 of file arch.py.

tuple miasm2.arch.aarch64.arch.my_var_parser64 = parse_ast(ast_id2expr64, ast_int2expr64)

Definition at line 105 of file arch.py.

tuple miasm2.arch.aarch64.arch.nzcv = bs(l=4, cls=(aarch64_uint64_noarg, m_arg), fname="nzcv", order=-1)

Definition at line 1525 of file arch.py.

tuple miasm2.arch.aarch64.arch.offs14 = bs(l=14, cls=(aarch64_offs,), fname='off')

Definition at line 1575 of file arch.py.

tuple miasm2.arch.aarch64.arch.offs19 = bs(l=19, cls=(aarch64_offs,), fname='off')

Definition at line 1573 of file arch.py.

tuple miasm2.arch.aarch64.arch.offs26 = bs(l=26, cls=(aarch64_offs,), fname='off')

Definition at line 1574 of file arch.py.

tuple miasm2.arch.aarch64.arch.op1 = bs(l=3, cls=(aarch64_uint64, m_arg), fname="op1")

Definition at line 1533 of file arch.py.

tuple miasm2.arch.aarch64.arch.op2 = bs(l=3, cls=(aarch64_uint64, m_arg), fname="op2")

Definition at line 1534 of file arch.py.

tuple miasm2.arch.aarch64.arch.opc = bs(l=1, fname='opc', order=-1)

Definition at line 1585 of file arch.py.

tuple miasm2.arch.aarch64.arch.opsize = bs(l=2, fname="size")

Definition at line 1582 of file arch.py.

tuple miasm2.arch.aarch64.arch.option = bs(l=3, fname='option', order=-1)

Definition at line 1544 of file arch.py.

list miasm2.arch.aarch64.arch.OPTION2SIZE
Initial value:
1 = [32, 32, 32, 64,
2  32, 32, 32, 64]

Definition at line 882 of file arch.py.

tuple miasm2.arch.aarch64.arch.post_pre = bs(l=1, order=-1, fname='postpre')

Definition at line 1657 of file arch.py.

tuple miasm2.arch.aarch64.arch.POSTINC = Suppress("!")

Definition at line 271 of file arch.py.

tuple miasm2.arch.aarch64.arch.ra = bs(l=5, cls=(aarch64_gpregz,), fname="ra")

Definition at line 1447 of file arch.py.

tuple miasm2.arch.aarch64.arch.ra64 = bs(l=5, cls=(aarch64_gpregz64,), fname="ra")

Definition at line 1485 of file arch.py.

tuple miasm2.arch.aarch64.arch.RBRACK = Suppress("]")

Definition at line 269 of file arch.py.

tuple miasm2.arch.aarch64.arch.rd = bs(l=5, cls=(aarch64_gpreg,), fname="rd")

Definition at line 1446 of file arch.py.

tuple miasm2.arch.aarch64.arch.rd32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rd")

Definition at line 1489 of file arch.py.

tuple miasm2.arch.aarch64.arch.rd64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rd")

Definition at line 1483 of file arch.py.

tuple miasm2.arch.aarch64.arch.rdz = bs(l=5, cls=(aarch64_gpregz,), fname="rd")

Definition at line 1454 of file arch.py.

tuple miasm2.arch.aarch64.arch.reg_ext_off = (gpregz32_extend | gpregz64_extend)

Definition at line 201 of file arch.py.

dictionary miasm2.arch.aarch64.arch.replace_regs

Definition at line 28 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm = bs(l=5, cls=(aarch64_gpreg,), fname="rm")

Definition at line 1445 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rm")

Definition at line 1488 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rm")

Definition at line 1482 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm_ext = bs(l=5, cls=(aarch64_gpreg_ext,), fname="rm")

Definition at line 1547 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm_ext2 = bs(l=5, cls=(aarch64_gpreg_ext2,), fname="rm")

Definition at line 1550 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm_ext2_128 = bs(l=5, cls=(aarch64_gpreg_ext2_128,), fname="rm")

Definition at line 1551 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm_n1 = bs(l=5, cls=(aarch64_gpreg_n1,), fname="rm")

Definition at line 1458 of file arch.py.

tuple miasm2.arch.aarch64.arch.rm_sft = bs(l=5, cls=(aarch64_gpreg_sftimm,), fname="rm")

Definition at line 1548 of file arch.py.

tuple miasm2.arch.aarch64.arch.rmz = bs(l=5, cls=(aarch64_gpregz,), fname="rm")

Definition at line 1452 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn = bs(l=5, cls=(aarch64_gpreg,), fname="rn")

Definition at line 1443 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn0 = bs(l=5, cls=(aarch64_gpreg0,), fname="rn")

Definition at line 1450 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rn")

Definition at line 1487 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn32_na = bs(l=5, cls=(aarch64_gpreg32_noarg,), fname="rn", order=-1)

Definition at line 1462 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rn")

Definition at line 1480 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64_deref = bs(l=5, cls=(aarch64_deref,), fname="rn")

Definition at line 1509 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64_deref_nooff = bs(l=5, cls=(aarch64_deref_nooff,), fname="rn")

Definition at line 1514 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64_deref_sd = bs(l=5, cls=(aarch64_sd_scale,), fname="rn")

Definition at line 1512 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64_deref_sf = bs(l=5, cls=(aarch64_sf_scale,), fname="rn")

Definition at line 1511 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64_deref_sz = bs(l=5, cls=(aarch64_deref_size,), fname="rn")

Definition at line 1510 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64_na = bs(l=5, cls=(aarch64_gpreg64_noarg,), fname="rn", order=-1)

Definition at line 1463 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn64_v = bs(l=5, cls=(aarch64_gpreg64_nodec,), fname='rn', order=-1)

Definition at line 1441 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn_n1 = bs(l=5, cls=(aarch64_gpreg_n1,), fname="rn")

Definition at line 1457 of file arch.py.

tuple miasm2.arch.aarch64.arch.rn_na = bs(l=5, cls=(aarch64_gpreg_noarg,), fname="rn", order=-1)

Definition at line 1461 of file arch.py.

tuple miasm2.arch.aarch64.arch.rnz = bs(l=5, cls=(aarch64_gpregz,), fname="rn")

Definition at line 1453 of file arch.py.

tuple miasm2.arch.aarch64.arch.rs = bs(l=5, cls=(aarch64_gpreg,), fname="rs")

Definition at line 1444 of file arch.py.

tuple miasm2.arch.aarch64.arch.rs32 = bs(l=5, cls=(aarch64_gpreg32,), fname="rs")

Definition at line 1490 of file arch.py.

tuple miasm2.arch.aarch64.arch.rs64 = bs(l=5, cls=(aarch64_gpreg64,), fname="rs")

Definition at line 1481 of file arch.py.

tuple miasm2.arch.aarch64.arch.rt = bs(l=5, cls=(aarch64_gpregz,), fname="rt")

Definition at line 1448 of file arch.py.

tuple miasm2.arch.aarch64.arch.rt2 = bs(l=5, cls=(aarch64_gpregz,), fname="rt2")

Definition at line 1449 of file arch.py.

tuple miasm2.arch.aarch64.arch.rt32 = bs(l=5, cls=(aarch64_gpregz32,), fname="rt")

Definition at line 1505 of file arch.py.

tuple miasm2.arch.aarch64.arch.rt64 = bs(l=5, cls=(aarch64_gpregz64,), fname="rt")

Definition at line 1484 of file arch.py.

tuple miasm2.arch.aarch64.arch.rt_isf = bs(l=5, cls=(aarch64_gpreg_isf,), fname="rt")

Definition at line 1507 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd = bs(l=5, cls=(aarch64_simdreg,), fname='sd')

Definition at line 1583 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd08 = bs(l=5, cls=(aarch64_simd08,), fname="rd")

Definition at line 1492 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd1 = bs(l=5, cls=(aarch64_simdreg_h,), fname="rt")

Definition at line 1465 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd128 = bs(l=5, cls=(aarch64_simd128,), fname="rd")

Definition at line 1496 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd16 = bs(l=5, cls=(aarch64_simd16,), fname="rd")

Definition at line 1493 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd2 = bs(l=5, cls=(aarch64_simdreg_h,), fname="rt2")

Definition at line 1466 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd32 = bs(l=5, cls=(aarch64_simd32,), fname="rd")

Definition at line 1494 of file arch.py.

tuple miasm2.arch.aarch64.arch.sd64 = bs(l=5, cls=(aarch64_simd64,), fname="rd")

Definition at line 1495 of file arch.py.

tuple miasm2.arch.aarch64.arch.sda_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="ra")

Definition at line 1471 of file arch.py.

tuple miasm2.arch.aarch64.arch.sdd_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="rd")

Definition at line 1469 of file arch.py.

tuple miasm2.arch.aarch64.arch.sdm_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="rm")

Definition at line 1470 of file arch.py.

tuple miasm2.arch.aarch64.arch.sdm_32_64_zero = bs(l=5, cls=(aarch64_simdreg_32_64_zero,), fname="rm")

Definition at line 1474 of file arch.py.

tuple miasm2.arch.aarch64.arch.sdn_32_64 = bs(l=5, cls=(aarch64_simdreg_32_64,), fname="rn")

Definition at line 1468 of file arch.py.

tuple miasm2.arch.aarch64.arch.sdsize = bs(l=2, fname="size")

Definition at line 1581 of file arch.py.

tuple miasm2.arch.aarch64.arch.sdsize1 = bs(l=1, fname="size")

Definition at line 1579 of file arch.py.

tuple miasm2.arch.aarch64.arch.sf = bs(l=1, fname='sf', order=-1)

Definition at line 1402 of file arch.py.

tuple miasm2.arch.aarch64.arch.shift = bs(l=2, fname='shift')

Definition at line 1436 of file arch.py.

dictionary miasm2.arch.aarch64.arch.shift2expr_dct = {'LSL': '<<', 'LSR': '>>', 'ASR': 'a>>', 'ROR': '>>>'}

Definition at line 116 of file arch.py.

tuple miasm2.arch.aarch64.arch.shift32_off
Initial value:
1 = (gpregsz32_info.parser + Optional(all_binaryop_lsl_t +
2  (gpregs32_info.parser | int_or_expr)))

Definition at line 188 of file arch.py.

tuple miasm2.arch.aarch64.arch.shift64_off
Initial value:
1 = (gpregsz64_info.parser + Optional(all_binaryop_lsl_t +
2  (gpregs64_info.parser | int_or_expr)))

Definition at line 190 of file arch.py.

list miasm2.arch.aarch64.arch.shift_expr = ["<<", ">>", "a>>", '>>>']

Definition at line 118 of file arch.py.

tuple miasm2.arch.aarch64.arch.shift_off = (shift32_off | shift64_off)

Definition at line 200 of file arch.py.

list miasm2.arch.aarch64.arch.shift_str = ["LSL", "LSR", "ASR", "ROR"]

Definition at line 117 of file arch.py.

tuple miasm2.arch.aarch64.arch.shiftb = bs(l=1, fname='shift', order=-1)

Definition at line 1438 of file arch.py.

tuple miasm2.arch.aarch64.arch.shiftimm_imm_sc
Initial value:
1 = (int_or_expr + all_binaryop_shiftleft_t +
2  int_or_expr)

Definition at line 194 of file arch.py.

miasm2.arch.aarch64.arch.shiftimm_off_sc = shiftimm_imm_sc|int_or_expr

Definition at line 197 of file arch.py.

dictionary miasm2.arch.aarch64.arch.shiftr_name = {'LSL': 0b00, 'LSR': 0b01, 'ASR': 0b10, 'ROR': 0b11}

Definition at line 1895 of file arch.py.

tuple miasm2.arch.aarch64.arch.simdregs
Initial value:
1 = (simd08_info.parser | simd16_info.parser |
2  simd32_info.parser | simd64_info.parser)

Definition at line 206 of file arch.py.

tuple miasm2.arch.aarch64.arch.simdregs_h = (simd32_info.parser | simd64_info.parser | simd128_info.parser)

Definition at line 208 of file arch.py.

tuple miasm2.arch.aarch64.arch.simdregs_h_zero
Initial value:
1 = (simd32_info.parser |
2  simd64_info.parser | simd128_info.parser | int_or_expr)

Definition at line 210 of file arch.py.

dictionary miasm2.arch.aarch64.arch.simds_info
Initial value:
1 = {8: simd08_info,
2  16: simd16_info,
3  32: simd32_info,
4  64: simd64_info,
5  128: simd128_info}

Definition at line 231 of file arch.py.

tuple miasm2.arch.aarch64.arch.simm6 = bs(l=6, cls=(aarch64_int64_noarg, m_arg), fname="imm", order=-1)

Definition at line 1522 of file arch.py.

tuple miasm2.arch.aarch64.arch.simm7 = bs(l=7, cls=(aarch64_int64_noarg,), fname="imm", order=-1)

Definition at line 1524 of file arch.py.

tuple miasm2.arch.aarch64.arch.simm9 = bs(l=9, cls=(aarch64_int64_noarg,), fname="imm", order=-1)

Definition at line 1523 of file arch.py.

tuple miasm2.arch.aarch64.arch.sn08 = bs(l=5, cls=(aarch64_simd08,), fname="rn")

Definition at line 1498 of file arch.py.

tuple miasm2.arch.aarch64.arch.sn128 = bs(l=5, cls=(aarch64_simd128,), fname="rn")

Definition at line 1502 of file arch.py.

tuple miasm2.arch.aarch64.arch.sn16 = bs(l=5, cls=(aarch64_simd16,), fname="rn")

Definition at line 1499 of file arch.py.

tuple miasm2.arch.aarch64.arch.sn32 = bs(l=5, cls=(aarch64_simd32,), fname="rn")

Definition at line 1500 of file arch.py.

tuple miasm2.arch.aarch64.arch.sn64 = bs(l=5, cls=(aarch64_simd64,), fname="rn")

Definition at line 1501 of file arch.py.

tuple miasm2.arch.aarch64.arch.swapargs = bs_swapargs(l=1, fname="swap", mn_mod=range(1 << 1))

Definition at line 1828 of file arch.py.

tuple miasm2.arch.aarch64.arch.uimm12 = bs(l=12, cls=(aarch64_uint64_noarg,), fname="imm", order=-1)

Definition at line 1527 of file arch.py.

tuple miasm2.arch.aarch64.arch.uimm16 = bs(l=16, cls=(aarch64_uint64_noarg, m_arg), fname="imm", order=-1)

Definition at line 1528 of file arch.py.

tuple miasm2.arch.aarch64.arch.uimm5 = bs(l=5, cls=(aarch64_uint64_noarg, m_arg), fname="imm", order=-1)

Definition at line 1526 of file arch.py.

tuple miasm2.arch.aarch64.arch.uimm7 = bs(l=7, cls=(aarch64_uint64_noarg,), fname="imm", order=-1)

Definition at line 1529 of file arch.py.

tuple miasm2.arch.aarch64.arch.uimm8 = bs(l=8, cls=(aarch64_uint64,), fname="imm", order=-1)

Definition at line 1531 of file arch.py.

dictionary miasm2.arch.aarch64.arch.UINTS = {32: uint32, 64: uint64}

Definition at line 1061 of file arch.py.