Package envi :: Module arm
[hide private]
[frames] | no frames]

Module arm

source code

The initial arm module.

Classes [hide private]
  ArmOpcode
  ArmOperand
  ArmModule
Functions [hide private]
 
binary(s) source code
 
chopmul(opcode) source code
 
dpbase(opval)
Parse and return opcode,sflag,Rn,Rd for a standard dataprocessing instruction.
source code
 
p_dp_imm_shift(opval) source code
 
p_misc(opval) source code
 
p_dp_reg_shift(opval) source code
 
p_misc1(opval) source code
 
p_mult(opval) source code
 
p_dp_imm(opval) source code
 
p_undef(opval) source code
 
p_mov_imm_stat(opval) source code
 
p_load_imm_off(opval) source code
 
p_load_reg_off(opval) source code
 
p_media(opval) source code
 
p_arch_undef(opval) source code
 
p_load_mult(opval) source code
 
p_branch(opval) source code
 
p_coproc_load(opval) source code
 
p_coproc_dp(opval) source code
 
p_coproc_reg_xfer(opval) source code
 
p_swint(opval) source code
Variables [hide private]
  COND_LO = 0x9
  COND_EQ = 0
  COND_NE = 1
  COND_CS = 2
  COND_CC = 3
  COND_MI = 4
  COND_PL = 5
  COND_VS = 6
  COND_VC = 7
  COND_HI = 8
  COND_LS = 9
  COND_GE = 10
  COND_LT = 11
  COND_GT = 12
  COND_LE = 13
  COND_AL = 14
  COND_EXTENDED = 15
  cond_codes = {COND_EQ: "EQ", COND_NE: "NE", COND_CS: "CS", CON...
  INST_ENC_DP_IMM = 0
  INST_ENC_MISC = 1
  IENC_DP_IMM_SHIFT = 0
  IENC_MISC = 1
  IENC_DP_REG_SHIFT = 2
  IENC_MISC1 = 3
  IENC_MULT = 4
  IENC_DP_IMM = 5
  IENC_UNDEF = 6
  IENC_MOV_IMM_STAT = 7
  IENC_LOAD_IMM_OFF = 8
  IENC_LOAD_REG_OFF = 9
  IENC_MEDIA = 10
  IENC_ARCH_UNDEF = 11
  IENC_LOAD_MULT = 12
  IENC_BRANCH = 13
  IENC_COPROC_LOAD = 14
  IENC_COPROC_DP = 15
  IENC_COPROC_REG_XFER = 16
  IENC_SWINT = 17
  iencmul_codes = {binary("000000001001"):("mul", (0, 4, 2), 0),...
  dp_mnem = "and", "eor", "sub", "rsb", "add", "adc", "sbc", "rs...
  misc_mnem = "mrs", "msr", "bxj"
  ienc_parsers = p_dp_imm_shift, p_misc, p_dp_reg_shift, p_misc1...
  s_0_table = binary("00000001100100000000000000010000"), binary...
  s_1_table = binary("00000001100110000000000000000000"), binary...
  s_3_table = binary("00000001111100000000000011110000"), binary...
  s_7_table = binary("00000001000000000000000000000000"), binary...
  inittable = [(None, s_0_table), (None, s_1_table), (IENC_LOAD_...
  OFLAG_SHIFT_REG = 1
  S_LSL = 0
  S_LSR = 1
  S_ASR = 2
  S_ROR = 3
  S_RRX = 4
  shift_names = ["lsl", "lsr", "asr", "ror", "rrx"]
  endian_names = "LE", "BE"
  IF_PSR_S = 0x100
  OM_IMM = 0
  OM_REG = 1
  OM_REG_MULT = 2
  OM_PSR = 3
  OM_ENDIAN = 4
  OM_COPROC_OP = 5
  a = ArmModule()
Variables Details [hide private]

cond_codes

Value:
{COND_EQ: "EQ", COND_NE: "NE", COND_CS: "CS", COND_CC: "CC", COND_MI: \
"MI", COND_PL: "PL", COND_VS: "VS", COND_VC: "VC", COND_HI: "HI", COND\
_LS: "LS", COND_GE: "GE", COND_LT: "LT", COND_GT: "GT", COND_LE: "LE",\
 COND_AL: "AL", COND_EXTENDED: "EXTENDED",}

iencmul_codes

Value:
{binary("000000001001"):("mul", (0, 4, 2), 0), binary("000000011001"):\
("mul", (0, 4, 2), IF_PSR_S), binary("000000101001"):("mla", (0, 4, 2,\
 1), 0), binary("000000111001"):("mla", (0, 4, 2, 1), IF_PSR_S), binar\
y("000001001001"):("umaal", (1, 0, 4, 2), 0), binary("000010001001"):(\
"umull", (1, 0, 4, 2), 0), binary("000010011001"):("umull", (1, 0, 4, \
2), IF_PSR_S), binary("000010101001"):("umlal", (1, 0, 4, 2), 0), bina\
ry("000010111001"):("umlal", (1, 0, 4, 2), IF_PSR_S), binary("00001100\
1001"):("smull", (1, 0, 4, 2), 0), binary("000011011001"):("smull", (1\
...

dp_mnem

Value:
"and", "eor", "sub", "rsb", "add", "adc", "sbc", "rsc", "tst", "teq", \
"cmp", "cmn", "orr", "mov", "bic", "mvn",

ienc_parsers

Value:
p_dp_imm_shift, p_misc, p_dp_reg_shift, p_misc1, p_mult, p_dp_imm, p_u\
ndef, p_mov_imm_stat, p_load_imm_off, p_load_reg_off, p_media, p_arch_\
undef, p_load_mult, p_branch, p_coproc_load, p_coproc_dp, p_coproc_reg\
_xfer, p_swint,

s_0_table

Value:
binary("00000001100100000000000000010000"), binary("000000010000000000\
00000000000000"), IENC_MISC, (binary("00000000000000000000000000010000\
"), binary("00000000000000000000000000000000"), IENC_DP_IMM_SHIFT), (b\
inary("00000000000000000000000010010000"), binary("0000000000000000000\
0000010010000"), IENC_MULT), (binary("00000001100000000000000010010000\
"), binary("00000001000000000000000000010000"), IENC_MISC1), (binary("\
00000000000000000000000010010000"), binary("00000000000000000000000000\
010000"), IENC_DP_REG_SHIFT),

s_1_table

Value:
binary("00000001100110000000000000000000"), binary("000000010000000000\
00000000000000"), IENC_UNDEF, (binary("0000000110011000000000000000000\
0"), binary("00000001001000000000000000000000"), IENC_MOV_IMM_STAT), (\
0, 0, IENC_DP_IMM),

s_3_table

Value:
binary("00000001111100000000000011110000"), binary("000000011111000000\
00000011110000"), IENC_ARCH_UNDEF, (binary("00000000000000000000000000\
010000"), binary("00000000000000000000000000010000"), IENC_MEDIA), (0,\
 0, IENC_LOAD_REG_OFF),

s_7_table

Value:
binary("00000001000000000000000000000000"), binary("000000010000000000\
00000000000000"), IENC_SWINT, (binary("0000000100000000000000000001000\
0"), binary("00000000000000000000000000010000"), IENC_COPROC_REG_XFER)\
, (0, 0, IENC_COPROC_DP),

inittable

Value:
[(None, s_0_table), (None, s_1_table), (IENC_LOAD_IMM_OFF, None), (Non\
e, s_3_table), (IENC_LOAD_MULT, None), (IENC_BRANCH, None), (IENC_COPR\
OC_LOAD, None), (None, s_7_table),]