X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fsoc%2Fdecoder%2Fpower_pseudo.py;h=3e02cb78a37c313d42800a58eb410d57655d63b0;hb=47b48b7be241629557f68329abfd2aec47db77b7;hp=e2b6440a6065c28aa4d1c896db211fddac0d8419;hpb=2e85730b3f549508e7aeef8506eff3fa59f012b9;p=soc.git diff --git a/src/soc/decoder/power_pseudo.py b/src/soc/decoder/power_pseudo.py index e2b6440a..3e02cb78 100644 --- a/src/soc/decoder/power_pseudo.py +++ b/src/soc/decoder/power_pseudo.py @@ -211,9 +211,10 @@ def tolist(num): def get_reg_hex(reg): return hex(reg.value) + def convert_to_python(pcode, form, incl_carry): - print ("form", form) + print("form", form) gsc = GardenSnakeCompiler(form=form, incl_carry=incl_carry) tree = gsc.compile(pcode, mode="exec", filename="string") @@ -222,7 +223,7 @@ def convert_to_python(pcode, form, incl_carry): 'write_regs': gsc.parser.write_regs, 'uninit_regs': gsc.parser.uninit_regs, 'special_regs': gsc.parser.special_regs, - 'op_fields': gsc.parser.op_fields } + 'op_fields': gsc.parser.op_fields} return astor.to_source(tree), regsused @@ -255,12 +256,15 @@ def test(): print("args", args) print("-->", " ".join(map(str, args))) - from soc.decoder.helpers import (EXTS64, EXTZ64, ROTL64, ROTL32, MASK,) + from soc.decoder.helpers import (EXTS64, EXTZ64, ROTL64, ROTL32, MASK, + trunc_div, trunc_rem) d = {} d["print"] = print_ d["EXTS64"] = EXTS64 d["EXTZ64"] = EXTZ64 + d["trunc_div"] = trunc_div + d["trunc_rem"] = trunc_rem d["SelectableInt"] = SelectableInt d["concat"] = selectconcat d["GPR"] = gsc.gpr @@ -304,8 +308,8 @@ def test(): # read regs, drop them into dict for function for rname in gsc.parser.read_regs: regidx = yield getattr(decode.sigforms['X'], rname) - d[rname] = gsc.gpr[regidx] # contents of regfile - d["_%s" % rname] = regidx # actual register value + d[rname] = gsc.gpr[regidx] # contents of regfile + d["_%s" % rname] = regidx # actual register value print("read reg", rname, regidx, hex(d[rname].value)) exec(compiled_code, d) # code gets executed here in dict "d" @@ -339,7 +343,8 @@ def test(): for j in range(16): hexstr.append("%02x" % gsc.mem.mem[i+j]) hexstr = ' '.join(hexstr) - print ("mem %4x" % i, hexstr) + print("mem %4x" % i, hexstr) + if __name__ == '__main__': test()