Miasm2
 All Classes Namespaces Files Functions Variables Typedefs Properties Macros
regs.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 #-*- coding:utf-8 -*-
3 
5 from miasm2.core.cpu import gen_reg, gen_regs
6 
7 exception_flags = ExprId('exception_flags', 32)
8 
9 
10 gpregs32_str = ["W%d" % i for i in xrange(0x1f)] + ["WSP"]
11 gpregs32_expr, gpregs32_init, gpregs32_info = gen_regs(
12  gpregs32_str, globals(), 32)
13 
14 gpregs64_str = ["X%d" % i for i in xrange(0x1E)] + ["LR", "SP"]
15 gpregs64_expr, gpregs64_init, gpregs64_info = gen_regs(
16  gpregs64_str, globals(), 64)
17 
18 
19 gpregsz32_str = ["W%d" % i for i in xrange(0x1f)] + ["WZR"]
20 gpregsz32_expr, gpregsz32_init, gpregsz32_info = gen_regs(
21  gpregsz32_str, globals(), 32)
22 
23 gpregsz64_str = ["X%d" % i for i in xrange(0x1e)] + ["LR", "XZR"]
24 gpregsz64_expr, gpregsz64_init, gpregsz64_info = gen_regs(
25  gpregsz64_str, globals(), 64)
26 
27 cr_str = ["c%d" % i for i in xrange(0xf)]
28 cr_expr, cr_init, cr_info = gen_regs(cr_str, globals(), 32)
29 
30 
31 simd08_str = ["B%d" % i for i in xrange(0x20)]
32 simd08_expr, simd08_init, simd08_info = gen_regs(simd08_str, globals(), 8)
33 
34 simd16_str = ["H%d" % i for i in xrange(0x20)]
35 simd16_expr, simd16_init, simd16_info = gen_regs(simd16_str, globals(), 16)
36 
37 simd32_str = ["S%d" % i for i in xrange(0x20)]
38 simd32_expr, simd32_init, simd32_info = gen_regs(simd32_str, globals(), 32)
39 
40 simd64_str = ["D%d" % i for i in xrange(0x20)]
41 simd64_expr, simd64_init, simd64_info = gen_regs(simd64_str, globals(), 64)
42 
43 simd128_str = ["Q%d" % i for i in xrange(0x20)]
44 simd128_expr, simd128_init, simd128_info = gen_regs(
45  simd128_str, globals(), 128)
46 
47 
48 PC, PC_init = gen_reg("PC", globals(), 64)
49 WZR, WZR_init = gen_reg("WZR", globals(), 32)
50 XZR, XZR_init = gen_reg("XZR", globals(), 64)
51 
52 reg_zf = 'zf'
53 reg_nf = 'nf'
54 reg_of = 'of'
55 reg_cf = 'cf'
56 
57 zf = ExprId(reg_zf, size=1)
58 nf = ExprId(reg_nf, size=1)
59 of = ExprId(reg_of, size=1)
60 cf = ExprId(reg_cf, size=1)
61 
62 zf_init = ExprId("zf_init", size=1)
63 nf_init = ExprId("nf_init", size=1)
64 of_init = ExprId("of_init", size=1)
65 cf_init = ExprId("cf_init", size=1)
66 
67 
68 all_regs_ids = [
69  B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16,
70  B17, B18, B19, B20, B21, B22, B23, B24, B25, B26, B27, B28, B29, B30, B31,
71 
72  H0, H1, H2, H3, H4, H5, H6, H7, H8, H9, H10, H11, H12, H13, H14, H15, H16,
73  H17, H18, H19, H20, H21, H22, H23, H24, H25, H26, H27, H28, H29, H30, H31,
74 
75  S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16,
76  S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30, S31,
77 
78  D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16,
79  D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31,
80 
81  Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15, Q16,
82  Q17, Q18, Q19, Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q27, Q28, Q29, Q30, Q31,
83 
84  W0, W1, W2, W3, W4, W5, W6, W7, W8, W9, W10, W11, W12, W13, W14, W15, W16,
85  W17, W18, W19, W20, W21, W22, W23, W24, W25, W26, W27, W28, W29, W30, WSP,
86 
87  X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16,
88  X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27, X28, X29, LR, SP,
89 
90  exception_flags,
91  PC,
92  WZR, WZR,
93  zf, nf, of, cf,
94  XZR, WZR,
95 
96 ]
97 
98 
99 all_regs_ids_no_alias = all_regs_ids
100 
101 all_regs_ids_byname = dict([(x.name, x) for x in all_regs_ids])
102 
103 all_regs_ids_init = (simd08_init +
104  simd16_init +
105  simd32_init +
106  simd64_init +
107  simd128_init +
108  gpregs32_init +
109  gpregs64_init +
110  [
111  ExprInt32(0),
112  PC_init,
113  WZR_init,
114  XZR_init,
115  zf_init, nf_init, of_init, cf_init,
116  ExprInt64(0), ExprInt32(0),
117  ]
118  )
119 
120 regs_init = {}
121 for i, r in enumerate(all_regs_ids):
122  regs_init[r] = all_regs_ids_init[i]
123 
124 regs_flt_expr = []
def gen_reg
Definition: cpu.py:105
def gen_regs
Definition: cpu.py:135