* gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
* ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS by alliance.m4 -> must be added explicitely in each Makefile.am * remove configure.in (generated by autostuff)
This commit is contained in:
parent
3c20c0416a
commit
1b519c1142
|
@ -128,11 +128,14 @@ extern "C" {
|
|||
|
||||
# define ABL_CDR( E ) ( ( E )->NEXT )
|
||||
# define ABL_CAR( E ) ( (ablexpr *)( E )->DATA )
|
||||
# define ABL_CAR_L( E ) ( ( E )->DATA )
|
||||
# define ABL_CADR( E ) ( ABL_CAR( ABL_CDR( ( E ) ) ) )
|
||||
# define ABL_CADR_L( E ) ( ABL_CAR_L( ABL_CDR( ( E ) ) ) )
|
||||
# define ABL_CDDR( E ) ( ABL_CDR( ABL_CDR( ( E ) ) ) )
|
||||
# define ABL_ATOM( E ) ( ( E )->NEXT == (ablexpr *)0 )
|
||||
# define ABL_ATOM_VALUE( E ) ( (char *)( ( E )->DATA ) )
|
||||
# define ABL_OPER( E ) ( (long)( ( ABL_CAR( ( E ) ) )->DATA ) )
|
||||
# define ABL_OPER_L( E ) ( ( ABL_CAR( ( E ) ) )->DATA )
|
||||
# define SET_ABL_OPER( E,O ) ( ( ABL_CAR( (E) )->DATA = (void *)(O) ) )
|
||||
|
||||
/*------------------------------------------------------\
|
||||
|
|
|
@ -198,14 +198,14 @@ ablexpr *createablnotexpr( Expr )
|
|||
|
||||
if ( AtomValue == ABL_ATOM_NAME_ONE )
|
||||
{
|
||||
ABL_ATOM_VALUE( Expr ) = (void *)ABL_ATOM_NAME_ZERO;
|
||||
ABL_CAR_L( Expr ) = (void *)ABL_ATOM_NAME_ZERO;
|
||||
|
||||
return( Expr );
|
||||
}
|
||||
else
|
||||
if ( AtomValue == ABL_ATOM_NAME_ZERO )
|
||||
{
|
||||
ABL_ATOM_VALUE( Expr ) = (void *)ABL_ATOM_NAME_ONE;
|
||||
ABL_CAR_L( Expr ) = (void *)ABL_ATOM_NAME_ONE;
|
||||
|
||||
return( Expr );
|
||||
}
|
||||
|
|
|
@ -109,8 +109,8 @@ static ablexpr *local_normablctl( Expr )
|
|||
{
|
||||
NormExpr = local_normablctl( ABL_CADR( Expr ) );
|
||||
if ( NormExpr != ABL_CADR( Expr ) )
|
||||
ABL_CADR( Expr ) = NormExpr;
|
||||
ABL_CADR( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
ABL_CADR_L( Expr ) = NormExpr;
|
||||
ABL_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
SET_ABL_OPER( Expr, ABL_EX );
|
||||
NormExpr = createablnotexpr( Expr );
|
||||
return( NormExpr );
|
||||
|
@ -123,7 +123,7 @@ static ablexpr *local_normablctl( Expr )
|
|||
{
|
||||
NormExpr = local_normablctl( ABL_CADR( Expr ) );
|
||||
if ( NormExpr != ABL_CADR( Expr ) )
|
||||
ABL_CADR( Expr ) = NormExpr;
|
||||
ABL_CADR_L( Expr ) = NormExpr;
|
||||
ExprTemp = createablatom( ABL_ATOM_NAME_ONE );
|
||||
NormExpr = createablbinexpr( ABL_EU,
|
||||
ExprTemp,
|
||||
|
@ -141,8 +141,8 @@ static ablexpr *local_normablctl( Expr )
|
|||
{
|
||||
NormExpr = local_normablctl( ABL_CADR( Expr ) );
|
||||
if ( NormExpr != ABL_CADR( Expr ) )
|
||||
ABL_CADR( Expr ) = NormExpr;
|
||||
ABL_CADR( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
ABL_CADR_L( Expr ) = NormExpr;
|
||||
ABL_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
SET_ABL_OPER( Expr, ABL_EG );
|
||||
NormExpr = createablnotexpr( Expr );
|
||||
return( NormExpr );
|
||||
|
@ -155,8 +155,8 @@ static ablexpr *local_normablctl( Expr )
|
|||
{
|
||||
NormExpr = local_normablctl( ABL_CADR( Expr ) );
|
||||
if ( NormExpr != ABL_CADR( Expr ) )
|
||||
ABL_CADR( Expr ) = NormExpr;
|
||||
ABL_CADR( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
ABL_CADR_L( Expr ) = NormExpr;
|
||||
ABL_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
SET_ABL_OPER( Expr, ABL_EF );
|
||||
NormExpr = createablnotexpr( Expr );
|
||||
NormExpr = local_normablctl( NormExpr );
|
||||
|
@ -170,13 +170,13 @@ static ablexpr *local_normablctl( Expr )
|
|||
{
|
||||
NormExpr = local_normablctl( ABL_CADR( Expr ) );
|
||||
if ( NormExpr != ABL_CADR( Expr ) )
|
||||
ABL_CADR( Expr ) = NormExpr;
|
||||
ABL_CADR_L( Expr ) = NormExpr;
|
||||
NormExpr = local_normablctl( ABL_CAR( ABL_CDDR( Expr ) ) );
|
||||
if ( NormExpr != ABL_CAR( ABL_CDDR( Expr ) ) )
|
||||
ABL_CAR( ABL_CDDR( Expr ) ) = NormExpr;
|
||||
ABL_CAR_L( ABL_CDDR( Expr ) ) = NormExpr;
|
||||
|
||||
ABL_CADR( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
ABL_CAR( ABL_CDDR( Expr ) ) = createablnotexpr( ABL_CAR( ABL_CDDR( Expr ) ) );
|
||||
ABL_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
|
||||
ABL_CAR_L( ABL_CDDR( Expr ) ) = createablnotexpr( ABL_CAR( ABL_CDDR( Expr ) ) );
|
||||
ExprG1 = dupablexpr( ABL_CAR( ABL_CDDR( Expr ) ) );
|
||||
ExprG2 = dupablexpr( ABL_CAR( ABL_CDDR( Expr ) ) );
|
||||
ExprTemp = createablbinexpr( ABL_AND,
|
||||
|
@ -209,7 +209,7 @@ static ablexpr *local_normablctl( Expr )
|
|||
{
|
||||
NormExpr = local_normablctl( ABL_CAR( ScanExpr ) );
|
||||
if ( NormExpr != ABL_CAR( ScanExpr ) )
|
||||
ABL_CAR( ScanExpr ) = NormExpr;
|
||||
ABL_CAR_L( ScanExpr ) = NormExpr;
|
||||
NormExpr = Expr;
|
||||
}
|
||||
|
||||
|
|
|
@ -165,7 +165,7 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
ExprTemp = ABL_CADR( ABL_CADR( Expr ) );
|
||||
freechain( ABL_CAR( ABL_CADR( Expr ) ) );
|
||||
freechain( ABL_CADR( Expr ) );
|
||||
ABL_CADR( Expr ) = ExprTemp;
|
||||
ABL_CADR_L( Expr ) = ExprTemp;
|
||||
SimpExpr = Expr;
|
||||
|
||||
ExprTemp = loc_simpablctl( SimpExpr );
|
||||
|
@ -184,10 +184,10 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
{
|
||||
ExprTemp = loc_simpablctl( ABL_CADR( Expr ) );
|
||||
if ( ExprTemp != ABL_CADR( Expr ) )
|
||||
ABL_CADR( Expr ) = ExprTemp;
|
||||
ABL_CADR_L( Expr ) = ExprTemp;
|
||||
ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( Expr ) ) );
|
||||
if ( ExprTemp != ABL_CAR( ABL_CDDR( Expr ) ) )
|
||||
ABL_CAR( ABL_CDDR( Expr ) ) = ExprTemp;
|
||||
ABL_CAR_L( ABL_CDDR( Expr ) ) = ExprTemp;
|
||||
|
||||
if ( ABL_OPER( ABL_CAR( ABL_CDDR( Expr ) ) ) == Oper &&
|
||||
ABL_CADR( Expr ) != (ablexpr *)0 &&
|
||||
|
@ -214,10 +214,10 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
{
|
||||
ExprTemp = loc_simpablctl( ABL_CADR( Expr ) );
|
||||
if ( ExprTemp != ABL_CADR( Expr ) )
|
||||
ABL_CADR( Expr ) = ExprTemp;
|
||||
ABL_CADR_L( Expr ) = ExprTemp;
|
||||
ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( Expr ) ) );
|
||||
if ( ExprTemp != ABL_CAR( ABL_CDDR( Expr ) ) )
|
||||
ABL_CAR( ABL_CDDR( Expr ) ) = ExprTemp;
|
||||
ABL_CAR_L( ABL_CDDR( Expr ) ) = ExprTemp;
|
||||
|
||||
if ( ( Oper == ABL_AND &&
|
||||
ABL_OPER( ABL_CADR( Expr ) ) == ABL_AG &&
|
||||
|
@ -265,16 +265,16 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
SimpExpr = createablbinexpr( ABL_OR,
|
||||
ABL_CADR( ABL_CADR( ABL_CADR( Expr ) ) ),
|
||||
ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) ) );
|
||||
ABL_CADR( ABL_CADR( ABL_CADR( Expr ) ) ) = (ablexpr *)0;
|
||||
ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) ) = (ablexpr *)0;
|
||||
ABL_CADR_L( ABL_CADR( ABL_CADR( Expr ) ) ) = (ablexpr *)0;
|
||||
ABL_CAR_L( ABL_CDDR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) ) = (ablexpr *)0;
|
||||
freeablexpr( Expr );
|
||||
|
||||
ExprTemp = loc_simpablctl( ABL_CADR( SimpExpr ) );
|
||||
if ( ExprTemp != ABL_CADR( SimpExpr ) )
|
||||
ABL_CADR( SimpExpr ) = ExprTemp;
|
||||
ABL_CADR_L( SimpExpr ) = ExprTemp;
|
||||
ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( SimpExpr ) ) );
|
||||
if ( ExprTemp != ABL_CAR( ABL_CDDR( SimpExpr ) ) )
|
||||
ABL_CAR( ABL_CDDR( SimpExpr ) ) = ExprTemp;
|
||||
ABL_CAR_L( ABL_CDDR( SimpExpr ) ) = ExprTemp;
|
||||
|
||||
return( SimpExpr );
|
||||
}
|
||||
|
@ -302,16 +302,16 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
SimpExpr = createablbinexpr( ABL_AND,
|
||||
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ),
|
||||
ABL_CAR( ABL_CDDR( ABL_CADR( ABL_CADR( Expr ) ) ) ) );
|
||||
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0;
|
||||
ABL_CAR( ABL_CDDR( ABL_CADR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0;
|
||||
ABL_CADR_L( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0;
|
||||
ABL_CAR_L( ABL_CDDR( ABL_CADR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0;
|
||||
freeablexpr( Expr );
|
||||
|
||||
ExprTemp = loc_simpablctl( ABL_CADR( SimpExpr ) );
|
||||
if ( ExprTemp != ABL_CADR( SimpExpr ) )
|
||||
ABL_CADR( SimpExpr ) = ExprTemp;
|
||||
ABL_CADR_L( SimpExpr ) = ExprTemp;
|
||||
ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( SimpExpr ) ) );
|
||||
if ( ExprTemp != ABL_CAR( ABL_CDDR( SimpExpr ) ) )
|
||||
ABL_CAR( ABL_CDDR( SimpExpr ) ) = ExprTemp;
|
||||
ABL_CAR_L( ABL_CDDR( SimpExpr ) ) = ExprTemp;
|
||||
|
||||
return( SimpExpr );
|
||||
}
|
||||
|
@ -349,13 +349,13 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
ExprTemp = createablbinexpr( ABL_AU,
|
||||
ABL_CADR( ABL_CADR( Expr ) ),
|
||||
ABL_CADR( ABL_CADR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) );
|
||||
ABL_CADR( ABL_CADR( Expr ) ) = (ablexpr *)0;
|
||||
ABL_CADR( ABL_CADR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) = (ablexpr *)0;
|
||||
ABL_CADR_L( ABL_CADR( Expr ) ) = (ablexpr *)0;
|
||||
ABL_CADR_L( ABL_CADR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) = (ablexpr *)0;
|
||||
SimpExpr = createablbinexpr( ABL_EU,
|
||||
ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ),
|
||||
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ) );
|
||||
ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) = (ablexpr *)0;
|
||||
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ) = (ablexpr *)0;
|
||||
ABL_CAR_L( ABL_CDDR( ABL_CADR( Expr ) ) ) = (ablexpr *)0;
|
||||
ABL_CADR_L( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ) = (ablexpr *)0;
|
||||
SimpExpr = createablbinexpr( ABL_AND,
|
||||
ExprTemp,
|
||||
SimpExpr );
|
||||
|
@ -363,16 +363,16 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
|
||||
ExprTemp = loc_simpablctl( ABL_CADR( ABL_CADR( SimpExpr ) ) );
|
||||
if ( ExprTemp != ABL_CADR( ABL_CADR( SimpExpr ) ) )
|
||||
ABL_CADR( ABL_CADR( SimpExpr ) ) = ExprTemp;
|
||||
ABL_CADR_L( ABL_CADR( SimpExpr ) ) = ExprTemp;
|
||||
ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( ABL_CADR( SimpExpr ) ) ) );
|
||||
if ( ExprTemp != ABL_CAR( ABL_CDDR( ABL_CADR( SimpExpr ) ) ) )
|
||||
ABL_CAR( ABL_CDDR( ABL_CADR( SimpExpr ) ) ) = ExprTemp;
|
||||
ABL_CAR_L( ABL_CDDR( ABL_CADR( SimpExpr ) ) ) = ExprTemp;
|
||||
ExprTemp = loc_simpablctl( ABL_CADR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) );
|
||||
if ( ExprTemp != ABL_CADR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) )
|
||||
ABL_CADR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) = ExprTemp;
|
||||
ABL_CADR_L( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) = ExprTemp;
|
||||
ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) ) );
|
||||
if ( ExprTemp != ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) ) )
|
||||
ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) ) = ExprTemp;
|
||||
ABL_CAR_L( ABL_CDDR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) ) = ExprTemp;
|
||||
|
||||
return( SimpExpr );
|
||||
}
|
||||
|
@ -385,7 +385,7 @@ static ablexpr *loc_simpablctl( Expr )
|
|||
{
|
||||
SimpExpr = loc_simpablctl( ABL_CAR( ScanExpr ) );
|
||||
if ( SimpExpr != ABL_CAR( ScanExpr ) )
|
||||
ABL_CAR( ScanExpr ) = SimpExpr;
|
||||
ABL_CAR_L( ScanExpr ) = SimpExpr;
|
||||
SimpExpr = Expr;
|
||||
}
|
||||
|
||||
|
|
|
@ -168,7 +168,7 @@ ablexpr *devablxorexpr( Expr )
|
|||
|
||||
while ( ( Expr = ABL_CDR( Expr ) ) != (ablexpr *)0 )
|
||||
{
|
||||
ABL_CAR( Expr ) = (void *)devablxorexpr( ABL_CAR( Expr ) );
|
||||
ABL_CAR_L( Expr ) = (void *)devablxorexpr( ABL_CAR( Expr ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -161,14 +161,14 @@ ablexpr *optimablnotexpr( Expr )
|
|||
|
||||
if ( AtomValue == ABL_ATOM_NAME_ONE )
|
||||
{
|
||||
ABL_ATOM_VALUE( Expr ) = (void *)ABL_ATOM_NAME_ZERO;
|
||||
ABL_CAR_L( Expr ) = (void *)ABL_ATOM_NAME_ZERO;
|
||||
|
||||
return( Expr );
|
||||
}
|
||||
else
|
||||
if ( AtomValue == ABL_ATOM_NAME_ZERO )
|
||||
{
|
||||
ABL_ATOM_VALUE( Expr ) = (void *)ABL_ATOM_NAME_ONE;
|
||||
ABL_CAR_L( Expr ) = (void *)ABL_ATOM_NAME_ONE;
|
||||
|
||||
return( Expr );
|
||||
}
|
||||
|
|
|
@ -221,7 +221,7 @@ ablexpr *polarablexpr( Expr, Polar )
|
|||
}
|
||||
else
|
||||
{
|
||||
ABL_CADR( Expr ) = polarablexpr( ABL_CADR( Expr ), ABL_POLAR_POSITIVE );
|
||||
ABL_CADR_L( Expr ) = polarablexpr( ABL_CADR( Expr ), ABL_POLAR_POSITIVE );
|
||||
|
||||
if ( Polar == ABL_POLAR_NEGATIVE )
|
||||
{
|
||||
|
@ -244,7 +244,7 @@ ablexpr *polarablexpr( Expr, Polar )
|
|||
|
||||
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 )
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = polarablexpr( ABL_CAR( ScanExpr ), Polar );
|
||||
ABL_CAR_L( ScanExpr ) = polarablexpr( ABL_CAR( ScanExpr ), Polar );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -201,7 +201,7 @@ ablexpr *simpdupexpr( Expr )
|
|||
if ( AblSimplifyTable[ Oper ][ 1 ] != -1 )
|
||||
{
|
||||
freeablexpr( Expr );
|
||||
ABL_ATOM_VALUE( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ];
|
||||
ABL_CAR_L( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ];
|
||||
|
||||
if ( Negative == 1 )
|
||||
{
|
||||
|
@ -235,14 +235,14 @@ ablexpr *simpdupexpr( Expr )
|
|||
if ( ExprQueue == Expr )
|
||||
{
|
||||
ExprSimp = ABL_CAR( Expr );
|
||||
ABL_ATOM_VALUE( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 3 ];
|
||||
ABL_CAR_L( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 3 ];
|
||||
freechain( Expr );
|
||||
}
|
||||
else
|
||||
if ( ExprQueue == ABL_CDR( Expr ) )
|
||||
{
|
||||
ExprSimp = ABL_CADR( Expr );
|
||||
ABL_CADR( Expr ) = (void *)0;
|
||||
ABL_CADR_L( Expr ) = (void *)0;
|
||||
freeablexpr( Expr );
|
||||
}
|
||||
else
|
||||
|
@ -309,7 +309,7 @@ ablexpr *loc_simpablexpr( Expr )
|
|||
|
||||
if ( isablunaryoper( Oper ) )
|
||||
{
|
||||
ABL_CADR( Expr ) = loc_simpablexpr( ABL_CADR( Expr ) );
|
||||
ABL_CADR_L( Expr ) = loc_simpablexpr( ABL_CADR( Expr ) );
|
||||
|
||||
return( Expr );
|
||||
}
|
||||
|
@ -340,9 +340,9 @@ ablexpr *loc_simpablexpr( Expr )
|
|||
{
|
||||
if ( AblSimplifyTable[ Oper ][ 1 ] != -1 )
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = (ablexpr *)0;
|
||||
ABL_CAR_L( ScanExpr ) = (ablexpr *)0;
|
||||
freeablexpr( Expr );
|
||||
ABL_ATOM_VALUE( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ];
|
||||
ABL_CAR_L( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ];
|
||||
|
||||
if ( Negative == 1 )
|
||||
{
|
||||
|
@ -374,12 +374,12 @@ ablexpr *loc_simpablexpr( Expr )
|
|||
}
|
||||
else
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = ExprSimp;
|
||||
ABL_CAR_L( ScanExpr ) = ExprSimp;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = ExprSimp;
|
||||
ABL_CAR_L( ScanExpr ) = ExprSimp;
|
||||
}
|
||||
|
||||
PrevExpr = ScanExpr;
|
||||
|
@ -387,14 +387,14 @@ ablexpr *loc_simpablexpr( Expr )
|
|||
|
||||
if ( PrevExpr == Expr )
|
||||
{
|
||||
ABL_ATOM_VALUE( Expr ) = (char *)AblSimplifyTable[ Oper ][ 3 ];
|
||||
ABL_CAR_L( Expr ) = (char *)AblSimplifyTable[ Oper ][ 3 ];
|
||||
ExprSimp = Expr;
|
||||
}
|
||||
else
|
||||
if ( PrevExpr == ABL_CDR( Expr ) )
|
||||
{
|
||||
ExprSimp = ABL_CADR( Expr );
|
||||
ABL_CADR( Expr ) = (void *)0;
|
||||
ABL_CADR_L( Expr ) = (void *)0;
|
||||
freeablexpr( Expr );
|
||||
}
|
||||
else
|
||||
|
|
|
@ -105,7 +105,7 @@ static ablexpr *loc_substablexpr( Expr )
|
|||
|
||||
while ( ( Expr = ABL_CDR( Expr ) ) )
|
||||
{
|
||||
ABL_CAR( Expr ) = loc_substablexpr( ABL_CAR( Expr ) );
|
||||
ABL_CAR_L( Expr ) = loc_substablexpr( ABL_CAR( Expr ) );
|
||||
}
|
||||
|
||||
return( ExprSubst );
|
||||
|
|
|
@ -119,7 +119,7 @@ ablexpr *unflatablexpr( Expr )
|
|||
|
||||
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 )
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = unflatablexpr( ABL_CAR( ScanExpr ) );
|
||||
ABL_CAR_L( ScanExpr ) = unflatablexpr( ABL_CAR( ScanExpr ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
# include "abt.h"
|
||||
|
||||
# include <stdio.h>
|
||||
# include <string.h>
|
||||
# include "bhl_error.h"
|
||||
# include "bhl_delaux.h"
|
||||
|
||||
|
@ -167,7 +168,7 @@ static chain_list *bhl_delauxexpr( Expr )
|
|||
bhlerror( BHL_OPERATOR_ERROR, Oper );
|
||||
}
|
||||
|
||||
ABL_CAR( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) );
|
||||
ABL_CAR_L( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) );
|
||||
|
||||
return( FirstExpr );
|
||||
}
|
||||
|
@ -209,11 +210,11 @@ static chain_list *bhl_delauxexpr( Expr )
|
|||
bhlerror( BHL_OPERATOR_ERROR, Oper );
|
||||
}
|
||||
|
||||
ABL_CAR( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) );
|
||||
ABL_CAR_L( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) );
|
||||
|
||||
while ( ( Expr = ABL_CDR( Expr ) ) != (chain_list *)0 )
|
||||
{
|
||||
ABL_CAR( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) );
|
||||
ABL_CAR_L( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) );
|
||||
}
|
||||
|
||||
return( FirstExpr );
|
||||
|
|
|
@ -50,8 +50,8 @@ dnl ifelse([$2], , :, [$2])
|
|||
dnl fi
|
||||
|
||||
|
||||
CFLAGS="-I${ALLIANCE_TOP}/include $CFLAGS"
|
||||
LDFLAGS="-L${ALLIANCE_TOP}/lib $LDFLAGS"
|
||||
dnl CFLAGS="-I${ALLIANCE_TOP}/include $CFLAGS"
|
||||
dnl LDFLAGS="-L${ALLIANCE_TOP}/lib $LDFLAGS"
|
||||
|
||||
|
||||
AC_ARG_ENABLE(devel,
|
||||
|
|
|
@ -811,7 +811,7 @@ void loc_stablebddcircuitabl( Expr )
|
|||
|
||||
if ( Name != (char *)0 )
|
||||
{
|
||||
ABL_CAR( Expr ) = addchain( (chain_list *)0, (void *)ABL_STABLE );
|
||||
ABL_CAR_L( Expr ) = addchain( (chain_list *)0, (void *)ABL_STABLE );
|
||||
addablhexpr( Expr, createablatom( Name ) );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -551,7 +551,7 @@ chain_list *convertbddnodesumabl( BddSystem, NameArray, IndexArray, BddNode )
|
|||
if ( ABL_CDDR( BddConvertSumProd ) == (chain_list *)0 )
|
||||
{
|
||||
SumProd = ABL_CADR( BddConvertSumProd );
|
||||
ABL_CADR( BddConvertSumProd ) = (chain_list *)0;
|
||||
ABL_CADR_L( BddConvertSumProd ) = (chain_list *)0;
|
||||
|
||||
freeablexpr( BddConvertSumProd );
|
||||
BddConvertSumProd = SumProd;
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
AM_CFLAGS = @ALLIANCE_CFLAGS@ -I$(top_srcdir)/abe/src \
|
||||
AM_CFLAGS = -I$(top_srcdir)/abe/src \
|
||||
-I$(top_srcdir)/abl/src \
|
||||
-I$(top_srcdir)/abv/src \
|
||||
-I$(top_srcdir)/bdd/src \
|
||||
-I$(top_srcdir)/aut/src \
|
||||
-I$(top_srcdir)/mbk/src
|
||||
-I$(top_srcdir)/mbk/src \
|
||||
@ALLIANCE_CFLAGS@
|
||||
|
||||
bin_PROGRAMS = boog
|
||||
|
||||
|
|
|
@ -152,7 +152,7 @@ static chain_list* format_subst_abl( chain_list* abl, beaux_list *BeauxSubst )
|
|||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain) = format_subst_abl( ABL_CAR( chain ), BeauxSubst );
|
||||
ABL_CAR_L(chain) = format_subst_abl( ABL_CAR( chain ), BeauxSubst );
|
||||
}
|
||||
|
||||
return abl;
|
||||
|
|
|
@ -47,15 +47,15 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
|
|||
|
||||
if (ABL_ATOM(abl)) {
|
||||
if (ABL_ATOM_VALUE(abl)==getablatomzero()) {
|
||||
if (negativ) ABL_ATOM_VALUE(abl)=getablatomone();
|
||||
if (negativ) ABL_CAR_L(abl)=getablatomone();
|
||||
}
|
||||
else if (ABL_ATOM_VALUE(abl)==getablatomone()) {
|
||||
if (negativ) ABL_ATOM_VALUE(abl)=getablatomzero();
|
||||
if (negativ) ABL_CAR_L(abl)=getablatomzero();
|
||||
}
|
||||
else {
|
||||
if (negativ) {
|
||||
abl=createablnotexpr(abl);
|
||||
ABL_ARITY(abl)=1;
|
||||
ABL_ARITY_L(abl)=1;
|
||||
}
|
||||
}
|
||||
return abl;
|
||||
|
@ -63,30 +63,30 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
|
|||
|
||||
switch (ABL_OPER(abl)) {
|
||||
case ABL_AND:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NAND;
|
||||
else ABL_OPER(abl)=ABL_NOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NAND;
|
||||
else ABL_OPER_L(abl)=ABL_NOR;
|
||||
negativ=!negativ;
|
||||
break;
|
||||
case ABL_NAND:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NOR;
|
||||
else ABL_OPER(abl)=ABL_NAND;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NOR;
|
||||
else ABL_OPER_L(abl)=ABL_NAND;
|
||||
break;
|
||||
case ABL_OR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NOR;
|
||||
else ABL_OPER(abl)=ABL_NAND;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NOR;
|
||||
else ABL_OPER_L(abl)=ABL_NAND;
|
||||
negativ=!negativ;
|
||||
break;
|
||||
case ABL_NOR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NAND;
|
||||
else ABL_OPER(abl)=ABL_NOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NAND;
|
||||
else ABL_OPER_L(abl)=ABL_NOR;
|
||||
break;
|
||||
case ABL_XOR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NXOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NXOR;
|
||||
negativ=0;
|
||||
/*nothing to do: same size XOR and NXOR*/
|
||||
break;
|
||||
case ABL_NXOR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_XOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_XOR;
|
||||
negativ=0;
|
||||
/*nothing to do*/
|
||||
break;
|
||||
|
@ -98,7 +98,7 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
|
|||
case ABL_STABLE:
|
||||
if (negativ) {
|
||||
abl=createablnotexpr(abl);
|
||||
ABL_ARITY(abl)=1;
|
||||
ABL_ARITY_L(abl)=1;
|
||||
}
|
||||
return abl;
|
||||
default:
|
||||
|
@ -107,7 +107,7 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
|
|||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=inv_oper(ABL_CAR(chain),negativ);
|
||||
ABL_CAR_L(chain)=inv_oper(ABL_CAR(chain),negativ);
|
||||
}
|
||||
|
||||
return abl;
|
||||
|
@ -141,7 +141,7 @@ extern chain_list* build_negativ(chain_list* abl)
|
|||
if (ABL_OPER(abl)==ABL_STABLE) return abl;
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=build_negativ(ABL_CAR(chain));
|
||||
ABL_CAR_L(chain)=build_negativ(ABL_CAR(chain));
|
||||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
|
@ -182,29 +182,29 @@ extern chain_list* build_negativ(chain_list* abl)
|
|||
if (ABL_ATOM(leaf)) {
|
||||
/*constant undifferent*/
|
||||
if (ABL_ATOM_VALUE(leaf)==getablatomzero())
|
||||
ABL_ATOM_VALUE(leaf)=getablatomone();
|
||||
ABL_CAR_L(leaf)=getablatomone();
|
||||
else if (ABL_ATOM_VALUE(leaf)==getablatomone())
|
||||
ABL_ATOM_VALUE(leaf)=getablatomzero();
|
||||
ABL_CAR_L(leaf)=getablatomzero();
|
||||
else {
|
||||
ABL_CAR(chain)=createablnotexpr(ABL_CAR(chain));
|
||||
ABL_ARITY(ABL_CAR(chain))=1;
|
||||
ABL_CAR_L(chain)=createablnotexpr(ABL_CAR(chain));
|
||||
ABL_ARITY_L(ABL_CAR(chain))=1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if (ABL_OPER(leaf)==ABL_STABLE) {
|
||||
ABL_CAR(chain)=createablnotexpr(ABL_CAR(chain));
|
||||
ABL_ARITY(ABL_CAR(chain))=1;
|
||||
ABL_CAR_L(chain)=createablnotexpr(ABL_CAR(chain));
|
||||
ABL_ARITY_L(ABL_CAR(chain))=1;
|
||||
continue;
|
||||
}
|
||||
switch (ABL_OPER(leaf)) {
|
||||
case ABL_AND: ABL_OPER(leaf)=ABL_NAND; break;
|
||||
case ABL_OR: ABL_OPER(leaf)=ABL_NOR; break;
|
||||
case ABL_NAND: ABL_OPER(leaf)=ABL_AND; break;
|
||||
case ABL_NOR: ABL_OPER(leaf)=ABL_OR; break;
|
||||
case ABL_XOR: ABL_OPER(leaf)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER(leaf)=ABL_XOR; break;
|
||||
case ABL_AND: ABL_OPER_L(leaf)=ABL_NAND; break;
|
||||
case ABL_OR: ABL_OPER_L(leaf)=ABL_NOR; break;
|
||||
case ABL_NAND: ABL_OPER_L(leaf)=ABL_AND; break;
|
||||
case ABL_NOR: ABL_OPER_L(leaf)=ABL_OR; break;
|
||||
case ABL_XOR: ABL_OPER_L(leaf)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER_L(leaf)=ABL_XOR; break;
|
||||
case ABL_NOT:
|
||||
ABL_CAR(chain)=ABL_CADR(leaf);
|
||||
ABL_CAR_L(chain)=ABL_CADR(leaf);
|
||||
freechain(leaf);
|
||||
break;
|
||||
default:
|
||||
|
@ -214,10 +214,10 @@ extern chain_list* build_negativ(chain_list* abl)
|
|||
}
|
||||
|
||||
switch (ABL_OPER(abl)) {
|
||||
case ABL_AND: ABL_OPER(abl)=ABL_NOR; break;
|
||||
case ABL_OR: ABL_OPER(abl)=ABL_NAND; break;
|
||||
case ABL_NAND: ABL_OPER(abl)=ABL_OR; break;
|
||||
case ABL_NOR: ABL_OPER(abl)=ABL_AND; break;
|
||||
case ABL_AND: ABL_OPER_L(abl)=ABL_NOR; break;
|
||||
case ABL_OR: ABL_OPER_L(abl)=ABL_NAND; break;
|
||||
case ABL_NAND: ABL_OPER_L(abl)=ABL_OR; break;
|
||||
case ABL_NOR: ABL_OPER_L(abl)=ABL_AND; break;
|
||||
case ABL_NOT:
|
||||
chain=abl;
|
||||
abl=ABL_CADR(abl);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* Author : Francois Donnet
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <mut.h>
|
||||
#include <abl.h>
|
||||
#include <abe.h>
|
||||
|
@ -248,7 +248,7 @@ static chain_list *permutations_abl(chain_list* abl)
|
|||
/*put the operator*/
|
||||
for (chain=list_abl; chain; chain=chain->NEXT) {
|
||||
head=createabloper(ABL_OPER(abl));
|
||||
ABL_ARITY(head)=ABL_ARITY(abl);
|
||||
ABL_ARITY_L(head)=ABL_ARITY(abl);
|
||||
ABL_CDR(head)=dupablchain(chain->DATA);
|
||||
chain->DATA=head;
|
||||
}
|
||||
|
|
|
@ -52,9 +52,9 @@ extern void swap_pointers(chain_list* abl1, chain_list* abl2)
|
|||
|
||||
car=ABL_CAR(abl1);
|
||||
cdr=ABL_CDR(abl1);
|
||||
ABL_CAR(abl1)=ABL_CAR(abl2);
|
||||
ABL_CAR_L(abl1)=ABL_CAR(abl2);
|
||||
ABL_CDR(abl1)=ABL_CDR(abl2);
|
||||
ABL_CAR(abl2)=car;
|
||||
ABL_CAR_L(abl2)=car;
|
||||
ABL_CDR(abl2)=cdr;
|
||||
}
|
||||
|
||||
|
@ -80,12 +80,12 @@ extern void invert_port(port_list* port)
|
|||
|
||||
if (ABL_ATOM(port->ABL)) {
|
||||
name=getoppositename(ABL_ATOM_VALUE(port->ABL));
|
||||
if (is_signal(name)) ABL_ATOM_VALUE(port->ABL)=name;
|
||||
if (is_signal(name)) ABL_CAR_L(port->ABL)=name;
|
||||
else
|
||||
{
|
||||
/*add a not*/
|
||||
not=createabloper(ABL_NOT);
|
||||
ABL_ARITY(not)=1;
|
||||
ABL_ARITY_L(not)=1;
|
||||
/*swap pointers references*/
|
||||
swap_pointers(port->ABL,not);
|
||||
ABL_CDR(port->ABL)=addchain(NULL,not);
|
||||
|
@ -94,14 +94,14 @@ extern void invert_port(port_list* port)
|
|||
else
|
||||
{
|
||||
switch (ABL_OPER(port->ABL)) {
|
||||
case ABL_AND: ABL_OPER(port->ABL)=ABL_NAND; break;
|
||||
case ABL_NAND: ABL_OPER(port->ABL)=ABL_AND; break;
|
||||
case ABL_OR: ABL_OPER(port->ABL)=ABL_NOR; break;
|
||||
case ABL_NOR: ABL_OPER(port->ABL)=ABL_OR; break;
|
||||
case ABL_XOR: ABL_OPER(port->ABL)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER(port->ABL)=ABL_XOR; break;
|
||||
case ABL_AND: ABL_OPER_L(port->ABL)=ABL_NAND; break;
|
||||
case ABL_NAND: ABL_OPER_L(port->ABL)=ABL_AND; break;
|
||||
case ABL_OR: ABL_OPER_L(port->ABL)=ABL_NOR; break;
|
||||
case ABL_NOR: ABL_OPER_L(port->ABL)=ABL_OR; break;
|
||||
case ABL_XOR: ABL_OPER_L(port->ABL)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER_L(port->ABL)=ABL_XOR; break;
|
||||
case ABL_NOT: /*no need to insert*/
|
||||
port->ABL=ABL_CADR(port->ABL); continue;
|
||||
port->ABL=ABL_CADR_L(port->ABL); continue;
|
||||
default:
|
||||
fprintf(stderr,
|
||||
"invert_port: oper %s forbidden at this level\n",
|
||||
|
@ -112,7 +112,7 @@ extern void invert_port(port_list* port)
|
|||
|
||||
/*insert a NOT to match perfectly with cell*/
|
||||
not=createabloper(ABL_NOT);
|
||||
ABL_ARITY(not)=1;
|
||||
ABL_ARITY_L(not)=1;
|
||||
/*swap pointers references*/
|
||||
swap_pointers(port->ABL,not);
|
||||
ABL_CDR(port->ABL)=addchain(NULL,not);
|
||||
|
@ -160,12 +160,12 @@ static chain_list* loc_adapt_abl(chain_list* expr, float C)
|
|||
/*evaluate with the biggest oper*/
|
||||
int arity=ABL_ARITY(expr); /*memorize arity*/
|
||||
/*search the biggest arity which matches expr*/
|
||||
for (ABL_ARITY(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0;
|
||||
ABL_ARITY(expr)--) {
|
||||
for (ABL_ARITY_L(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0;
|
||||
ABL_ARITY_L(expr)--) {
|
||||
cell=cell_prepare(expr);
|
||||
if (cell) break;
|
||||
}
|
||||
ABL_ARITY(expr)=arity; /*put back arity*/
|
||||
ABL_ARITY_L(expr)=arity; /*put back arity*/
|
||||
if (!cell) {
|
||||
fprintf(stderr,"Library Error: No cell could match '");
|
||||
display_abl(expr);
|
||||
|
@ -181,7 +181,7 @@ static chain_list* loc_adapt_abl(chain_list* expr, float C)
|
|||
return expr;
|
||||
}
|
||||
for (abl=ABL_CDR(expr); abl; abl=ABL_CDR(abl)) {
|
||||
ABL_CAR(abl)=loc_adapt_abl(ABL_CAR(abl),port->C);
|
||||
ABL_CAR_L(abl)=loc_adapt_abl(ABL_CAR(abl),port->C);
|
||||
}
|
||||
return expr;
|
||||
}
|
||||
|
@ -241,12 +241,12 @@ extern chain_list* adapt_abl(chain_list* expr)
|
|||
/*evaluate with the biggest oper*/
|
||||
arity=ABL_ARITY(expr); /*memorize arity*/
|
||||
/*search the biggest arity which matches expr*/
|
||||
for (ABL_ARITY(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0;
|
||||
ABL_ARITY(expr)--) {
|
||||
for (ABL_ARITY_L(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0;
|
||||
ABL_ARITY_L(expr)--) {
|
||||
cell=cell_prepare(expr);
|
||||
if (cell) break;
|
||||
}
|
||||
ABL_ARITY(expr)=arity; /*put back arity*/
|
||||
ABL_ARITY_L(expr)=arity; /*put back arity*/
|
||||
if (!cell) {
|
||||
fprintf(stderr,"Library Error: No cell could match '");
|
||||
display_abl(expr);
|
||||
|
@ -261,7 +261,7 @@ extern chain_list* adapt_abl(chain_list* expr)
|
|||
return expr;
|
||||
}
|
||||
for (abl=ABL_CDR(expr); abl; abl=ABL_CDR(abl)) {
|
||||
ABL_CAR(abl)=loc_adapt_abl(ABL_CAR(abl),port->C);
|
||||
ABL_CAR_L(abl)=loc_adapt_abl(ABL_CAR(abl),port->C);
|
||||
}
|
||||
return expr;
|
||||
}
|
||||
|
@ -315,7 +315,7 @@ extern biabl_list* adapt_bus(biabl_list* biabl)
|
|||
biabl->VALABL=build_negativ(biabl->VALABL);
|
||||
biabl->VALABL=createablnotexpr(biabl->VALABL);
|
||||
/* createablnotexpr() can simplify*/
|
||||
if (!ABL_ATOM(biabl->VALABL)) ABL_ARITY(biabl->VALABL)=1;
|
||||
if (!ABL_ATOM(biabl->VALABL)) ABL_ARITY_L(biabl->VALABL)=1;
|
||||
}
|
||||
|
||||
cell=cell_prepare_bus(biabl);
|
||||
|
|
|
@ -406,7 +406,7 @@ extern cell_list* cell_pattern(chain_list* expr)
|
|||
/*create a temporary NOT to match perfectly with cell*/
|
||||
not=createabloper(ABL_NOT);
|
||||
ABL_CDR(not)=addchain(NULL,NULL);
|
||||
ABL_ARITY(not)=1;
|
||||
ABL_ARITY_L(not)=1;
|
||||
|
||||
/*take those are biggest*/
|
||||
for (cell=getcell_logic_lib(); cell; cell=cell->NEXT) {
|
||||
|
@ -497,7 +497,7 @@ extern cell_list* cell_pattern(chain_list* expr)
|
|||
exit(1);
|
||||
}
|
||||
if (port->NEGATIV) {
|
||||
ABL_CADR(not)=port->ABL;
|
||||
ABL_CADR_L(not)=port->ABL;
|
||||
delay=port->T+find_delay(not, port->C);
|
||||
}
|
||||
else delay=port->T+find_delay(port->ABL, port->C);
|
||||
|
@ -566,7 +566,7 @@ extern cell_list* cell_pattern_bus(biabl_list* biabl)
|
|||
/*create a temporary NOT to match perfectly with cell*/
|
||||
not=createabloper(ABL_NOT);
|
||||
ABL_CDR(not)=addchain(NULL,NULL);
|
||||
ABL_ARITY(not)=1;
|
||||
ABL_ARITY_L(not)=1;
|
||||
|
||||
for (cell=getcell_tristate_lib(); cell; cell=cell->NEXT) {
|
||||
/*prepare for use*/
|
||||
|
@ -642,7 +642,7 @@ extern cell_list* cell_pattern_bus(biabl_list* biabl)
|
|||
exit(1);
|
||||
}
|
||||
if (port->NEGATIV) {
|
||||
ABL_CADR(not)=port->ABL;
|
||||
ABL_CADR_L(not)=port->ABL;
|
||||
delay=port->T+find_delay(not, port->C);
|
||||
}
|
||||
else delay=port->T+find_delay(port->ABL, port->C);
|
||||
|
@ -713,7 +713,7 @@ extern cell_list* cell_pattern_reg(biabl_list* biabl)
|
|||
/*create a temporary NOT to match perfectly with cell*/
|
||||
not=createabloper(ABL_NOT);
|
||||
ABL_CDR(not)=addchain(NULL,NULL);
|
||||
ABL_ARITY(not)=1;
|
||||
ABL_ARITY_L(not)=1;
|
||||
|
||||
cell=getcell_register_lib();
|
||||
|
||||
|
@ -791,7 +791,7 @@ extern cell_list* cell_pattern_reg(biabl_list* biabl)
|
|||
exit(1);
|
||||
}
|
||||
if (port->NEGATIV) {
|
||||
ABL_CADR(not)=port->ABL;
|
||||
ABL_CADR_L(not)=port->ABL;
|
||||
delay=port->T+find_delay(not, port->C);
|
||||
}
|
||||
else delay=port->T+find_delay(port->ABL, port->C);
|
||||
|
@ -879,12 +879,12 @@ extern chain_list* build_reference(befig_list* befig, port_list* port, port_list
|
|||
}
|
||||
|
||||
/*refer to new port*/
|
||||
ABL_ATOM_VALUE(abl)=(chain_list*)port;
|
||||
ABL_CAR_L(abl)=(chain_list*)port;
|
||||
return abl; /*head unchanged*/
|
||||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=build_reference(befig,port,internal_port,ABL_CAR(chain));
|
||||
ABL_CAR_L(chain)=build_reference(befig,port,internal_port,ABL_CAR(chain));
|
||||
}
|
||||
|
||||
/*mark if STABLE*/
|
||||
|
@ -932,7 +932,7 @@ extern port_list* internal_reference(befig_list* befig, port_list* port, chain_l
|
|||
port_aux->DIRECTION=INOUT;
|
||||
|
||||
/*refer to new port*/
|
||||
ABL_ATOM_VALUE(abl)=(chain_list*)port_aux;
|
||||
ABL_CAR_L(abl)=(chain_list*)port_aux;
|
||||
return port_aux;
|
||||
}
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ extern void put_arity_abl (chain_list* abl)
|
|||
put_arity_abl((chain_list*)ABL_CAR(pattern));
|
||||
}
|
||||
|
||||
ABL_ARITY(abl)=arity;
|
||||
ABL_ARITY_L(abl)=arity;
|
||||
return ;
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
/*head operator arity*/
|
||||
/* Warning: simpablexpr() do not work anymore after pulling arity */
|
||||
#define ABL_ARITY(abl) ((int)ABL_CDR((chain_list*)ABL_CAR(abl)))
|
||||
#define ABL_ARITY_L(abl) (ABL_CDR((chain_list*)ABL_CAR(abl)))
|
||||
|
||||
/***************************************************************************/
|
||||
/* put arity operator in abl->DATA->NEXT field */
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
#include "bog_normalize_DAG.h"
|
||||
|
||||
|
||||
#define USING(node) {(int)node=-mark;}
|
||||
#define USED(node) {(int)node=(int)((((int)node<0)?0:(int)node)+1);}
|
||||
#define USING(node) {node=-mark;}
|
||||
#define USED(node) {node=(int)((((int)node<0)?0:(int)node)+1);}
|
||||
#define IS_USING(node) ((int)node==-mark)
|
||||
#define IS_USED(node) ((int)node!=0)
|
||||
#define IS_UNUSED(node) ((int)node==0)
|
||||
|
@ -128,7 +128,7 @@ static chain_list* inter_equi(equi_list *equi, chain_list *abl)
|
|||
|
||||
head=abl;
|
||||
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(abl)) {
|
||||
ABL_CAR(abl)=inter_equi(equi,ABL_CAR(abl));
|
||||
ABL_CAR_L(abl)=inter_equi(equi,ABL_CAR(abl));
|
||||
}
|
||||
|
||||
return head;
|
||||
|
@ -159,7 +159,7 @@ static chain_list* replace_equi(chain_list* abl)
|
|||
|
||||
head=abl;
|
||||
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(abl)) {
|
||||
ABL_CAR(abl)=replace_equi(ABL_CAR(abl));
|
||||
ABL_CAR_L(abl)=replace_equi(ABL_CAR(abl));
|
||||
}
|
||||
|
||||
return head;
|
||||
|
|
|
@ -49,12 +49,12 @@ static void find_d_z_abl(chain_list* abl, int value)
|
|||
if (ABL_ATOM_VALUE(abl)==getablatomdc()/* = namealloc("'d'")*/) {
|
||||
/*non standard IEEE VHDL*/ /*it means "don't care"*/
|
||||
/* we can put zero either one, only to simplify*/
|
||||
ABL_ATOM_VALUE(abl)=value?getablatomone():getablatomzero();
|
||||
ABL_CAR_L(abl)=value?getablatomone():getablatomzero();
|
||||
}
|
||||
else if (ABL_ATOM_VALUE(abl)==getablatomtristate()/* =namealloc("'z'")*/){
|
||||
/*no drive on signal*/
|
||||
/* a pull-up is done for better conductance*/
|
||||
ABL_ATOM_VALUE(abl)=getablatomone()/* = namealloc("'1'")*/;
|
||||
ABL_CAR_L(abl)=getablatomone()/* = namealloc("'1'")*/;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ static void changename(chain_list* abl)
|
|||
if (ABL_ATOM(abl)) {
|
||||
elem=searchauthelem(HTABLE,ABL_ATOM_VALUE(abl));
|
||||
if (!elem) return;
|
||||
ABL_ATOM_VALUE(abl)=(char*) elem->VALUE;
|
||||
ABL_CAR_L(abl)=(char*) elem->VALUE;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
*/
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <mut.h>
|
||||
#include <abl.h>
|
||||
#include <abe.h>
|
||||
|
@ -48,7 +48,7 @@ static chain_list* unflatnegexpr(chain_list* abl)
|
|||
if (ABL_ATOM(abl)) return abl;
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=unflatnegexpr(ABL_CAR(chain));
|
||||
ABL_CAR_L(chain)=unflatnegexpr(ABL_CAR(chain));
|
||||
count++;
|
||||
}
|
||||
|
||||
|
@ -57,13 +57,13 @@ static chain_list* unflatnegexpr(chain_list* abl)
|
|||
|
||||
switch(ABL_OPER(abl)) {
|
||||
case ABL_NAND:
|
||||
ABL_OPER(abl)=ABL_AND;
|
||||
ABL_OPER_L(abl)=ABL_AND;
|
||||
return createablnotexpr(abl);
|
||||
case ABL_NOR:
|
||||
ABL_OPER(abl)=ABL_OR;
|
||||
ABL_OPER_L(abl)=ABL_OR;
|
||||
return createablnotexpr(abl);
|
||||
case ABL_NXOR:
|
||||
ABL_OPER(abl)=ABL_XOR;
|
||||
ABL_OPER_L(abl)=ABL_XOR;
|
||||
return createablnotexpr(abl);
|
||||
default: return abl;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ static chain_list* change_atom(chain_list* abl,int invert)
|
|||
|
||||
if (ABL_ATOM(abl)) {
|
||||
if (!invert) return abl;
|
||||
ABL_ATOM_VALUE(abl)=getoppositename(ABL_ATOM_VALUE(abl));
|
||||
ABL_CAR_L(abl)=getoppositename(ABL_ATOM_VALUE(abl));
|
||||
return createablnotexpr(abl);
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ static chain_list* change_atom(chain_list* abl,int invert)
|
|||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=change_atom(ABL_CAR(chain),invert);
|
||||
ABL_CAR_L(chain)=change_atom(ABL_CAR(chain),invert);
|
||||
}
|
||||
|
||||
return abl;
|
||||
|
@ -227,7 +227,7 @@ static void search_name(char* name)
|
|||
/* keep the NOT to use inverter bus */
|
||||
if (is_tristate_inverter_lib() &&
|
||||
!ABL_ATOM(biabl->VALABL) && ABL_OPER(biabl->VALABL)==ABL_NOT) {
|
||||
ABL_CADR(biabl->VALABL)=unflatten_abl(ABL_CADR(biabl->VALABL));
|
||||
ABL_CADR_L(biabl->VALABL)=unflatten_abl(ABL_CADR(biabl->VALABL));
|
||||
}
|
||||
else biabl->VALABL=unflatten_abl(biabl->VALABL); /*arity solver*/
|
||||
biabl->CNDABL=unflatten_abl(biabl->CNDABL); /*arity solver*/
|
||||
|
@ -342,7 +342,7 @@ extern void unflatten_befig(befig_list *befig_param)
|
|||
/* keep the NOT to use inverter bus */
|
||||
if (is_tristate_inverter_lib() &&
|
||||
!ABL_ATOM(biabl->VALABL) && ABL_OPER(biabl->VALABL)==ABL_NOT) {
|
||||
ABL_CADR(biabl->VALABL)=unflatten_abl(ABL_CADR(biabl->VALABL));
|
||||
ABL_CADR_L(biabl->VALABL)=unflatten_abl(ABL_CADR(biabl->VALABL));
|
||||
}
|
||||
else biabl->VALABL=unflatten_abl(biabl->VALABL); /*arity solver*/
|
||||
biabl->CNDABL=unflatten_abl(biabl->CNDABL); /*arity solver*/
|
||||
|
|
|
@ -2,13 +2,14 @@
|
|||
|
||||
bin_PROGRAMS = boom
|
||||
|
||||
AM_CFLAGS = @ALLIANCE_CFLAGS@ -I$(top_srcdir)/abe/src \
|
||||
AM_CFLAGS = -I$(top_srcdir)/abe/src \
|
||||
-I$(top_srcdir)/abl/src \
|
||||
-I$(top_srcdir)/abt/src \
|
||||
-I$(top_srcdir)/abv/src \
|
||||
-I$(top_srcdir)/aut/src \
|
||||
-I$(top_srcdir)/bdd/src \
|
||||
-I$(top_srcdir)/mbk/src
|
||||
-I$(top_srcdir)/mbk/src \
|
||||
@ALLIANCE_CFLAGS@
|
||||
|
||||
boom_LDADD = @ALLIANCE_LIBS@ \
|
||||
-L$(top_srcdir)/abv/src \
|
||||
|
|
|
@ -153,7 +153,7 @@ static chain_list *BoomBddIndex2Abl( Index )
|
|||
|
||||
if ( Name != (char *)0 )
|
||||
{
|
||||
ABL_CAR( Atom ) = addchain( (chain_list *)0, (void *)ABL_STABLE );
|
||||
ABL_CAR_L( Atom ) = addchain( (chain_list *)0, (void *)ABL_STABLE );
|
||||
addablhexpr( Atom, createablatom( Name ) );
|
||||
}
|
||||
|
||||
|
@ -1550,7 +1550,7 @@ static chain_list *BoomReverseAbl( Expr )
|
|||
|
||||
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 )
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = BoomReverseAbl( ABL_CAR( ScanExpr ) );
|
||||
ABL_CAR_L( ScanExpr ) = BoomReverseAbl( ABL_CAR( ScanExpr ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -192,7 +192,7 @@ static ablexpr *BoomCreateAuxAbl( Expr )
|
|||
|
||||
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 )
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = BoomCreateAuxAbl( ABL_CAR( ScanExpr ) );
|
||||
ABL_CAR_L( ScanExpr ) = BoomCreateAuxAbl( ABL_CAR( ScanExpr ) );
|
||||
}
|
||||
|
||||
BddNode = BoomGetBddMarkAbl( Expr );
|
||||
|
@ -417,7 +417,7 @@ static ablexpr *BoomReplaceUselessAuxAbl( Expr )
|
|||
|
||||
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 )
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = BoomReplaceUselessAuxAbl( ABL_CAR( ScanExpr ) );
|
||||
ABL_CAR_L( ScanExpr ) = BoomReplaceUselessAuxAbl( ABL_CAR( ScanExpr ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -200,13 +200,13 @@ static ablexpr *BoomCreateAuxInitComparatorAbl( Expr )
|
|||
if ( Operand1 == (ablexpr *)0 )
|
||||
{
|
||||
Operand1 = ABL_CAR( ScanExpr );
|
||||
ABL_CAR( ScanExpr ) = (ablexpr *)0;
|
||||
ABL_CAR_L( ScanExpr ) = (ablexpr *)0;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
Operand2 = ABL_CAR( ScanExpr );
|
||||
ABL_CAR( ScanExpr ) = (ablexpr *)0;
|
||||
ABL_CAR_L( ScanExpr ) = (ablexpr *)0;
|
||||
|
||||
AuxExpr = createablbinexpr( ABL_XOR, Operand1, Operand2 );
|
||||
AuxName = BoomGetNewAuxInitName();
|
||||
|
@ -238,7 +238,7 @@ static ablexpr *BoomCreateAuxInitComparatorAbl( Expr )
|
|||
|
||||
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 )
|
||||
{
|
||||
ABL_CAR( ScanExpr ) = BoomCreateAuxInitComparatorAbl( ABL_CAR( ScanExpr ) );
|
||||
ABL_CAR_L( ScanExpr ) = BoomCreateAuxInitComparatorAbl( ABL_CAR( ScanExpr ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1083,7 +1083,7 @@ static void BoomBddReplaceKeepAuxAbl( Expr )
|
|||
|
||||
if ( Element != (authelem *)0 )
|
||||
{
|
||||
ABL_ATOM_VALUE( Expr ) = (char *)Element->VALUE;
|
||||
ABL_CAR_L( Expr ) = (char *)Element->VALUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,7 +103,7 @@ static void BoomReplaceDontCareAbl( Expr )
|
|||
if ( ABL_ATOM_VALUE( Expr ) == ABL_ATOM_NAME_DC )
|
||||
{
|
||||
BoomFoundAblDc = 1;
|
||||
ABL_ATOM_VALUE( Expr ) = ABL_ATOM_NAME_ZERO;
|
||||
ABL_CAR_L( Expr ) = ABL_ATOM_NAME_ZERO;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -106,7 +106,7 @@ static void BoomRenameAuxVectorAbl( Expr )
|
|||
|
||||
if ( Element != (authelem *)0 )
|
||||
{
|
||||
ABL_ATOM_VALUE( Expr ) = (char *)Element->VALUE;
|
||||
ABL_CAR_L( Expr ) = (char *)Element->VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -65,6 +65,10 @@
|
|||
\
|
||||
((rdsrec_list **)((R)->USER))
|
||||
|
||||
# define DREAL_PREVIOUS_L( R ) \
|
||||
\
|
||||
((R)->USER)
|
||||
|
||||
# define DREAL_WINDOW( R ) \
|
||||
\
|
||||
(((drealrec *)((char *)(R)+sizeof(rdsrec_list)))->WINDOW )
|
||||
|
|
|
@ -213,7 +213,7 @@ void DrealAddFigure( Name )
|
|||
Rectangle != (rdsrec_list *)NULL;
|
||||
Rectangle = Rectangle->NEXT )
|
||||
{
|
||||
DREAL_PREVIOUS( Rectangle ) = Previous;
|
||||
DREAL_PREVIOUS_L( Rectangle ) = Previous;
|
||||
Previous = &Rectangle->NEXT;
|
||||
|
||||
DrealInsertRectangle( Rectangle );
|
||||
|
@ -230,7 +230,7 @@ void DrealAddFigure( Name )
|
|||
Rectangle != (rdsrec_list *)NULL;
|
||||
Rectangle = Rectangle->NEXT )
|
||||
{
|
||||
DREAL_PREVIOUS( Rectangle ) = (rdsrec_list **)Instance;
|
||||
DREAL_PREVIOUS_L( Rectangle ) = (rdsrec_list **)Instance;
|
||||
|
||||
DrealInsertRectangle( Rectangle );
|
||||
}
|
||||
|
@ -266,10 +266,10 @@ rdsrec_list *DrealAddRectangle( Name, Layer, X, Y, Dx, Dy )
|
|||
|
||||
if ( ScanRec->NEXT != (rdsrec_list *)0 )
|
||||
{
|
||||
DREAL_PREVIOUS( ScanRec->NEXT ) = &ScanRec->NEXT;
|
||||
DREAL_PREVIOUS_L( ScanRec->NEXT ) = &ScanRec->NEXT;
|
||||
}
|
||||
|
||||
DREAL_PREVIOUS( ScanRec ) = &DrealFigureRds->LAYERTAB[ Layer ];
|
||||
DREAL_PREVIOUS_L( ScanRec ) = &DrealFigureRds->LAYERTAB[ Layer ];
|
||||
|
||||
rdsend();
|
||||
return( ScanRec );
|
||||
|
@ -305,10 +305,10 @@ rdsrec_list *DrealAddAbox( X, Y, Dx, Dy )
|
|||
|
||||
if ( ScanRec->NEXT != (rdsrec_list *)0 )
|
||||
{
|
||||
DREAL_PREVIOUS( ScanRec->NEXT ) = &ScanRec->NEXT;
|
||||
DREAL_PREVIOUS_L( ScanRec->NEXT ) = &ScanRec->NEXT;
|
||||
}
|
||||
|
||||
DREAL_PREVIOUS( ScanRec ) = &DrealFigureRds->LAYERTAB[ RDS_ABOX ];
|
||||
DREAL_PREVIOUS_L( ScanRec ) = &DrealFigureRds->LAYERTAB[ RDS_ABOX ];
|
||||
|
||||
rdsend();
|
||||
return( ScanRec );
|
||||
|
@ -406,7 +406,7 @@ void DrealDelRectangle( DelRec )
|
|||
|
||||
if ( DelRec->NEXT != (rdsrec_list *)0 )
|
||||
{
|
||||
DREAL_PREVIOUS( DelRec->NEXT ) = DREAL_PREVIOUS( DelRec );
|
||||
DREAL_PREVIOUS_L( DelRec->NEXT ) = DREAL_PREVIOUS( DelRec );
|
||||
}
|
||||
|
||||
DrealEraseRectangle( DelRec );
|
||||
|
@ -471,7 +471,7 @@ void DrealFlattenFigure()
|
|||
|
||||
while ( ScanRec != (rdsrec_list *)NULL )
|
||||
{
|
||||
DREAL_PREVIOUS( ScanRec ) = Previous;
|
||||
DREAL_PREVIOUS_L( ScanRec ) = Previous;
|
||||
Previous = &ScanRec->NEXT;
|
||||
|
||||
DrealInsertRectangle( ScanRec );
|
||||
|
@ -484,7 +484,7 @@ void DrealFlattenFigure()
|
|||
|
||||
if ( ScanRec->NEXT != (rdsrec_list *)NULL )
|
||||
{
|
||||
DREAL_PREVIOUS( ScanRec->NEXT ) = &ScanRec->NEXT;
|
||||
DREAL_PREVIOUS_L( ScanRec->NEXT ) = &ScanRec->NEXT;
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -1874,7 +1874,7 @@ void FvhFbhPostTreat( FsmFigure )
|
|||
if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
|
||||
{
|
||||
StarChain = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
Equation = StarChain;
|
||||
}
|
||||
|
|
|
@ -346,7 +346,8 @@ int main (int ac, char *av[])
|
|||
}
|
||||
}
|
||||
}
|
||||
in_touch :
|
||||
in_touch :
|
||||
; // xtof to avoid an error with gcc4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,13 +30,14 @@
|
|||
|
||||
|
||||
|
||||
#ident "$Id: log_bdd0.c,v 1.4 2005/04/15 08:38:49 alliance Exp $"
|
||||
#ident "$Id: log_bdd0.c,v 1.5 2006/03/29 17:10:13 xtof Exp $"
|
||||
|
||||
/****************************************************************************/
|
||||
/* Produit : librairie BDD - Gestion de BDD */
|
||||
/****************************************************************************/
|
||||
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include "mut.h"
|
||||
#include "log.h"
|
||||
|
||||
|
|
|
@ -30,13 +30,13 @@
|
|||
|
||||
|
||||
|
||||
#ident "$Id: log_thashbdd.c,v 1.2 2002/09/30 16:20:43 czo Exp $"
|
||||
#ident "$Id: log_thashbdd.c,v 1.3 2006/03/29 17:10:13 xtof Exp $"
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
la table de hachage des BDD
|
||||
la version du 10.12.90
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "mut.h"
|
||||
#include "log.h"
|
||||
|
||||
|
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
bin_PROGRAMS = loon
|
||||
|
||||
AM_CFLAGS = @ALLIANCE_CFLAGS@ -I$(top_srcdir)/abe/src \
|
||||
AM_CFLAGS = -I$(top_srcdir)/abe/src \
|
||||
-I$(top_srcdir)/abl/src \
|
||||
-I$(top_srcdir)/aut/src \
|
||||
-I$(top_srcdir)/abv/src \
|
||||
-I$(top_srcdir)/bdd/src \
|
||||
-I$(top_srcdir)/mbk/src
|
||||
-I$(top_srcdir)/mbk/src \
|
||||
@ALLIANCE_CFLAGS@
|
||||
|
||||
loon_LDADD = @ALLIANCE_LIBS@ \
|
||||
-L$(top_srcdir)/abe/src \
|
||||
|
|
|
@ -152,7 +152,7 @@ static chain_list* format_subst_abl( chain_list* abl, beaux_list *BeauxSubst )
|
|||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain) = format_subst_abl( ABL_CAR( chain ), BeauxSubst );
|
||||
ABL_CAR_L(chain) = format_subst_abl( ABL_CAR( chain ), BeauxSubst );
|
||||
}
|
||||
|
||||
return abl;
|
||||
|
|
|
@ -46,10 +46,10 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
|
|||
|
||||
if (ABL_ATOM(abl)) {
|
||||
if (ABL_ATOM_VALUE(abl)==getablatomzero()) {
|
||||
if (negativ) ABL_ATOM_VALUE(abl)=getablatomone();
|
||||
if (negativ) ABL_CAR_L(abl)=getablatomone();
|
||||
}
|
||||
else if (ABL_ATOM_VALUE(abl)==getablatomone()) {
|
||||
if (negativ) ABL_ATOM_VALUE(abl)=getablatomzero();
|
||||
if (negativ) ABL_CAR_L(abl)=getablatomzero();
|
||||
}
|
||||
else {
|
||||
if (negativ) {
|
||||
|
@ -61,30 +61,30 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
|
|||
|
||||
switch (ABL_OPER(abl)) {
|
||||
case ABL_AND:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NAND;
|
||||
else ABL_OPER(abl)=ABL_NOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NAND;
|
||||
else ABL_OPER_L(abl)=ABL_NOR;
|
||||
negativ=!negativ;
|
||||
break;
|
||||
case ABL_NAND:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NOR;
|
||||
else ABL_OPER(abl)=ABL_NAND;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NOR;
|
||||
else ABL_OPER_L(abl)=ABL_NAND;
|
||||
break;
|
||||
case ABL_OR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NOR;
|
||||
else ABL_OPER(abl)=ABL_NAND;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NOR;
|
||||
else ABL_OPER_L(abl)=ABL_NAND;
|
||||
negativ=!negativ;
|
||||
break;
|
||||
case ABL_NOR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NAND;
|
||||
else ABL_OPER(abl)=ABL_NOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NAND;
|
||||
else ABL_OPER_L(abl)=ABL_NOR;
|
||||
break;
|
||||
case ABL_XOR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_NXOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_NXOR;
|
||||
negativ=0;
|
||||
/*nothing to do: same size XOR and NXOR*/
|
||||
break;
|
||||
case ABL_NXOR:
|
||||
if (negativ) ABL_OPER(abl)=ABL_XOR;
|
||||
if (negativ) ABL_OPER_L(abl)=ABL_XOR;
|
||||
negativ=0;
|
||||
/*nothing to do*/
|
||||
break;
|
||||
|
@ -99,7 +99,7 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
|
|||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=inv_oper(ABL_CAR(chain),negativ);
|
||||
ABL_CAR_L(chain)=inv_oper(ABL_CAR(chain),negativ);
|
||||
}
|
||||
|
||||
return abl;
|
||||
|
@ -131,7 +131,7 @@ extern chain_list* build_negativ(chain_list* abl)
|
|||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=build_negativ(ABL_CAR(chain));
|
||||
ABL_CAR_L(chain)=build_negativ(ABL_CAR(chain));
|
||||
}
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
|
@ -166,23 +166,23 @@ extern chain_list* build_negativ(chain_list* abl)
|
|||
if (ABL_ATOM(leaf)) {
|
||||
/*constant undifferent*/
|
||||
if (ABL_ATOM_VALUE(leaf)==getablatomzero())
|
||||
ABL_ATOM_VALUE(leaf)=getablatomone();
|
||||
ABL_CAR_L(leaf)=getablatomone();
|
||||
else if (ABL_ATOM_VALUE(leaf)==getablatomone())
|
||||
ABL_ATOM_VALUE(leaf)=getablatomzero();
|
||||
ABL_CAR_L(leaf)=getablatomzero();
|
||||
else {
|
||||
ABL_CAR(chain)=createablnotexpr(ABL_CAR(chain));
|
||||
ABL_CAR_L(chain)=createablnotexpr(ABL_CAR(chain));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
switch (ABL_OPER(leaf)) {
|
||||
case ABL_AND: ABL_OPER(leaf)=ABL_NAND; break;
|
||||
case ABL_OR: ABL_OPER(leaf)=ABL_NOR; break;
|
||||
case ABL_NAND: ABL_OPER(leaf)=ABL_AND; break;
|
||||
case ABL_NOR: ABL_OPER(leaf)=ABL_OR; break;
|
||||
case ABL_XOR: ABL_OPER(leaf)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER(leaf)=ABL_XOR; break;
|
||||
case ABL_AND: ABL_OPER_L(leaf)=ABL_NAND; break;
|
||||
case ABL_OR: ABL_OPER_L(leaf)=ABL_NOR; break;
|
||||
case ABL_NAND: ABL_OPER_L(leaf)=ABL_AND; break;
|
||||
case ABL_NOR: ABL_OPER_L(leaf)=ABL_OR; break;
|
||||
case ABL_XOR: ABL_OPER_L(leaf)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER_L(leaf)=ABL_XOR; break;
|
||||
case ABL_NOT:
|
||||
ABL_CAR(chain)=ABL_CADR(leaf);
|
||||
ABL_CAR_L(chain)=ABL_CADR(leaf);
|
||||
freechain(leaf);
|
||||
break;
|
||||
default:
|
||||
|
@ -192,12 +192,12 @@ extern chain_list* build_negativ(chain_list* abl)
|
|||
}
|
||||
|
||||
switch (ABL_OPER(abl)) {
|
||||
case ABL_AND: ABL_OPER(abl)=ABL_NOR; break;
|
||||
case ABL_OR: ABL_OPER(abl)=ABL_NAND; break;
|
||||
case ABL_NAND: ABL_OPER(abl)=ABL_OR; break;
|
||||
case ABL_NOR: ABL_OPER(abl)=ABL_AND; break;
|
||||
case ABL_XOR: ABL_OPER(abl)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER(abl)=ABL_XOR; break;
|
||||
case ABL_AND: ABL_OPER_L(abl)=ABL_NOR; break;
|
||||
case ABL_OR: ABL_OPER_L(abl)=ABL_NAND; break;
|
||||
case ABL_NAND: ABL_OPER_L(abl)=ABL_OR; break;
|
||||
case ABL_NOR: ABL_OPER_L(abl)=ABL_AND; break;
|
||||
case ABL_XOR: ABL_OPER_L(abl)=ABL_NXOR; break;
|
||||
case ABL_NXOR: ABL_OPER_L(abl)=ABL_XOR; break;
|
||||
case ABL_NOT:
|
||||
chain=abl;
|
||||
abl=ABL_CADR(abl);
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <ctype.h>
|
||||
|
|
|
@ -39,7 +39,9 @@
|
|||
|
||||
|
||||
#define USING(node) {(int)node=-mark;}
|
||||
#define USING_L(node) {node=-mark;}
|
||||
#define USED(node) {(int)node=(int)((((int)node<0)?0:(int)node)+1);}
|
||||
#define USED_L(node) {node=(int)((((int)node<0)?0:(int)node)+1);}
|
||||
#define IS_USING(node) ((int)node==-mark)
|
||||
#define IS_USED(node) ((int)node!=0)
|
||||
#define IS_UNUSED(node) ((int)node==0)
|
||||
|
@ -123,7 +125,7 @@ static chain_list* inter_equi(equi_list *equi, chain_list *abl)
|
|||
|
||||
head=abl;
|
||||
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(abl)) {
|
||||
ABL_CAR(abl)=inter_equi(equi,ABL_CAR(abl));
|
||||
ABL_CAR_L(abl)=inter_equi(equi,ABL_CAR(abl));
|
||||
}
|
||||
|
||||
return head;
|
||||
|
@ -152,7 +154,7 @@ static chain_list* replace_equi(chain_list* abl)
|
|||
|
||||
head=abl;
|
||||
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(abl)) {
|
||||
ABL_CAR(abl)=replace_equi(ABL_CAR(abl));
|
||||
ABL_CAR_L(abl)=replace_equi(ABL_CAR(abl));
|
||||
}
|
||||
|
||||
return head;
|
||||
|
@ -353,10 +355,10 @@ static int abl_dispatching(chain_list *abl, int mark)
|
|||
return 0;
|
||||
}
|
||||
if (IS_USED(beaux->NODE)) {
|
||||
USED(beaux->NODE);
|
||||
USED_L(beaux->NODE);
|
||||
return 1;
|
||||
}
|
||||
USING(beaux->NODE);
|
||||
USING_L(beaux->NODE);
|
||||
if (!abl_dispatching(beaux->ABL, mark)) {
|
||||
if (!CYCLE) return 0; /*for display*/
|
||||
if (CYCLE==beaux->NAME) {
|
||||
|
@ -366,7 +368,7 @@ static int abl_dispatching(chain_list *abl, int mark)
|
|||
else fprintf(stderr,"%s, ",beaux->NAME);
|
||||
return 0;
|
||||
}
|
||||
USED(beaux->NODE);
|
||||
USED_L(beaux->NODE);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
@ -380,10 +382,10 @@ static int abl_dispatching(chain_list *abl, int mark)
|
|||
return 0;
|
||||
}
|
||||
if (IS_USED(bebux->BINODE)) {
|
||||
USED(bebux->BINODE);
|
||||
USED_L(bebux->BINODE);
|
||||
return 1;
|
||||
}
|
||||
USING(bebux->BINODE);
|
||||
USING_L(bebux->BINODE);
|
||||
for (biabl=bebux->BIABL; biabl; biabl=biabl->NEXT) {
|
||||
if (!abl_dispatching(biabl->CNDABL, mark)
|
||||
|| !abl_dispatching(biabl->VALABL, mark)) {
|
||||
|
@ -396,7 +398,7 @@ static int abl_dispatching(chain_list *abl, int mark)
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
USED(bebux->BINODE);
|
||||
USED_L(bebux->BINODE);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
@ -410,11 +412,11 @@ static int abl_dispatching(chain_list *abl, int mark)
|
|||
return 0;
|
||||
}
|
||||
if (IS_USED(bereg->BINODE)) {
|
||||
USED(bereg->BINODE);
|
||||
USED_L(bereg->BINODE);
|
||||
return 1;
|
||||
}
|
||||
/*cycle forbidden on clock*/
|
||||
USING(bereg->BINODE);
|
||||
USING_L(bereg->BINODE);
|
||||
for (biabl=bereg->BIABL; biabl; biabl=biabl->NEXT) {
|
||||
ptype=getptype(biabl->USER,ABL_STABLE); /*search if flip-flop*/
|
||||
/*cycle not forbidden on value for flip-flop */
|
||||
|
@ -431,7 +433,7 @@ static int abl_dispatching(chain_list *abl, int mark)
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
USED(bereg->BINODE);
|
||||
USED_L(bereg->BINODE);
|
||||
/*impossible to look after value now, probably cycled on a signal*/
|
||||
/*wait the end of recursion*/
|
||||
return 1;
|
||||
|
@ -501,7 +503,7 @@ static int mark_output()
|
|||
|
||||
/*create new internal signals and mark the path from output to input*/
|
||||
for (beout=befig->BEOUT; beout; beout=beout->NEXT) {
|
||||
USING(beout->NODE);
|
||||
USING_L(beout->NODE);
|
||||
if (!abl_dispatching(beout->ABL, mark)) {
|
||||
if (!CYCLE) return 0; /*for display*/
|
||||
if (CYCLE==beout->NAME) {
|
||||
|
@ -511,11 +513,11 @@ static int mark_output()
|
|||
else fprintf(stderr,"%s, ",beout->NAME);
|
||||
return 0;
|
||||
}
|
||||
USED(beout->NODE);
|
||||
USED_L(beout->NODE);
|
||||
}
|
||||
|
||||
for (bebus=befig->BEBUS; bebus; bebus=bebus->NEXT) {
|
||||
USING(bebus->BINODE);
|
||||
USING_L(bebus->BINODE);
|
||||
for (biabl=bebus->BIABL; biabl; biabl=biabl->NEXT) {
|
||||
if (!abl_dispatching(biabl->CNDABL, mark)
|
||||
|| !abl_dispatching(biabl->VALABL, mark)) {
|
||||
|
@ -528,7 +530,7 @@ static int mark_output()
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
USED(bebus->BINODE);
|
||||
USED_L(bebus->BINODE);
|
||||
}
|
||||
|
||||
return 1; /*ok*/
|
||||
|
|
|
@ -48,7 +48,7 @@ static chain_list* unflatnegexpr(chain_list* abl)
|
|||
if (ABL_ATOM(abl)) return abl;
|
||||
|
||||
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) {
|
||||
ABL_CAR(chain)=unflatnegexpr(ABL_CAR(chain));
|
||||
ABL_CAR_L(chain)=unflatnegexpr(ABL_CAR(chain));
|
||||
count++;
|
||||
}
|
||||
|
||||
|
@ -57,13 +57,13 @@ static chain_list* unflatnegexpr(chain_list* abl)
|
|||
|
||||
switch(ABL_OPER(abl)) {
|
||||
case ABL_NAND:
|
||||
ABL_OPER(abl)=ABL_AND;
|
||||
ABL_OPER_L(abl)=ABL_AND;
|
||||
return createablnotexpr(abl);
|
||||
case ABL_NOR:
|
||||
ABL_OPER(abl)=ABL_OR;
|
||||
ABL_OPER_L(abl)=ABL_OR;
|
||||
return createablnotexpr(abl);
|
||||
case ABL_NXOR:
|
||||
ABL_OPER(abl)=ABL_XOR;
|
||||
ABL_OPER_L(abl)=ABL_XOR;
|
||||
return createablnotexpr(abl);
|
||||
default: return abl;
|
||||
}
|
||||
|
|
|
@ -484,7 +484,7 @@ Cette liste contient la liste des rectangles connecteurs. */
|
|||
|
||||
|
||||
PtypeRec = getptype( LogicalConnector->USER, RDSLOCON1 );
|
||||
(chain_list*)( PtypeRec->DATA) = append( (chain_list*)(PtypeRec->DATA), RecConnector );
|
||||
PtypeRec->DATA = append( (chain_list*)(PtypeRec->DATA), RecConnector );
|
||||
RecConnector = NULL;
|
||||
|
||||
if( Rcnet == 'c' || Rcnet == 'r' )
|
||||
|
@ -493,7 +493,7 @@ Cette liste contient la liste des rectangles connecteurs. */
|
|||
}
|
||||
|
||||
PrevFEQUI = getptype( Signal->USER, RCN_FEQUI );
|
||||
((chain_list*)(PrevFEQUI->DATA)) = addchain( ((chain_list*)(PrevFEQUI->DATA)), FirstEqui );
|
||||
PrevFEQUI->DATA = addchain( ((chain_list*)(PrevFEQUI->DATA)), FirstEqui );
|
||||
|
||||
}
|
||||
else
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ident "$Id: rcn_lo.c,v 1.3 2003/04/03 14:46:30 xtof Exp $"
|
||||
#ident "$Id: rcn_lo.c,v 1.4 2006/03/29 17:10:33 xtof Exp $"
|
||||
|
||||
/*******************************************************************************
|
||||
* rcn : acces functions to logical rc network structures *
|
||||
|
@ -1495,11 +1495,11 @@ loctc_list* heaploctc()
|
|||
ptctc=HEAD_CTC_FREE;
|
||||
for(i=1;i<RCNBUFSIZE;i++)
|
||||
{
|
||||
(loctc_list*)(ptctc->SIG1) = ptctc+1;
|
||||
ptctc->SIG1 = ptctc+1;
|
||||
ptctc->NODE1 = -1000;
|
||||
ptctc++;
|
||||
}
|
||||
(loctc_list*)(ptctc->SIG1) = NULL;
|
||||
ptctc->SIG1 = NULL;
|
||||
ptctc->NODE1 = -1000;
|
||||
}
|
||||
|
||||
|
@ -1811,8 +1811,7 @@ losig_list *ptsig;
|
|||
if( RCN_GETFLAG( ptnode->FLAG, RCN_FLAG_LOCON ) )
|
||||
{
|
||||
ptlocon = getptype(ptnode->USER, RCN_LOCON );
|
||||
(chain_list*)(ptlocon->DATA)=
|
||||
addchain((chain_list*)(ptlocon->DATA),ptcon);
|
||||
ptlocon->DATA=addchain((chain_list*)(ptlocon->DATA),ptcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include <mut.h>
|
||||
#include <mlo.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/*---------------------------------------------------------\
|
||||
|
|
|
@ -24,6 +24,15 @@
|
|||
/*
|
||||
* gives time the format edif wants
|
||||
* $Log: time.c,v $
|
||||
* Revision 1.4 2006/03/29 17:10:36 xtof
|
||||
* * gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
*
|
||||
* * ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
* by alliance.m4 -> must be added explicitely in each
|
||||
* Makefile.am
|
||||
*
|
||||
* * remove configure.in (generated by autostuff)
|
||||
*
|
||||
* Revision 1.3 2002/09/30 16:20:54 czo
|
||||
* support/users
|
||||
*
|
||||
|
@ -34,6 +43,8 @@
|
|||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
char *EdifTime()
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ident "$Author: alliance $ $Date: 2005/04/15 08:38:50 $ $Revision: 1.4 $"
|
||||
#ident "$Author: xtof $ $Date: 2006/03/29 17:10:37 $ $Revision: 1.5 $"
|
||||
|
||||
/*******************************************************************************
|
||||
* *
|
||||
|
@ -173,8 +173,8 @@ char mode;
|
|||
if( SPI_VERBOSE )
|
||||
{
|
||||
printf( "Parser Spice compile le %s a %s\n", __DATE__, __TIME__ );
|
||||
printf( "Revision : %s\n", "$Revision: 1.4 $" );
|
||||
printf( "Date : %s\n", "$Date: 2005/04/15 08:38:50 $" );
|
||||
printf( "Revision : %s\n", "$Revision: 1.5 $" );
|
||||
printf( "Date : %s\n", "$Date: 2006/03/29 17:10:37 $" );
|
||||
|
||||
printf( "Separateur : '%c'\n", SPI_SEPAR );
|
||||
printf( "Nom de noeud : %s\n", SPI_NETNAME );
|
||||
|
@ -1974,11 +1974,9 @@ char mode;
|
|||
ptnodename = getptype( scanlocon->USER, PNODENAME );
|
||||
|
||||
if( ptnoeud->NOM )
|
||||
((chain_list*)(ptnodename->DATA)) =
|
||||
addchain( ((chain_list*)(ptnodename->DATA)), namealloc( ptnoeud->NOM ) );
|
||||
ptnodename->DATA = addchain( ((chain_list*)(ptnodename->DATA)), namealloc( ptnoeud->NOM ) );
|
||||
else
|
||||
((chain_list*)(ptnodename->DATA)) =
|
||||
addchain( ((chain_list*)(ptnodename->DATA)), NULL );
|
||||
ptnodename->DATA = addchain( ((chain_list*)(ptnodename->DATA)), NULL );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1991,15 +1989,14 @@ char mode;
|
|||
|
||||
for( scanlocon = ptfig->LOCON ; scanlocon ; scanlocon = scanlocon->NEXT )
|
||||
{
|
||||
(chain_list*)scanlocon->PNODE = reverse( (chain_list*)scanlocon->PNODE );
|
||||
scanlocon->PNODE = reverse( (chain_list*)scanlocon->PNODE );
|
||||
|
||||
ptnodename = getptype( scanlocon->USER, PNODENAME );
|
||||
for( sc1 = (chain_list*)( ptnodename->DATA ) ; sc1 ; sc1 = sc1->NEXT )
|
||||
if( sc1->DATA )
|
||||
break;
|
||||
if( sc1 )
|
||||
((chain_list*)(ptnodename->DATA)) =
|
||||
reverse( ((chain_list*)(ptnodename->DATA)) );
|
||||
ptnodename->DATA = reverse( ((chain_list*)(ptnodename->DATA)) );
|
||||
else
|
||||
{
|
||||
freechain( (chain_list*)ptnodename->DATA );
|
||||
|
@ -2007,7 +2004,7 @@ char mode;
|
|||
}
|
||||
}
|
||||
|
||||
(chain_list*)ptfig->LOCON = reverse( (chain_list*)ptfig->LOCON );
|
||||
ptfig->LOCON = reverse( (chain_list*)ptfig->LOCON );
|
||||
|
||||
/* On cree les transistors */
|
||||
|
||||
|
@ -2194,8 +2191,7 @@ char mode;
|
|||
|
||||
sc3 = (chain_list*)sc2->DATA;
|
||||
for( ; sc3 ; sc3 = sc3->NEXT )
|
||||
((chain_list*)(ptnodename->DATA)) = addchain(
|
||||
((chain_list*)(ptnodename->DATA)),
|
||||
ptnodename->DATA = addchain(((chain_list*)(ptnodename->DATA)),
|
||||
sc3->DATA
|
||||
);
|
||||
|
||||
|
|
|
@ -5,8 +5,9 @@
|
|||
author : D.HOMMAIS
|
||||
content : basic functions for logen structure use
|
||||
*/
|
||||
#ident "$Id: gen_generic.c,v 1.1 2002/04/26 09:51:07 ludo Exp $"
|
||||
#ident "$Id: gen_generic.c,v 1.2 2006/03/29 17:10:38 xtof Exp $"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <mut.h>
|
||||
#include "gen_generic.h"
|
||||
|
||||
|
|
|
@ -7,8 +7,9 @@
|
|||
/* functions : vhdlsavelofig() */
|
||||
/* */
|
||||
/* ###--------------------------------------------------------------### */
|
||||
#ident "$Id: mvl_drive.c,v 1.1 2002/04/26 09:51:07 ludo Exp $"
|
||||
#ident "$Id: mvl_drive.c,v 1.2 2006/03/29 17:10:38 xtof Exp $"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
|
|
|
@ -1143,8 +1143,7 @@ generic_element_association
|
|||
: .generic_choices.
|
||||
generic_expression
|
||||
{
|
||||
((logen_list *)MVL_GENLST->DATA)
|
||||
= duplogen (&MVL_LOGEN,
|
||||
MVL_GENLST->DATA = duplogen (&MVL_LOGEN,
|
||||
((logen_list *)MVL_GENLST->DATA), NULL);
|
||||
MVL_LOGEN.TYPE = GENTYPE_EMPTY;
|
||||
}
|
||||
|
|
|
@ -10,8 +10,17 @@
|
|||
/* ###--------------------------------------------------------------------### */
|
||||
/*
|
||||
* $Log: vel_o.c,v $
|
||||
* Revision 1.1 2002/04/26 09:51:07 ludo
|
||||
* Initial revision
|
||||
* Revision 1.2 2006/03/29 17:10:39 xtof
|
||||
* * gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
*
|
||||
* * ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
* by alliance.m4 -> must be added explicitely in each
|
||||
* Makefile.am
|
||||
*
|
||||
* * remove configure.in (generated by autostuff)
|
||||
*
|
||||
* Revision 1.1.1.1 2002/04/26 09:51:07 ludo
|
||||
* Mise a plat de mbkvhdlg
|
||||
*
|
||||
* Revision 1.1.1.1 2002/04/11 08:54:53 fred
|
||||
* Importing mbkvhdlg into the new Alliance CVS tree
|
||||
|
@ -39,10 +48,11 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ident "$Id: vel_o.c,v 1.1 2002/04/26 09:51:07 ludo Exp $"
|
||||
#ident "$Id: vel_o.c,v 1.2 2006/03/29 17:10:39 xtof Exp $"
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <mut.h>
|
||||
#include <mlo.h>
|
||||
|
|
|
@ -41,6 +41,15 @@
|
|||
* date : 12/06/1998 *
|
||||
* *
|
||||
* $Log: parse_vti_l.c,v $
|
||||
* Revision 1.4 2006/03/29 17:10:46 xtof
|
||||
* * gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
*
|
||||
* * ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
* by alliance.m4 -> must be added explicitely in each
|
||||
* Makefile.am
|
||||
*
|
||||
* * remove configure.in (generated by autostuff)
|
||||
*
|
||||
* Revision 1.3 2002/09/30 16:21:00 czo
|
||||
* support/users
|
||||
*
|
||||
|
@ -966,7 +975,7 @@ losig_list *sigct1,*sigct2;
|
|||
break;
|
||||
}
|
||||
if( !scan_sigalias ) {
|
||||
(chain_list*)(scan_head_sigalias->DATA) = addchain( (chain_list*)(scan_head_sigalias->DATA), sig2);
|
||||
scan_head_sigalias->DATA = addchain( (chain_list*)(scan_head_sigalias->DATA), sig2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1235,7 +1244,7 @@ int index;
|
|||
scanx->NEXT = headx;
|
||||
scanx->rcn = 0;
|
||||
headx = scanx;
|
||||
(struct hns_X*)(ptl->DATA) = headx;
|
||||
ptl->DATA = headx;
|
||||
}
|
||||
|
||||
return(scanx);
|
||||
|
@ -1268,7 +1277,7 @@ loins_list *ptins;
|
|||
scani->ins = ptins;
|
||||
scani->rcn = 0;
|
||||
headi = scani;
|
||||
(struct hns_I*)(ptl->DATA) = headi;
|
||||
ptl->DATA = headi;
|
||||
}
|
||||
|
||||
return(scani);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
bin_PROGRAMS = moka
|
||||
|
||||
AM_CFLAGS = @ALLIANCE_CFLAGS@ -Wall \
|
||||
AM_CFLAGS = -Wall \
|
||||
-I$(top_srcdir)/abe/src \
|
||||
-I$(top_srcdir)/abl/src \
|
||||
-I$(top_srcdir)/abv/src \
|
||||
|
@ -15,7 +15,8 @@ AM_CFLAGS = @ALLIANCE_CFLAGS@ -Wall \
|
|||
-I$(top_srcdir)/ftl/src \
|
||||
-I$(top_srcdir)/mbk/src \
|
||||
-I$(top_srcdir)/fvh/src \
|
||||
-I$(top_srcdir)/vex/src
|
||||
-I$(top_srcdir)/vex/src \
|
||||
@ALLIANCE_CFLAGS@
|
||||
|
||||
moka_LDADD = @ALLIANCE_LIBS@ \
|
||||
-L$(top_srcdir)/abe/src \
|
||||
|
|
|
@ -639,7 +639,7 @@ static void MochaSyfSynthOut2Abl( FsmFigure )
|
|||
** Out(i) = OR Locout(j) -> Out(i) = Locout(j)
|
||||
*/
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
ScanMochaSyfOut->ABL = Atom;
|
||||
}
|
||||
|
@ -757,7 +757,7 @@ static void MochaSyfSynthReg2Abl( FsmFigure )
|
|||
** Reg(i) = OR E(j) -> Reg(i) = E(j)
|
||||
*/
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
RegArray[ Index ].ABL = Atom;
|
||||
}
|
||||
|
@ -813,7 +813,7 @@ static void MochaSyfSynthReg2Abl( FsmFigure )
|
|||
if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
|
||||
{
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
RegArray[ Index ].ABL_SET = Atom;
|
||||
}
|
||||
|
@ -829,7 +829,7 @@ static void MochaSyfSynthReg2Abl( FsmFigure )
|
|||
if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
|
||||
{
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
RegArray[ Index ].ABL_RESET = Atom;
|
||||
}
|
||||
|
@ -1579,7 +1579,7 @@ void MochaSyfFreeFsm( FsmFigure )
|
|||
ScanOut != (fsmout_list *)0;
|
||||
ScanOut = ScanOut->NEXT )
|
||||
{
|
||||
MOCHA_SYF_OUT( ScanOut ) = NULL;
|
||||
MOCHA_SYF_OUT_L( ScanOut ) = NULL;
|
||||
}
|
||||
|
||||
for ( ScanState = ScanFigure->STATE;
|
||||
|
@ -1588,7 +1588,7 @@ void MochaSyfFreeFsm( FsmFigure )
|
|||
{
|
||||
ScanMochaSyfState = MOCHA_SYF_STATE( ScanState );
|
||||
autfreeblock( (void *)ScanMochaSyfState );
|
||||
MOCHA_SYF_STATE( ScanState ) = NULL;
|
||||
MOCHA_SYF_STATE_L( ScanState ) = NULL;
|
||||
}
|
||||
|
||||
autfreeblock( ScanMochaSyfInfo->REG_ARRAY );
|
||||
|
@ -1596,7 +1596,7 @@ void MochaSyfFreeFsm( FsmFigure )
|
|||
autfreeblock( ScanMochaSyfInfo->CODE_ARRAY );
|
||||
|
||||
autfreeblock( ScanMochaSyfInfo );
|
||||
MOCHA_SYF_INFO( ScanFigure ) = NULL;
|
||||
MOCHA_SYF_INFO_L( ScanFigure ) = NULL;
|
||||
|
||||
if ( IsFsmFigMulti( FsmFigure ) )
|
||||
{
|
||||
|
|
|
@ -52,9 +52,12 @@
|
|||
| |
|
||||
\------------------------------------------------------------*/
|
||||
|
||||
# define MOCHA_SYF_INFO( Figure ) ( (mochasyfinfo *)( ( Figure )->USER ) )
|
||||
# define MOCHA_SYF_STATE( State ) ( (mochasyfstate *)( ( State )->USER ) )
|
||||
# define MOCHA_SYF_OUT( Out ) ( (mochasyfout *)( ( Out )->USER ) )
|
||||
# define MOCHA_SYF_INFO( Figure ) ( (mochasyfinfo *)( ( Figure )->USER ) )
|
||||
# define MOCHA_SYF_INFO_L( Figure ) ( ( Figure )->USER )
|
||||
# define MOCHA_SYF_STATE( State ) ( (mochasyfstate *)( ( State )->USER ) )
|
||||
# define MOCHA_SYF_STATE_L( State ) ( ( State )->USER )
|
||||
# define MOCHA_SYF_OUT( Out ) ( (mochasyfout *)( ( Out )->USER ) )
|
||||
# define MOCHA_SYF_OUT_L( Out ) ( ( Out )->USER )
|
||||
|
||||
/*------------------------------------------------------------\
|
||||
| |
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
# include <aut.h>
|
||||
# include <beh.h>
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h>
|
||||
|
||||
|
||||
# define _ALU2_ 0
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
/*
|
||||
### -------------------------------------------------- ###
|
||||
$Author: hcl $
|
||||
$Date: 2002/06/27 09:09:01 $
|
||||
$Author: xtof $
|
||||
$Date: 2006/03/29 17:10:51 $
|
||||
$Log: findNPointsPath.c,v $
|
||||
Revision 1.6 2006/03/29 17:10:51 xtof
|
||||
* gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
|
||||
* ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
by alliance.m4 -> must be added explicitely in each
|
||||
Makefile.am
|
||||
|
||||
* remove configure.in (generated by autostuff)
|
||||
|
||||
Revision 1.5 2002/06/27 09:09:01 hcl
|
||||
Code d'erreur si tous les signaux ne sont pas routés.
|
||||
|
||||
|
@ -95,7 +104,7 @@
|
|||
#include "ocrAstar.h"
|
||||
|
||||
static char *res_id =
|
||||
"$Id: findNPointsPath.c,v 1.5 2002/06/27 09:09:01 hcl Exp $";
|
||||
"$Id: findNPointsPath.c,v 1.6 2006/03/29 17:10:51 xtof Exp $";
|
||||
|
||||
#define MAX_HT 500
|
||||
|
||||
|
@ -557,7 +566,7 @@ makeExtEquipotentielle(ocrRoutingParameters * i_pParam,
|
|||
l_pVirCon = createVirtualConnector(i, 0, 0, 0, SOUTH);
|
||||
|
||||
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
|
||||
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirConList = l_pVirCon;
|
||||
}
|
||||
// FIXME : pas de free ???
|
||||
|
@ -587,7 +596,7 @@ makeExtEquipotentielle(ocrRoutingParameters * i_pParam,
|
|||
0, 0, NORTH);
|
||||
|
||||
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
|
||||
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirConList = l_pVirCon;
|
||||
}
|
||||
}
|
||||
|
@ -609,7 +618,7 @@ makeExtEquipotentielle(ocrRoutingParameters * i_pParam,
|
|||
l_pVirCon = createVirtualConnector((i_pGrid->SIZE_H - 1),
|
||||
i, 0, 0, EAST);
|
||||
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
|
||||
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirConList = l_pVirCon;
|
||||
}
|
||||
}
|
||||
|
@ -630,7 +639,7 @@ makeExtEquipotentielle(ocrRoutingParameters * i_pParam,
|
|||
for (i = l_uOffset; i < i_pGrid->SIZE_V - l_uOffset; i += l_uDelta) {
|
||||
l_pVirCon = createVirtualConnector(0, i, 0, 0, WEST);
|
||||
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
|
||||
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirCon->NEXT = l_pVirConList;
|
||||
l_pVirConList = l_pVirCon;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
/*
|
||||
### -------------------------------------------------- ###
|
||||
$Author: ludo $
|
||||
$Date: 2004/05/23 09:50:42 $
|
||||
$Author: xtof $
|
||||
$Date: 2006/03/29 17:10:51 $
|
||||
$Log: ocrRouter.c,v $
|
||||
Revision 1.9 2006/03/29 17:10:51 xtof
|
||||
* gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
|
||||
* ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
by alliance.m4 -> must be added explicitely in each
|
||||
Makefile.am
|
||||
|
||||
* remove configure.in (generated by autostuff)
|
||||
|
||||
Revision 1.8 2004/05/23 09:50:42 ludo
|
||||
- Bug fix: Segmentation fault when the input netlist has unconnected signals
|
||||
Those unused nets are now removed from the input lofig after the flatten.
|
||||
|
@ -257,6 +266,90 @@ void noCritVC(ocrRoutingDataBase * i_pDataBase)
|
|||
return;
|
||||
}
|
||||
|
||||
/* On rippe plus de signaux */
|
||||
void
|
||||
ripUp2(ocrRoutingDataBase * i_pDataBase,
|
||||
ocrRoutingParameters * i_pParam, ocrSignal * i_pSignal)
|
||||
{
|
||||
ocrConnector *l_pCon;
|
||||
ocrVirtualConnector *l_pVirCon;
|
||||
ocrSignal *l_pSignal;
|
||||
|
||||
for (l_pCon = i_pSignal->CON_LIST; l_pCon; l_pCon = l_pCon->NEXT) {
|
||||
// parcours des connecteurs virtuels
|
||||
for (l_pVirCon = l_pCon->VIR_CON_LIST;
|
||||
l_pVirCon;
|
||||
l_pVirCon = (ocrVirtualConnector *) l_pVirCon->NEXT) {
|
||||
//printf ("(%ld,%ld,%ld)\n", l_pVirCon->X, l_pVirCon->Y, l_pVirCon->Z);
|
||||
// altitude du connecteur
|
||||
if (l_pVirCon->Z == 0) {
|
||||
// on déroute sur les 2 niveaux au dessus (ALU2 et ALU3)
|
||||
|
||||
// ALU2
|
||||
l_pSignal = findSignal(i_pDataBase,
|
||||
getWSegmentCV(i_pDataBase->GRID,
|
||||
l_pVirCon)->
|
||||
SIGNAL_INDEX);
|
||||
if (l_pSignal)
|
||||
if ( (l_pSignal != i_pSignal) && (!(l_pSignal->HARD)) ) {
|
||||
// ajoute le signal dans la liste à re-router.
|
||||
i_pDataBase->RIPUP = addchain(i_pDataBase->RIPUP,
|
||||
(void *) l_pSignal);
|
||||
|
||||
|
||||
//fprintf (stdout, "RIPUP : Suppression du signal (ALU2) %ld \n", l_pSignal->INDEX);
|
||||
deleteEquipotentielle(i_pParam, i_pDataBase->GRID,
|
||||
l_pSignal);
|
||||
l_pSignal->SEGMENT = NULL;
|
||||
l_pSignal->ROUTED = 0;
|
||||
i_pDataBase->NB_ROUTED--;
|
||||
unMarkSegmentAsFree(i_pDataBase, l_pSignal, l_pSignal->INDEX); // XXX
|
||||
}
|
||||
// ALU3
|
||||
l_pSignal = findSignal(i_pDataBase,
|
||||
getWSegment(i_pDataBase->GRID,
|
||||
l_pVirCon->X,
|
||||
l_pVirCon->Y,
|
||||
l_pVirCon->Z +
|
||||
1)->SIGNAL_INDEX);
|
||||
if (l_pSignal)
|
||||
if (l_pSignal != i_pSignal) {
|
||||
// ajoute le signal dans la liste à re-router.
|
||||
i_pDataBase->RIPUP = addchain(i_pDataBase->RIPUP,
|
||||
(void *) l_pSignal);
|
||||
|
||||
|
||||
//fprintf (stdout, "RIPUP : Suppression du signal (ALU3) %ld \n", l_pSignal->INDEX);
|
||||
deleteEquipotentielle(i_pParam, i_pDataBase->GRID,
|
||||
l_pSignal);
|
||||
l_pSignal->SEGMENT = NULL;
|
||||
l_pSignal->ROUTED = 0;
|
||||
i_pDataBase->NB_ROUTED--;
|
||||
unMarkSegmentAsFree(i_pDataBase, l_pSignal, l_pSignal->INDEX); // XXX
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
// altitude du connecteur > 0
|
||||
// premiere version : on ne fait rien.
|
||||
//
|
||||
// future version :
|
||||
// on déroute immédiatement au dessus si possible
|
||||
// et sur chaque côté en suivant la direction du plan.
|
||||
}
|
||||
|
||||
}
|
||||
// supression du signal lui meme
|
||||
}
|
||||
//fprintf (stdout, "RIPUP : Suppression du signal %ld \n", i_pSignal->INDEX);
|
||||
deleteEquipotentielle(i_pParam, i_pDataBase->GRID, i_pSignal);
|
||||
unMarkSegmentAsFree(i_pDataBase, i_pSignal, i_pSignal->INDEX); // XXX
|
||||
i_pSignal->SEGMENT = NULL;
|
||||
i_pSignal->ROUTED = 0;
|
||||
countFreeVC(i_pDataBase);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* route les signaux dans l'ordre :
|
||||
|
@ -444,89 +537,6 @@ ripUp(ocrRoutingDataBase * i_pDataBase,
|
|||
}
|
||||
|
||||
|
||||
/* On rippe plus de signaux */
|
||||
void
|
||||
ripUp2(ocrRoutingDataBase * i_pDataBase,
|
||||
ocrRoutingParameters * i_pParam, ocrSignal * i_pSignal)
|
||||
{
|
||||
ocrConnector *l_pCon;
|
||||
ocrVirtualConnector *l_pVirCon;
|
||||
ocrSignal *l_pSignal;
|
||||
|
||||
for (l_pCon = i_pSignal->CON_LIST; l_pCon; l_pCon = l_pCon->NEXT) {
|
||||
// parcours des connecteurs virtuels
|
||||
for (l_pVirCon = l_pCon->VIR_CON_LIST;
|
||||
l_pVirCon;
|
||||
l_pVirCon = (ocrVirtualConnector *) l_pVirCon->NEXT) {
|
||||
//printf ("(%ld,%ld,%ld)\n", l_pVirCon->X, l_pVirCon->Y, l_pVirCon->Z);
|
||||
// altitude du connecteur
|
||||
if (l_pVirCon->Z == 0) {
|
||||
// on déroute sur les 2 niveaux au dessus (ALU2 et ALU3)
|
||||
|
||||
// ALU2
|
||||
l_pSignal = findSignal(i_pDataBase,
|
||||
getWSegmentCV(i_pDataBase->GRID,
|
||||
l_pVirCon)->
|
||||
SIGNAL_INDEX);
|
||||
if (l_pSignal)
|
||||
if ( (l_pSignal != i_pSignal) && (!(l_pSignal->HARD)) ) {
|
||||
// ajoute le signal dans la liste à re-router.
|
||||
i_pDataBase->RIPUP = addchain(i_pDataBase->RIPUP,
|
||||
(void *) l_pSignal);
|
||||
|
||||
|
||||
//fprintf (stdout, "RIPUP : Suppression du signal (ALU2) %ld \n", l_pSignal->INDEX);
|
||||
deleteEquipotentielle(i_pParam, i_pDataBase->GRID,
|
||||
l_pSignal);
|
||||
l_pSignal->SEGMENT = NULL;
|
||||
l_pSignal->ROUTED = 0;
|
||||
i_pDataBase->NB_ROUTED--;
|
||||
unMarkSegmentAsFree(i_pDataBase, l_pSignal, l_pSignal->INDEX); // XXX
|
||||
}
|
||||
// ALU3
|
||||
l_pSignal = findSignal(i_pDataBase,
|
||||
getWSegment(i_pDataBase->GRID,
|
||||
l_pVirCon->X,
|
||||
l_pVirCon->Y,
|
||||
l_pVirCon->Z +
|
||||
1)->SIGNAL_INDEX);
|
||||
if (l_pSignal)
|
||||
if (l_pSignal != i_pSignal) {
|
||||
// ajoute le signal dans la liste à re-router.
|
||||
i_pDataBase->RIPUP = addchain(i_pDataBase->RIPUP,
|
||||
(void *) l_pSignal);
|
||||
|
||||
|
||||
//fprintf (stdout, "RIPUP : Suppression du signal (ALU3) %ld \n", l_pSignal->INDEX);
|
||||
deleteEquipotentielle(i_pParam, i_pDataBase->GRID,
|
||||
l_pSignal);
|
||||
l_pSignal->SEGMENT = NULL;
|
||||
l_pSignal->ROUTED = 0;
|
||||
i_pDataBase->NB_ROUTED--;
|
||||
unMarkSegmentAsFree(i_pDataBase, l_pSignal, l_pSignal->INDEX); // XXX
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
// altitude du connecteur > 0
|
||||
// premiere version : on ne fait rien.
|
||||
//
|
||||
// future version :
|
||||
// on déroute immédiatement au dessus si possible
|
||||
// et sur chaque côté en suivant la direction du plan.
|
||||
}
|
||||
|
||||
}
|
||||
// supression du signal lui meme
|
||||
}
|
||||
//fprintf (stdout, "RIPUP : Suppression du signal %ld \n", i_pSignal->INDEX);
|
||||
deleteEquipotentielle(i_pParam, i_pDataBase->GRID, i_pSignal);
|
||||
unMarkSegmentAsFree(i_pDataBase, i_pSignal, i_pSignal->INDEX); // XXX
|
||||
i_pSignal->SEGMENT = NULL;
|
||||
i_pSignal->ROUTED = 0;
|
||||
countFreeVC(i_pDataBase);
|
||||
}
|
||||
|
||||
/* ripUp plus subtil */
|
||||
void
|
||||
ripUp3(ocrRoutingDataBase * i_pDataBase,
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
/*
|
||||
### -------------------------------------------------- ###
|
||||
$Author: hcl $
|
||||
$Date: 2002/04/25 13:41:33 $
|
||||
$Author: xtof $
|
||||
$Date: 2006/03/29 17:10:55 $
|
||||
$Log: ocrWPlaneLabeling.c,v $
|
||||
Revision 1.3 2006/03/29 17:10:55 xtof
|
||||
* gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
|
||||
* ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
by alliance.m4 -> must be added explicitely in each
|
||||
Makefile.am
|
||||
|
||||
* remove configure.in (generated by autostuff)
|
||||
|
||||
Revision 1.2 2002/04/25 13:41:33 hcl
|
||||
New ripup/reroute loop, bug-kill (CALU&TALU).
|
||||
|
||||
|
@ -62,7 +71,7 @@
|
|||
#define OFFSET(x) ( (ocrNaturalInt) (x)->KEY )
|
||||
|
||||
static char *res_id =
|
||||
"$Id: ocrWPlaneLabeling.c,v 1.2 2002/04/25 13:41:33 hcl Exp $";
|
||||
"$Id: ocrWPlaneLabeling.c,v 1.3 2006/03/29 17:10:55 xtof Exp $";
|
||||
|
||||
typedef struct ocrSubWSegment {
|
||||
ocrWSegment *SEGMENT;
|
||||
|
@ -116,10 +125,10 @@ static inline ocrSubWSegment *createSubWSegment(ocrWSegment * segment,
|
|||
pt = (ocrSubWSegment *) mbkalloc(BUFSIZE * sizeof(ocrSubWSegment));
|
||||
HEAD_OCRSUBWSEGMENT = pt;
|
||||
for (i = 1; i < BUFSIZE; i++) {
|
||||
(ocrSubWSegment *) pt->SEGMENT = pt + 1;
|
||||
pt->SEGMENT = pt + 1;
|
||||
pt++;
|
||||
}
|
||||
(ocrSubWSegment *) pt->SEGMENT = NULL;
|
||||
pt->SEGMENT = NULL;
|
||||
}
|
||||
|
||||
pt = HEAD_OCRSUBWSEGMENT;
|
||||
|
@ -135,7 +144,7 @@ static inline ocrSubWSegment *createSubWSegment(ocrWSegment * segment,
|
|||
static inline void freeSubWSegment(ocrSubWSegment * sub_segment)
|
||||
{
|
||||
|
||||
(ocrSubWSegment *) sub_segment->SEGMENT = HEAD_OCRSUBWSEGMENT;
|
||||
sub_segment->SEGMENT = HEAD_OCRSUBWSEGMENT;
|
||||
HEAD_OCRSUBWSEGMENT = sub_segment;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
/*
|
||||
### -------------------------------------------------- ###
|
||||
$Author: hcl $
|
||||
$Date: 2002/07/16 12:03:55 $
|
||||
$Author: xtof $
|
||||
$Date: 2006/03/29 17:10:56 $
|
||||
$Log: ocrWRoutingUtil.c,v $
|
||||
Revision 1.8 2006/03/29 17:10:56 xtof
|
||||
* gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
|
||||
* ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
by alliance.m4 -> must be added explicitely in each
|
||||
Makefile.am
|
||||
|
||||
* remove configure.in (generated by autostuff)
|
||||
|
||||
Revision 1.7 2002/07/16 12:03:55 hcl
|
||||
bug...
|
||||
|
||||
|
@ -776,10 +785,10 @@ ocrWSegment *createWSegment(ocrNaturalInt offset,
|
|||
pt = (ocrWSegment *) mbkalloc(BUFSIZE * sizeof(ocrWSegment));
|
||||
HEAD_OCRWSEGMENT = pt;
|
||||
for (i = 1; i < BUFSIZE; i++) {
|
||||
(ocrWSegment *) pt->LABELS_LEFT_TOP = pt + 1;
|
||||
pt->LABELS_LEFT_TOP = pt + 1;
|
||||
pt++;
|
||||
}
|
||||
(ocrWSegment *) pt->LABELS_LEFT_TOP = NULL;
|
||||
pt->LABELS_LEFT_TOP = NULL;
|
||||
}
|
||||
|
||||
pt = HEAD_OCRWSEGMENT;
|
||||
|
@ -812,7 +821,7 @@ ocrWSegment *createWSegment(ocrNaturalInt offset,
|
|||
void freeWSegment(ocrWSegment * segment)
|
||||
{
|
||||
|
||||
(ocrWSegment *) segment->LABELS_LEFT_TOP = HEAD_OCRWSEGMENT;
|
||||
segment->LABELS_LEFT_TOP = HEAD_OCRWSEGMENT;
|
||||
HEAD_OCRWSEGMENT = segment;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
/*
|
||||
### -------------------------------------------------- ###
|
||||
$Author: hcl $
|
||||
$Date: 2002/04/25 13:41:34 $
|
||||
$Author: xtof $
|
||||
$Date: 2006/03/29 17:10:57 $
|
||||
$Log: ocrConnectorUtil.c,v $
|
||||
Revision 1.4 2006/03/29 17:10:57 xtof
|
||||
* gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
|
||||
* ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
by alliance.m4 -> must be added explicitely in each
|
||||
Makefile.am
|
||||
|
||||
* remove configure.in (generated by autostuff)
|
||||
|
||||
Revision 1.3 2002/04/25 13:41:34 hcl
|
||||
New ripup/reroute loop, bug-kill (CALU&TALU).
|
||||
|
||||
|
@ -150,6 +159,7 @@ void countFreeVC(ocrRoutingDataBase * i_pDataBase)
|
|||
l_pCon->critVC = NULL;
|
||||
}
|
||||
fin_lpcon:
|
||||
;
|
||||
}
|
||||
}
|
||||
// maj con->NB_VC
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
/*
|
||||
### -------------------------------------------------- ###
|
||||
$Author: hcl $
|
||||
$Date: 2002/04/25 13:41:34 $
|
||||
$Author: xtof $
|
||||
$Date: 2006/03/29 17:10:57 $
|
||||
$Log: ocrDataBaseUtil.c,v $
|
||||
Revision 1.3 2006/03/29 17:10:57 xtof
|
||||
* gcc4 compatible : no cast like (Foo*)bar=foo; use bar=(Bar*)foo;
|
||||
|
||||
* ALLIANCE_CFLAGS not added anymore to CFLAGS or CXXFLAGS
|
||||
by alliance.m4 -> must be added explicitely in each
|
||||
Makefile.am
|
||||
|
||||
* remove configure.in (generated by autostuff)
|
||||
|
||||
Revision 1.2 2002/04/25 13:41:34 hcl
|
||||
New ripup/reroute loop, bug-kill (CALU&TALU).
|
||||
|
||||
|
@ -44,7 +53,7 @@
|
|||
#include "display.h"
|
||||
|
||||
static char *res_id =
|
||||
"$Id: ocrDataBaseUtil.c,v 1.2 2002/04/25 13:41:34 hcl Exp $";
|
||||
"$Id: ocrDataBaseUtil.c,v 1.3 2006/03/29 17:10:57 xtof Exp $";
|
||||
extern ocrOption *g_pOption;
|
||||
#define LEVEL (g_pOption->LEVEL)
|
||||
|
||||
|
@ -492,7 +501,7 @@ void
|
|||
addVirtualConnector(ocrVirtualConnector ** i_pVirConList,
|
||||
ocrVirtualConnector * i_pVirCon)
|
||||
{
|
||||
(ocrVirtualConnector *) i_pVirCon->NEXT = *i_pVirConList;
|
||||
i_pVirCon->NEXT = *i_pVirConList;
|
||||
*i_pVirConList = i_pVirCon;
|
||||
|
||||
}
|
||||
|
|
|
@ -119,7 +119,7 @@ static char* unbuf_papat(char* head, struct papat *ppapat)
|
|||
|
||||
if ( !paiol || ( paiol->MODE!='O' && paiol->MODE!='T' ) )
|
||||
{
|
||||
fprintf(stderr, __FUNCTION__": Output with index %d not found\n",index);
|
||||
fprintf(stderr, "%s : Output with index %d not found\n", __FUNCTION__,index);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
/*## E-mail : cao-vlsi@masi.ibp.fr ##*/
|
||||
/*## ##*/
|
||||
/*####==============================================================####*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <errno.h>
|
||||
|
@ -225,7 +225,7 @@ static void checkLPT()
|
|||
|
||||
if (fd <= 0 )
|
||||
{
|
||||
fprintf(stderr, __FUNCTION__ ": Device is not opened\n");
|
||||
fprintf(stderr, "%s : %s", __FUNCTION__, "Device is not opened\n");
|
||||
exit(LPSCAN_ERROR);
|
||||
}
|
||||
|
||||
|
@ -280,7 +280,7 @@ extern int check_mode( )
|
|||
|
||||
if ( !InfosVbe )
|
||||
{
|
||||
fprintf(stderr, __FUNCTION__ "No info file\n");
|
||||
fprintf(stderr,"%s %s" ,__FUNCTION__ , "No info file\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -504,7 +504,7 @@ extern int write_read_port( char* buf, unsigned int size)
|
|||
{
|
||||
if (!fd)
|
||||
{
|
||||
fprintf(stderr,__FUNCTION__": device not opened\n");
|
||||
fprintf(stderr, "%s : %s", __FUNCTION__, "device not opened\n");
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
|
|
|
@ -481,7 +481,7 @@ static char ValeurData(int valeur, int inversion)
|
|||
case '*': return '*';
|
||||
}
|
||||
|
||||
fprintf(stderr,__FUNCTION__": Sign '%c' unknown\n",valeur);
|
||||
fprintf(stderr, "%s : %s%c%s", __FUNCTION__, "Sign '", valeur, "' unknown\n");
|
||||
exit( 1 );
|
||||
return 0;
|
||||
}
|
||||
|
@ -657,7 +657,7 @@ static void InitData(struct paseq *pat)
|
|||
|
||||
if ( !ppaiol )
|
||||
{
|
||||
fprintf(stderr, __FUNCTION__ ": entry '%s' not found\n", pcel->NAME);
|
||||
fprintf(stderr, "%s : %s%c%s", __FUNCTION__, "entry '", pcel->NAME, "' not found\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -71,10 +71,10 @@ static void resize_layer (model, layer_num)
|
|||
|
||||
for (rectp = model->LAYERTAB[layer_num]; rectp; rectp = rectp->NEXT)
|
||||
{
|
||||
(long) rectp->X -= qty;
|
||||
(long) rectp->Y -= qty;
|
||||
(long) rectp->DX += 2 * qty;
|
||||
(long) rectp->DY += 2 * qty;
|
||||
rectp->X -= qty;
|
||||
rectp->Y -= qty;
|
||||
rectp->DX += 2 * qty;
|
||||
rectp->DY += 2 * qty;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,10 +94,10 @@ static void inv_resize_layer (model, layer_num)
|
|||
|
||||
for (rectp = model->LAYERTAB[layer_num]; rectp; rectp = rectp->NEXT)
|
||||
{
|
||||
(long) rectp->X += qty;
|
||||
(long) rectp->Y += qty;
|
||||
(long) rectp->DX -= 2 * qty;
|
||||
(long) rectp->DY -= 2 * qty;
|
||||
rectp->X += qty;
|
||||
rectp->Y += qty;
|
||||
rectp->DX -= 2 * qty;
|
||||
rectp->DY -= 2 * qty;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,14 +2,15 @@
|
|||
|
||||
bin_PROGRAMS = syf
|
||||
|
||||
AM_CFLAGS = @ALLIANCE_CFLAGS@ \
|
||||
AM_CFLAGS = \
|
||||
-I$(top_srcdir)/abl/src \
|
||||
-I$(top_srcdir)/aut/src \
|
||||
-I$(top_srcdir)/bdd/src \
|
||||
-I$(top_srcdir)/fsm/src \
|
||||
-I$(top_srcdir)/ftl/src \
|
||||
-I$(top_srcdir)/fvh/src \
|
||||
-I$(top_srcdir)/mbk/src
|
||||
-I$(top_srcdir)/mbk/src \
|
||||
@ALLIANCE_CFLAGS@
|
||||
|
||||
syf_LDADD = @ALLIANCE_LIBS@ \
|
||||
-L$(top_srcdir)/abl/src \
|
||||
|
|
|
@ -101,7 +101,7 @@ static void SyfRemoveStable( Expr )
|
|||
freechain( ABL_CAR( Expr ) );
|
||||
|
||||
ABL_CDR( Expr ) = (ablexpr *)0;
|
||||
ABL_ATOM_VALUE( Expr ) = getablatomzero();
|
||||
ABL_CAR_L( Expr ) = getablatomzero();
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@ void SyfSynthReturn2Abl( FsmFigure )
|
|||
( ABL_CDDR( Equation ) == (ablexpr *)0 ) )
|
||||
{
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
ReturnSyfState->ABL_RETURN = Atom;
|
||||
}
|
||||
|
@ -299,7 +299,7 @@ void SyfSynthStack2Abl( FsmFigure )
|
|||
if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
|
||||
{
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
StackArray[ ScanBit ].ABL = Atom;
|
||||
}
|
||||
|
@ -594,7 +594,7 @@ void SyfSynthCtrl2Abl( FsmFigure )
|
|||
if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
|
||||
{
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
CtrlArray[ Index ].ABL = Atom;
|
||||
}
|
||||
|
@ -804,7 +804,7 @@ void SyfSynthOut2Abl( FsmFigure )
|
|||
** Out(i) = OR Locout(j) -> Out(i) = Locout(j)
|
||||
*/
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
ScanSyfOut->ABL = Atom;
|
||||
}
|
||||
|
@ -1007,7 +1007,7 @@ void SyfSynthReg2Abl( FsmFigure )
|
|||
** Reg(i) = OR E(j) -> Reg(i) = E(j)
|
||||
*/
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
RegArray[ Index ].ABL = Atom;
|
||||
}
|
||||
|
@ -1093,7 +1093,7 @@ void SyfSynthReg2Abl( FsmFigure )
|
|||
if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
|
||||
{
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
RegArray[ Index ].ABL_SET = Atom;
|
||||
}
|
||||
|
@ -1109,7 +1109,7 @@ void SyfSynthReg2Abl( FsmFigure )
|
|||
if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
|
||||
{
|
||||
Atom = ABL_CADR( Equation );
|
||||
ABL_CADR( Equation ) = (ablexpr *)0;
|
||||
ABL_CADR_L( Equation ) = (ablexpr *)0;
|
||||
freeablexpr( Equation );
|
||||
RegArray[ Index ].ABL_RESET = Atom;
|
||||
}
|
||||
|
|
|
@ -443,6 +443,7 @@
|
|||
# define SetVexAtomValue( N, A ) ( (N)->VALUE = (void *)(A) )
|
||||
|
||||
# define GetVexOperand( C ) ( (vexexpr *)(C)->DATA )
|
||||
# define GetVexOperandL( C ) ( (C)->DATA )
|
||||
# define SetVexOperand( C, O ) ( (C)->DATA = (void *)(O) )
|
||||
|
||||
/*------------------------------------------------------\
|
||||
|
|
|
@ -1098,7 +1098,7 @@ static void VvhVbhTreatCase( ScanCase )
|
|||
if ( VexGuard->OPERAND->NEXT == (chain_list *)0 )
|
||||
{
|
||||
VexAtom = GetVexOperand( VexGuard->OPERAND );
|
||||
GetVexOperand( VexGuard->OPERAND ) = (vexexpr *)0;
|
||||
GetVexOperandL( VexGuard->OPERAND ) = (vexexpr *)0;
|
||||
freevexexpr( VexGuard );
|
||||
VexGuard = VexAtom;
|
||||
}
|
||||
|
@ -1111,7 +1111,7 @@ static void VvhVbhTreatCase( ScanCase )
|
|||
if ( VexGuard->OPERAND->NEXT == (chain_list *)0 )
|
||||
{
|
||||
VexAtom = GetVexOperand( VexGuard->OPERAND );
|
||||
GetVexOperand( VexGuard->OPERAND ) = (vexexpr *)0;
|
||||
GetVexOperandL( VexGuard->OPERAND ) = (vexexpr *)0;
|
||||
freevexexpr( VexGuard );
|
||||
VexGuard = VexAtom;
|
||||
}
|
||||
|
@ -1158,7 +1158,7 @@ static void VvhVbhTreatCase( ScanCase )
|
|||
if ( VexGuard->OPERAND->NEXT == (chain_list *)0 )
|
||||
{
|
||||
VexAtom = GetVexOperand( VexGuard->OPERAND );
|
||||
GetVexOperand( VexGuard->OPERAND ) = (vexexpr *)0;
|
||||
GetVexOperandL( VexGuard->OPERAND ) = (vexexpr *)0;
|
||||
freevexexpr( VexGuard );
|
||||
VexGuard = VexAtom;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue