aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/ir-utils.stanza
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/stanza/ir-utils.stanza')
-rw-r--r--src/main/stanza/ir-utils.stanza8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/stanza/ir-utils.stanza b/src/main/stanza/ir-utils.stanza
index a0942d50..7201b8ed 100644
--- a/src/main/stanza/ir-utils.stanza
+++ b/src/main/stanza/ir-utils.stanza
@@ -87,9 +87,13 @@ public defn BoolType () : UIntType(IntWidth(1))
public val zero = UIntValue(BigIntLit(0),IntWidth(1))
public val one = UIntValue(BigIntLit(1),IntWidth(1))
public defn uint (i:Int) -> UIntValue :
- UIntValue(BigIntLit(i),UnknownWidth())
+ val num-bits = req-num-bits(i)
+ val w = IntWidth(max(1,num-bits - 1))
+ UIntValue(BigIntLit(i),w)
public defn sint (i:Int) -> SIntValue :
- SIntValue(BigIntLit(i),UnknownWidth())
+ val num-bits = req-num-bits(i)
+ val w = IntWidth(max(1,num-bits))
+ SIntValue(BigIntLit(i),w)
public defn AND (e1:Expression,e2:Expression) -> Expression :
if e1 == e2 : e1