diff options
Diffstat (limited to 'src/map/if/ifTime.c')
-rw-r--r-- | src/map/if/ifTime.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/map/if/ifTime.c b/src/map/if/ifTime.c index f2c9c833..23e6a69d 100644 --- a/src/map/if/ifTime.c +++ b/src/map/if/ifTime.c @@ -202,10 +202,19 @@ void If_CutPropagateRequired( If_Man_t * p, If_Obj_t * pObj, If_Cut_t * pCut, fl { if ( pCut->fUser ) { - char Perm[IF_MAX_FUNC_LUTSIZE]; - char * pPerm = p->pPars->fDelayOpt ? Perm : pCut->pPerm; + char Perm[IF_MAX_FUNC_LUTSIZE], * pPerm = Perm; if ( p->pPars->fDelayOpt ) - If_CutSopBalancePinDelays( p, pCut, pPerm ); + { + int Delay = If_CutSopBalancePinDelays( p, pCut, pPerm ); + assert( Delay == pCut->Delay ); + } + else if ( p->pPars->fDsdBalance ) + { + int Delay = If_CutDsdBalancePinDelays( p, pCut, pPerm ); + assert( Delay == pCut->Delay ); + } + else + pPerm = pCut->pPerm; If_CutForEachLeaf( p, pCut, pLeaf, i ) { Pin2PinDelay = pPerm ? (pPerm[i] == IF_BIG_CHAR ? -IF_BIG_CHAR : pPerm[i]) : 1; |