Merge pull request #31 from burnpanck/fix-value_bits_sign-mul

fix bug in value_bits_sign of mul operatiors
This commit is contained in:
Sébastien Bourdeauducq 2015-09-10 10:25:57 -07:00
commit 07efe9d7b1
1 changed files with 3 additions and 3 deletions

View File

@ -50,13 +50,13 @@ def value_bits_sign(v):
elif v.op == "*":
if not obs[0][1] and not obs[1][1]:
# both operands unsigned
return obs[0][0] + obs[1][0]
return obs[0][0] + obs[1][0], False
elif obs[0][1] and obs[1][1]:
# both operands signed
return obs[0][0] + obs[1][0] - 1
return obs[0][0] + obs[1][0] - 1, True
else:
# one operand signed, the other unsigned (add sign bit)
return obs[0][0] + obs[1][0] + 1 - 1
return obs[0][0] + obs[1][0] + 1 - 1, True
elif v.op == "<<<":
if obs[1][1]:
extra = 2**(obs[1][0] - 1) - 1