diff options
Diffstat (limited to 'src/main/stanza/ir-utils.stanza')
| -rw-r--r-- | src/main/stanza/ir-utils.stanza | 8 |
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 |
