mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-04-29 03:00:14 -04:00
aneregs
This commit is contained in:
2066
ane/2_compile/aneregs.json
Normal file
2066
ane/2_compile/aneregs.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -104,14 +104,19 @@ def compare(x, y):
|
||||
ln2.append(a[1])
|
||||
return ''.join(ss)
|
||||
|
||||
import json
|
||||
aneregs = dict(json.load(open("aneregs.json")))
|
||||
g = get_macho("model.hwx.golden" if len(sys.argv) < 2 else sys.argv[1])
|
||||
f1 = g.headers[0].commands[1][2][0].section_data
|
||||
f2 = a.headers[0].commands[1][2][0].section_data
|
||||
for i in range(0, len(f2), 0x300):
|
||||
print("===== op %d =====" % (i//0x300))
|
||||
dbg = ane.debug(f1[i:i+0x300], 2)
|
||||
for k,v in dbg.items():
|
||||
print(k, v)
|
||||
dbg1 = ane.debug(f1[i:i+0x300], 16)
|
||||
dbg2 = ane.debug(f2[i:i+0x300], 16)
|
||||
for k in dbg1:
|
||||
if dbg1[k] != dbg2[k]:
|
||||
rr = aneregs[k] if k in aneregs else (-1,-1,-1)
|
||||
print("0x%3x %d %2d" % tuple(rr), k, dbg1[k], "->", dbg2[k])
|
||||
if len(f1) < 0x300:
|
||||
print(compare(f1, f2[i:i+0x300]))
|
||||
else:
|
||||
|
||||
@@ -3,7 +3,6 @@ from ane import ANE
|
||||
ane = ANE()
|
||||
|
||||
lens = {}
|
||||
pos = {}
|
||||
|
||||
dat = b"\xff"*0x300
|
||||
ret = ane.debug(dat, 16)
|
||||
@@ -17,6 +16,7 @@ for k,v in ret.items():
|
||||
#print(k, hex(v), found)
|
||||
lens[k] = found
|
||||
|
||||
pos = []
|
||||
dat = b"\x00"*0x300
|
||||
for i in range(0x300):
|
||||
for j in range(8):
|
||||
@@ -27,7 +27,10 @@ for i in range(0x300):
|
||||
for k,v in ret.items():
|
||||
if v == 1:
|
||||
print("0x%3x %d %2d" % (i, j, lens[k]), k)
|
||||
pos[k] = (i,j, lens[k])
|
||||
pos.append((k, (i,j, lens[k])))
|
||||
|
||||
print(len(lens), len(pos))
|
||||
import json
|
||||
jpos = json.dumps(pos, indent=2)
|
||||
with open("aneregs.json", "w") as f:
|
||||
f.write(jpos)
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ class ANE:
|
||||
ddat += b"\x00" * (a-len(ddat))
|
||||
ddat += dat[ptr+1:ptr+1+pm+4]
|
||||
ptr += pm+8
|
||||
ddat += b"\x00" * 8
|
||||
ddat += b"\x00" * 0x100
|
||||
ret = collections.OrderedDict()
|
||||
for ln in libane.ANE_RegDebug(0, create_string_buffer(ddat), mems).decode('utf-8').strip().split("\n"):
|
||||
lnn = ln.split(" = ")
|
||||
|
||||
Reference in New Issue
Block a user