Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
CTCaer
GitHub Repository: CTCaer/hekate
Path: blob/master/tools/fix_regs.py
1471 views
1
import re
2
import sys
3
4
def parse_defs(fname):
5
f = open(fname, "r")
6
lines = f.readlines()
7
f.close()
8
res = {}
9
for l in lines:
10
p = [str(_.strip()) for _ in l.strip().split(" ", 1)]
11
res[int(p[1], 16)] = p[0]
12
return res
13
14
mc = parse_defs("mc.def")
15
emc = parse_defs("emc.def")
16
17
f = open(sys.argv[1], "r")
18
buf = f.read()
19
f.close()
20
21
def fix(m):
22
what = m.groups()[0]
23
off = int(m.groups()[1], 16)
24
if what == "MC":
25
if off in mc:
26
return "MC({0})".format(mc[off])
27
elif what == "EMC":
28
if off in emc:
29
return "EMC({0})".format(emc[off])
30
return "{0}(0x{1:X})".format(what, off)
31
32
buf = re.sub(r'([A-Z]+)\(0x([0-9a-fA-F]+)\)', fix, buf)
33
34
f = open(sys.argv[2], "w")
35
f.write(buf)
36
f.close()
37
38