sim: fix case break

This commit is contained in:
Sebastien Bourdeauducq 2015-10-20 17:18:33 +08:00
parent 60ae9dce0d
commit 2bbcc218f3
1 changed files with 4 additions and 2 deletions

View File

@ -196,11 +196,13 @@ class Evaluator:
elif isinstance(s, Case):
nbits, signed = value_bits_sign(s.test)
test = _truncate(self.eval(s.test), nbits, signed)
found = False
for k, v in s.cases.items():
if isinstance(k, Constant) and k.value == test:
self.execute(v)
return
if "default" in s.cases:
found = True
break
if not found and "default" in s.cases:
self.execute(s.cases["default"])
elif isinstance(s, collections.Iterable):
self.execute(s)