aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorJack Koenig2020-10-01 19:47:12 -0700
committerJack Koenig2020-10-01 19:47:12 -0700
commita7a5030d9af1b504fd373e5060f66a859cb972dc (patch)
tree9256ba6d3323eb49ac54b1f608aa28ec5a763074 /src/main
parentc1c2fb99b0bbbaedcd4138e7dfdd04e3910167f0 (diff)
Fix "fix" for negative literals > 32 bits
Overflow of 32-bit Int would cause any negative literal value equal to -(2^(width % 32 - 1)) where width >= 32 to be incorrectly inverted
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala b/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala
index 2ba28ebb..d1520eae 100644
--- a/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala
+++ b/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala
@@ -17,7 +17,7 @@ object FixAddingNegativeLiterals {
* @param width width of the negative number
* @return maximum negative number
*/
- def minNegValue(width: BigInt): BigInt = -(1 << (width.toInt - 1))
+ def minNegValue(width: BigInt): BigInt = -(BigInt(1) << (width.toInt - 1))
/** Updates the type of the DoPrim from its arguments (e.g. if is UnknownType)
* @param d input DoPrim