import ast
from openpower.decoder.power_decoder import create_pdecode
-from nmigen.back.pysim import Simulator, Delay
+from nmigen.sim import Simulator, Delay
from nmigen import Module, Signal
from openpower.decoder.pseudo.parser import GardenSnakeCompiler
y <- (z + 5) * 3
"""
-code = logictest
+XLEN_test = """
+RA[XLEN:XLEN - 1]
+"""
+
+concat_test1 = """
+[0]*16
+"""
+
+concat_test2 = """
+[0]*(XLEN-16)
+"""
+
+concat_test3 = """
+[0]*XLEN
+"""
+
+assign_test = """
+prod[0:63] <- 5
+prod[0:XLEN-1] <- 5
+"""
+
+assign_test2 = """
+prod[0:XLEN-1] <- 5
+"""
+
+assign_test = """
+prod[0:XLEN-1] <- MULS((RA)[XLEN/2:XLEN-1], (RB)[XLEN/2:XLEN-1])
+RT[XLEN/2:XLEN-1] <- prod[0:(XLEN/2)-1]
+RT[0:(XLEN/2)-1] <- undefined(prod[0:(XLEN/2)-1])
+"""
+
+code = assign_test
+#code = concat_test3
+#code = concat_test1
+#code = XLEN_test
+#code = logictest
#code = SVSTATE_next
#code = hextest
#code = lswx
return hex(reg.value)
-def convert_to_pure_python(pcode):
+def convert_to_pure_python(pcode, helper=False):
- gsc = GardenSnakeCompiler(form=None, incl_carry=False)
+ gsc = GardenSnakeCompiler(form=None, incl_carry=False, helper=helper)
tree = gsc.compile(pcode, mode="exec", filename="string")
tree = ast.fix_missing_locations(tree)
return astor.to_source(tree)
-def convert_to_python(pcode, form, incl_carry):
+def convert_to_python(pcode, form, incl_carry, helper=False):
print("form", form)
- gsc = GardenSnakeCompiler(form=form, incl_carry=incl_carry)
+ gsc = GardenSnakeCompiler(form=form, incl_carry=incl_carry, helper=helper)
tree = gsc.compile(pcode, mode="exec", filename="string")
tree = ast.fix_missing_locations(tree)