From e7280d7237395cb0a76c07ef7d7939812840dc7c Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Fri, 9 Mar 2007 15:18:56 +0000 Subject: [PATCH] Make V3Number::setMask to refactor some code git-svn-id: file://localhost/svn/verilator/trunk/verilator@900 77ca24e4-aefa-0310-84f0-b9a241c72d87 --- src/V3Clean.cpp | 5 +---- src/V3Const.cpp | 7 +++---- src/V3Expand.cpp | 5 +---- src/V3Number.cpp | 5 +++++ src/V3Number.h | 1 + 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/V3Clean.cpp b/src/V3Clean.cpp index b62e7566d..81328b3c2 100644 --- a/src/V3Clean.cpp +++ b/src/V3Clean.cpp @@ -104,11 +104,8 @@ private: nodep->unlinkFrBack(&relinkHandle); // computeCppWidth(nodep); - V3Number zero (nodep->fileline(), nodep->widthMin(),0); - V3Number masksmall (nodep->fileline(), nodep->widthMin()); - masksmall.opNot(zero); V3Number mask (nodep->fileline(), cppWidth(nodep)); - mask.opAssign(masksmall); + mask.setMask(nodep->widthMin()); AstNode* cleanp = new AstAnd (nodep->fileline(), new AstConst (nodep->fileline(), mask), nodep); diff --git a/src/V3Const.cpp b/src/V3Const.cpp index ae1f5cf96..cbdb07bab 100644 --- a/src/V3Const.cpp +++ b/src/V3Const.cpp @@ -246,9 +246,8 @@ private: replaceNum(nodep, 0); nodep=NULL; } void replaceAllOnes (AstNode* nodep) { - V3Number num (nodep->fileline(), nodep->width(), 0); - V3Number ones (nodep->fileline(), nodep->width()); - ones.opNot(num); + V3Number ones (nodep->fileline(), nodep->width(), 0); + ones.setMask(nodep->width()); replaceNum(nodep, ones); nodep=NULL; } void replaceConst(AstNodeUniop* nodep) { @@ -388,7 +387,7 @@ private: AstNode* newp; V3Number mask1 (nodep->fileline(), nodep->width()); V3Number ones (nodep->fileline(), nodep->width()); - ones.opNot(mask1); + ones.setMask(nodep->width()); if (shift1<0) { mask1.opShiftR(ones,V3Number(nodep->fileline(),VL_WORDSIZE,-shift1)); } else { diff --git a/src/V3Expand.cpp b/src/V3Expand.cpp index 1afeb9b13..16030d940 100644 --- a/src/V3Expand.cpp +++ b/src/V3Expand.cpp @@ -65,11 +65,8 @@ private: if (nodep->isWide()) { return V3Number (nodep->fileline(), VL_WORDSIZE, VL_MASK_I(nodep->widthMin())); } else { - V3Number zero (nodep->fileline(), nodep->widthMin(),0); - V3Number masksmall (nodep->fileline(), nodep->widthMin()); - masksmall.opNot(zero); V3Number mask (nodep->fileline(), longOrQuadWidth(nodep)); - mask.opAssign(masksmall); + mask.setMask(nodep->widthMin()); return mask; } } diff --git a/src/V3Number.cpp b/src/V3Number.cpp index 54212013d..1e9624fda 100644 --- a/src/V3Number.cpp +++ b/src/V3Number.cpp @@ -296,6 +296,11 @@ V3Number& V3Number::setAllBitsZ() { for (int i=0; i0b11, if 3->0b111 etc // ACCESSORS string ascii(bool prefixed=true, bool cleanVerilog=false) const;