* 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:
Christophe Alexandre 2006-03-29 17:11:09 +00:00
parent 3c20c0416a
commit 1b519c1142
76 changed files with 509 additions and 1426 deletions

View File

@ -128,11 +128,14 @@ extern "C" {
# define ABL_CDR( E ) ( ( E )->NEXT ) # define ABL_CDR( E ) ( ( E )->NEXT )
# define ABL_CAR( E ) ( (ablexpr *)( E )->DATA ) # 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( 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_CDDR( E ) ( ABL_CDR( ABL_CDR( ( E ) ) ) )
# define ABL_ATOM( E ) ( ( E )->NEXT == (ablexpr *)0 ) # define ABL_ATOM( E ) ( ( E )->NEXT == (ablexpr *)0 )
# define ABL_ATOM_VALUE( E ) ( (char *)( ( E )->DATA ) ) # define ABL_ATOM_VALUE( E ) ( (char *)( ( E )->DATA ) )
# define ABL_OPER( E ) ( (long)( ( ABL_CAR( ( 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) ) ) # define SET_ABL_OPER( E,O ) ( ( ABL_CAR( (E) )->DATA = (void *)(O) ) )
/*------------------------------------------------------\ /*------------------------------------------------------\

View File

@ -198,14 +198,14 @@ ablexpr *createablnotexpr( Expr )
if ( AtomValue == ABL_ATOM_NAME_ONE ) 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 ); return( Expr );
} }
else else
if ( AtomValue == ABL_ATOM_NAME_ZERO ) 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 ); return( Expr );
} }

View File

@ -109,8 +109,8 @@ static ablexpr *local_normablctl( Expr )
{ {
NormExpr = local_normablctl( ABL_CADR( Expr ) ); NormExpr = local_normablctl( ABL_CADR( Expr ) );
if ( NormExpr != ABL_CADR( Expr ) ) if ( NormExpr != ABL_CADR( Expr ) )
ABL_CADR( Expr ) = NormExpr; ABL_CADR_L( Expr ) = NormExpr;
ABL_CADR( Expr ) = createablnotexpr( ABL_CADR( Expr ) ); ABL_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
SET_ABL_OPER( Expr, ABL_EX ); SET_ABL_OPER( Expr, ABL_EX );
NormExpr = createablnotexpr( Expr ); NormExpr = createablnotexpr( Expr );
return( NormExpr ); return( NormExpr );
@ -123,7 +123,7 @@ static ablexpr *local_normablctl( Expr )
{ {
NormExpr = local_normablctl( ABL_CADR( Expr ) ); NormExpr = local_normablctl( ABL_CADR( Expr ) );
if ( NormExpr != ABL_CADR( Expr ) ) if ( NormExpr != ABL_CADR( Expr ) )
ABL_CADR( Expr ) = NormExpr; ABL_CADR_L( Expr ) = NormExpr;
ExprTemp = createablatom( ABL_ATOM_NAME_ONE ); ExprTemp = createablatom( ABL_ATOM_NAME_ONE );
NormExpr = createablbinexpr( ABL_EU, NormExpr = createablbinexpr( ABL_EU,
ExprTemp, ExprTemp,
@ -141,8 +141,8 @@ static ablexpr *local_normablctl( Expr )
{ {
NormExpr = local_normablctl( ABL_CADR( Expr ) ); NormExpr = local_normablctl( ABL_CADR( Expr ) );
if ( NormExpr != ABL_CADR( Expr ) ) if ( NormExpr != ABL_CADR( Expr ) )
ABL_CADR( Expr ) = NormExpr; ABL_CADR_L( Expr ) = NormExpr;
ABL_CADR( Expr ) = createablnotexpr( ABL_CADR( Expr ) ); ABL_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
SET_ABL_OPER( Expr, ABL_EG ); SET_ABL_OPER( Expr, ABL_EG );
NormExpr = createablnotexpr( Expr ); NormExpr = createablnotexpr( Expr );
return( NormExpr ); return( NormExpr );
@ -155,8 +155,8 @@ static ablexpr *local_normablctl( Expr )
{ {
NormExpr = local_normablctl( ABL_CADR( Expr ) ); NormExpr = local_normablctl( ABL_CADR( Expr ) );
if ( NormExpr != ABL_CADR( Expr ) ) if ( NormExpr != ABL_CADR( Expr ) )
ABL_CADR( Expr ) = NormExpr; ABL_CADR_L( Expr ) = NormExpr;
ABL_CADR( Expr ) = createablnotexpr( ABL_CADR( Expr ) ); ABL_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
SET_ABL_OPER( Expr, ABL_EF ); SET_ABL_OPER( Expr, ABL_EF );
NormExpr = createablnotexpr( Expr ); NormExpr = createablnotexpr( Expr );
NormExpr = local_normablctl( NormExpr ); NormExpr = local_normablctl( NormExpr );
@ -170,13 +170,13 @@ static ablexpr *local_normablctl( Expr )
{ {
NormExpr = local_normablctl( ABL_CADR( Expr ) ); NormExpr = local_normablctl( ABL_CADR( Expr ) );
if ( NormExpr != 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 ) ) ); NormExpr = local_normablctl( ABL_CAR( ABL_CDDR( Expr ) ) );
if ( NormExpr != 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_CADR_L( Expr ) = createablnotexpr( ABL_CADR( Expr ) );
ABL_CAR( ABL_CDDR( Expr ) ) = createablnotexpr( ABL_CAR( ABL_CDDR( Expr ) ) ); ABL_CAR_L( ABL_CDDR( Expr ) ) = createablnotexpr( ABL_CAR( ABL_CDDR( Expr ) ) );
ExprG1 = dupablexpr( ABL_CAR( ABL_CDDR( Expr ) ) ); ExprG1 = dupablexpr( ABL_CAR( ABL_CDDR( Expr ) ) );
ExprG2 = dupablexpr( ABL_CAR( ABL_CDDR( Expr ) ) ); ExprG2 = dupablexpr( ABL_CAR( ABL_CDDR( Expr ) ) );
ExprTemp = createablbinexpr( ABL_AND, ExprTemp = createablbinexpr( ABL_AND,
@ -209,7 +209,7 @@ static ablexpr *local_normablctl( Expr )
{ {
NormExpr = local_normablctl( ABL_CAR( ScanExpr ) ); NormExpr = local_normablctl( ABL_CAR( ScanExpr ) );
if ( NormExpr != ABL_CAR( ScanExpr ) ) if ( NormExpr != ABL_CAR( ScanExpr ) )
ABL_CAR( ScanExpr ) = NormExpr; ABL_CAR_L( ScanExpr ) = NormExpr;
NormExpr = Expr; NormExpr = Expr;
} }

View File

@ -165,7 +165,7 @@ static ablexpr *loc_simpablctl( Expr )
ExprTemp = ABL_CADR( ABL_CADR( Expr ) ); ExprTemp = ABL_CADR( ABL_CADR( Expr ) );
freechain( ABL_CAR( ABL_CADR( Expr ) ) ); freechain( ABL_CAR( ABL_CADR( Expr ) ) );
freechain( ABL_CADR( Expr ) ); freechain( ABL_CADR( Expr ) );
ABL_CADR( Expr ) = ExprTemp; ABL_CADR_L( Expr ) = ExprTemp;
SimpExpr = Expr; SimpExpr = Expr;
ExprTemp = loc_simpablctl( SimpExpr ); ExprTemp = loc_simpablctl( SimpExpr );
@ -184,10 +184,10 @@ static ablexpr *loc_simpablctl( Expr )
{ {
ExprTemp = loc_simpablctl( ABL_CADR( Expr ) ); ExprTemp = loc_simpablctl( ABL_CADR( Expr ) );
if ( ExprTemp != 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 ) ) ); ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( Expr ) ) );
if ( ExprTemp != 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 && if ( ABL_OPER( ABL_CAR( ABL_CDDR( Expr ) ) ) == Oper &&
ABL_CADR( Expr ) != (ablexpr *)0 && ABL_CADR( Expr ) != (ablexpr *)0 &&
@ -214,10 +214,10 @@ static ablexpr *loc_simpablctl( Expr )
{ {
ExprTemp = loc_simpablctl( ABL_CADR( Expr ) ); ExprTemp = loc_simpablctl( ABL_CADR( Expr ) );
if ( ExprTemp != 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 ) ) ); ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( Expr ) ) );
if ( ExprTemp != 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 && if ( ( Oper == ABL_AND &&
ABL_OPER( ABL_CADR( Expr ) ) == ABL_AG && ABL_OPER( ABL_CADR( Expr ) ) == ABL_AG &&
@ -265,16 +265,16 @@ static ablexpr *loc_simpablctl( Expr )
SimpExpr = createablbinexpr( ABL_OR, SimpExpr = createablbinexpr( ABL_OR,
ABL_CADR( ABL_CADR( ABL_CADR( Expr ) ) ), ABL_CADR( ABL_CADR( ABL_CADR( Expr ) ) ),
ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) ) ); ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) ) );
ABL_CADR( ABL_CADR( ABL_CADR( Expr ) ) ) = (ablexpr *)0; ABL_CADR_L( ABL_CADR( ABL_CADR( Expr ) ) ) = (ablexpr *)0;
ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) ) = (ablexpr *)0; ABL_CAR_L( ABL_CDDR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) ) = (ablexpr *)0;
freeablexpr( Expr ); freeablexpr( Expr );
ExprTemp = loc_simpablctl( ABL_CADR( SimpExpr ) ); ExprTemp = loc_simpablctl( ABL_CADR( SimpExpr ) );
if ( ExprTemp != 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 ) ) ); ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( SimpExpr ) ) );
if ( ExprTemp != 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 ); return( SimpExpr );
} }
@ -302,16 +302,16 @@ static ablexpr *loc_simpablctl( Expr )
SimpExpr = createablbinexpr( ABL_AND, SimpExpr = createablbinexpr( ABL_AND,
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ), ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ),
ABL_CAR( ABL_CDDR( ABL_CADR( ABL_CADR( Expr ) ) ) ) ); ABL_CAR( ABL_CDDR( ABL_CADR( ABL_CADR( Expr ) ) ) ) );
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0; ABL_CADR_L( ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0;
ABL_CAR( ABL_CDDR( ABL_CADR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0; ABL_CAR_L( ABL_CDDR( ABL_CADR( ABL_CADR( Expr ) ) ) ) = (ablexpr *)0;
freeablexpr( Expr ); freeablexpr( Expr );
ExprTemp = loc_simpablctl( ABL_CADR( SimpExpr ) ); ExprTemp = loc_simpablctl( ABL_CADR( SimpExpr ) );
if ( ExprTemp != 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 ) ) ); ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( SimpExpr ) ) );
if ( ExprTemp != 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 ); return( SimpExpr );
} }
@ -349,13 +349,13 @@ static ablexpr *loc_simpablctl( Expr )
ExprTemp = createablbinexpr( ABL_AU, ExprTemp = createablbinexpr( ABL_AU,
ABL_CADR( ABL_CADR( Expr ) ), ABL_CADR( ABL_CADR( Expr ) ),
ABL_CADR( ABL_CADR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ); ABL_CADR( ABL_CADR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) );
ABL_CADR( ABL_CADR( Expr ) ) = (ablexpr *)0; ABL_CADR_L( ABL_CADR( Expr ) ) = (ablexpr *)0;
ABL_CADR( ABL_CADR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) = (ablexpr *)0; ABL_CADR_L( ABL_CADR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) = (ablexpr *)0;
SimpExpr = createablbinexpr( ABL_EU, SimpExpr = createablbinexpr( ABL_EU,
ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ), ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ),
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ) ); ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ) );
ABL_CAR( ABL_CDDR( ABL_CADR( Expr ) ) ) = (ablexpr *)0; ABL_CAR_L( ABL_CDDR( ABL_CADR( Expr ) ) ) = (ablexpr *)0;
ABL_CADR( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ) = (ablexpr *)0; ABL_CADR_L( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( Expr ) ) ) ) ) = (ablexpr *)0;
SimpExpr = createablbinexpr( ABL_AND, SimpExpr = createablbinexpr( ABL_AND,
ExprTemp, ExprTemp,
SimpExpr ); SimpExpr );
@ -363,16 +363,16 @@ static ablexpr *loc_simpablctl( Expr )
ExprTemp = loc_simpablctl( ABL_CADR( ABL_CADR( SimpExpr ) ) ); ExprTemp = loc_simpablctl( ABL_CADR( ABL_CADR( SimpExpr ) ) );
if ( ExprTemp != 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 ) ) ) ); ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( ABL_CADR( SimpExpr ) ) ) );
if ( ExprTemp != 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 ) ) ) ); ExprTemp = loc_simpablctl( ABL_CADR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) );
if ( ExprTemp != 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 ) ) ) ) ); ExprTemp = loc_simpablctl( ABL_CAR( ABL_CDDR( ABL_CAR( ABL_CDDR( SimpExpr ) ) ) ) );
if ( ExprTemp != 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 ); return( SimpExpr );
} }
@ -385,7 +385,7 @@ static ablexpr *loc_simpablctl( Expr )
{ {
SimpExpr = loc_simpablctl( ABL_CAR( ScanExpr ) ); SimpExpr = loc_simpablctl( ABL_CAR( ScanExpr ) );
if ( SimpExpr != ABL_CAR( ScanExpr ) ) if ( SimpExpr != ABL_CAR( ScanExpr ) )
ABL_CAR( ScanExpr ) = SimpExpr; ABL_CAR_L( ScanExpr ) = SimpExpr;
SimpExpr = Expr; SimpExpr = Expr;
} }

View File

@ -168,7 +168,7 @@ ablexpr *devablxorexpr( Expr )
while ( ( Expr = ABL_CDR( Expr ) ) != (ablexpr *)0 ) while ( ( Expr = ABL_CDR( Expr ) ) != (ablexpr *)0 )
{ {
ABL_CAR( Expr ) = (void *)devablxorexpr( ABL_CAR( Expr ) ); ABL_CAR_L( Expr ) = (void *)devablxorexpr( ABL_CAR( Expr ) );
} }
} }

View File

@ -161,14 +161,14 @@ ablexpr *optimablnotexpr( Expr )
if ( AtomValue == ABL_ATOM_NAME_ONE ) 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 ); return( Expr );
} }
else else
if ( AtomValue == ABL_ATOM_NAME_ZERO ) 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 ); return( Expr );
} }

View File

@ -221,7 +221,7 @@ ablexpr *polarablexpr( Expr, Polar )
} }
else 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 ) if ( Polar == ABL_POLAR_NEGATIVE )
{ {
@ -244,7 +244,7 @@ ablexpr *polarablexpr( Expr, Polar )
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 ) while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 )
{ {
ABL_CAR( ScanExpr ) = polarablexpr( ABL_CAR( ScanExpr ), Polar ); ABL_CAR_L( ScanExpr ) = polarablexpr( ABL_CAR( ScanExpr ), Polar );
} }
} }

View File

@ -201,7 +201,7 @@ ablexpr *simpdupexpr( Expr )
if ( AblSimplifyTable[ Oper ][ 1 ] != -1 ) if ( AblSimplifyTable[ Oper ][ 1 ] != -1 )
{ {
freeablexpr( Expr ); freeablexpr( Expr );
ABL_ATOM_VALUE( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ]; ABL_CAR_L( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ];
if ( Negative == 1 ) if ( Negative == 1 )
{ {
@ -235,14 +235,14 @@ ablexpr *simpdupexpr( Expr )
if ( ExprQueue == Expr ) if ( ExprQueue == Expr )
{ {
ExprSimp = ABL_CAR( Expr ); ExprSimp = ABL_CAR( Expr );
ABL_ATOM_VALUE( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 3 ]; ABL_CAR_L( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 3 ];
freechain( Expr ); freechain( Expr );
} }
else else
if ( ExprQueue == ABL_CDR( Expr ) ) if ( ExprQueue == ABL_CDR( Expr ) )
{ {
ExprSimp = ABL_CADR( Expr ); ExprSimp = ABL_CADR( Expr );
ABL_CADR( Expr ) = (void *)0; ABL_CADR_L( Expr ) = (void *)0;
freeablexpr( Expr ); freeablexpr( Expr );
} }
else else
@ -309,7 +309,7 @@ ablexpr *loc_simpablexpr( Expr )
if ( isablunaryoper( Oper ) ) if ( isablunaryoper( Oper ) )
{ {
ABL_CADR( Expr ) = loc_simpablexpr( ABL_CADR( Expr ) ); ABL_CADR_L( Expr ) = loc_simpablexpr( ABL_CADR( Expr ) );
return( Expr ); return( Expr );
} }
@ -340,9 +340,9 @@ ablexpr *loc_simpablexpr( Expr )
{ {
if ( AblSimplifyTable[ Oper ][ 1 ] != -1 ) if ( AblSimplifyTable[ Oper ][ 1 ] != -1 )
{ {
ABL_CAR( ScanExpr ) = (ablexpr *)0; ABL_CAR_L( ScanExpr ) = (ablexpr *)0;
freeablexpr( Expr ); freeablexpr( Expr );
ABL_ATOM_VALUE( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ]; ABL_CAR_L( ExprSimp ) = (char *)AblSimplifyTable[ Oper ][ 1 ];
if ( Negative == 1 ) if ( Negative == 1 )
{ {
@ -374,12 +374,12 @@ ablexpr *loc_simpablexpr( Expr )
} }
else else
{ {
ABL_CAR( ScanExpr ) = ExprSimp; ABL_CAR_L( ScanExpr ) = ExprSimp;
} }
} }
else else
{ {
ABL_CAR( ScanExpr ) = ExprSimp; ABL_CAR_L( ScanExpr ) = ExprSimp;
} }
PrevExpr = ScanExpr; PrevExpr = ScanExpr;
@ -387,14 +387,14 @@ ablexpr *loc_simpablexpr( Expr )
if ( PrevExpr == Expr ) if ( PrevExpr == Expr )
{ {
ABL_ATOM_VALUE( Expr ) = (char *)AblSimplifyTable[ Oper ][ 3 ]; ABL_CAR_L( Expr ) = (char *)AblSimplifyTable[ Oper ][ 3 ];
ExprSimp = Expr; ExprSimp = Expr;
} }
else else
if ( PrevExpr == ABL_CDR( Expr ) ) if ( PrevExpr == ABL_CDR( Expr ) )
{ {
ExprSimp = ABL_CADR( Expr ); ExprSimp = ABL_CADR( Expr );
ABL_CADR( Expr ) = (void *)0; ABL_CADR_L( Expr ) = (void *)0;
freeablexpr( Expr ); freeablexpr( Expr );
} }
else else

View File

@ -105,7 +105,7 @@ static ablexpr *loc_substablexpr( Expr )
while ( ( Expr = ABL_CDR( 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 ); return( ExprSubst );

View File

@ -119,7 +119,7 @@ ablexpr *unflatablexpr( Expr )
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 ) while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 )
{ {
ABL_CAR( ScanExpr ) = unflatablexpr( ABL_CAR( ScanExpr ) ); ABL_CAR_L( ScanExpr ) = unflatablexpr( ABL_CAR( ScanExpr ) );
} }
} }

View File

@ -48,6 +48,7 @@
# include "abt.h" # include "abt.h"
# include <stdio.h> # include <stdio.h>
# include <string.h>
# include "bhl_error.h" # include "bhl_error.h"
# include "bhl_delaux.h" # include "bhl_delaux.h"
@ -167,7 +168,7 @@ static chain_list *bhl_delauxexpr( Expr )
bhlerror( BHL_OPERATOR_ERROR, Oper ); bhlerror( BHL_OPERATOR_ERROR, Oper );
} }
ABL_CAR( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) ); ABL_CAR_L( Expr ) = bhl_delauxexpr( ABL_CAR( Expr ) );
return( FirstExpr ); return( FirstExpr );
} }
@ -209,11 +210,11 @@ static chain_list *bhl_delauxexpr( Expr )
bhlerror( BHL_OPERATOR_ERROR, Oper ); 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 ) 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 ); return( FirstExpr );

View File

@ -50,8 +50,8 @@ dnl ifelse([$2], , :, [$2])
dnl fi dnl fi
CFLAGS="-I${ALLIANCE_TOP}/include $CFLAGS" dnl CFLAGS="-I${ALLIANCE_TOP}/include $CFLAGS"
LDFLAGS="-L${ALLIANCE_TOP}/lib $LDFLAGS" dnl LDFLAGS="-L${ALLIANCE_TOP}/lib $LDFLAGS"
AC_ARG_ENABLE(devel, AC_ARG_ENABLE(devel,

View File

@ -811,7 +811,7 @@ void loc_stablebddcircuitabl( Expr )
if ( Name != (char *)0 ) 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 ) ); addablhexpr( Expr, createablatom( Name ) );
} }
} }

View File

@ -551,7 +551,7 @@ chain_list *convertbddnodesumabl( BddSystem, NameArray, IndexArray, BddNode )
if ( ABL_CDDR( BddConvertSumProd ) == (chain_list *)0 ) if ( ABL_CDDR( BddConvertSumProd ) == (chain_list *)0 )
{ {
SumProd = ABL_CADR( BddConvertSumProd ); SumProd = ABL_CADR( BddConvertSumProd );
ABL_CADR( BddConvertSumProd ) = (chain_list *)0; ABL_CADR_L( BddConvertSumProd ) = (chain_list *)0;
freeablexpr( BddConvertSumProd ); freeablexpr( BddConvertSumProd );
BddConvertSumProd = SumProd; BddConvertSumProd = SumProd;

View File

@ -1,11 +1,12 @@
## Process this file with automake to produce Makefile.in ## 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)/abl/src \
-I$(top_srcdir)/abv/src \ -I$(top_srcdir)/abv/src \
-I$(top_srcdir)/bdd/src \ -I$(top_srcdir)/bdd/src \
-I$(top_srcdir)/aut/src \ -I$(top_srcdir)/aut/src \
-I$(top_srcdir)/mbk/src -I$(top_srcdir)/mbk/src \
@ALLIANCE_CFLAGS@
bin_PROGRAMS = boog bin_PROGRAMS = boog

View File

@ -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)) { 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; return abl;

View File

@ -47,15 +47,15 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
if (ABL_ATOM(abl)) { if (ABL_ATOM(abl)) {
if (ABL_ATOM_VALUE(abl)==getablatomzero()) { 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()) { else if (ABL_ATOM_VALUE(abl)==getablatomone()) {
if (negativ) ABL_ATOM_VALUE(abl)=getablatomzero(); if (negativ) ABL_CAR_L(abl)=getablatomzero();
} }
else { else {
if (negativ) { if (negativ) {
abl=createablnotexpr(abl); abl=createablnotexpr(abl);
ABL_ARITY(abl)=1; ABL_ARITY_L(abl)=1;
} }
} }
return abl; return abl;
@ -63,30 +63,30 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
switch (ABL_OPER(abl)) { switch (ABL_OPER(abl)) {
case ABL_AND: case ABL_AND:
if (negativ) ABL_OPER(abl)=ABL_NAND; if (negativ) ABL_OPER_L(abl)=ABL_NAND;
else ABL_OPER(abl)=ABL_NOR; else ABL_OPER_L(abl)=ABL_NOR;
negativ=!negativ; negativ=!negativ;
break; break;
case ABL_NAND: case ABL_NAND:
if (negativ) ABL_OPER(abl)=ABL_NOR; if (negativ) ABL_OPER_L(abl)=ABL_NOR;
else ABL_OPER(abl)=ABL_NAND; else ABL_OPER_L(abl)=ABL_NAND;
break; break;
case ABL_OR: case ABL_OR:
if (negativ) ABL_OPER(abl)=ABL_NOR; if (negativ) ABL_OPER_L(abl)=ABL_NOR;
else ABL_OPER(abl)=ABL_NAND; else ABL_OPER_L(abl)=ABL_NAND;
negativ=!negativ; negativ=!negativ;
break; break;
case ABL_NOR: case ABL_NOR:
if (negativ) ABL_OPER(abl)=ABL_NAND; if (negativ) ABL_OPER_L(abl)=ABL_NAND;
else ABL_OPER(abl)=ABL_NOR; else ABL_OPER_L(abl)=ABL_NOR;
break; break;
case ABL_XOR: case ABL_XOR:
if (negativ) ABL_OPER(abl)=ABL_NXOR; if (negativ) ABL_OPER_L(abl)=ABL_NXOR;
negativ=0; negativ=0;
/*nothing to do: same size XOR and NXOR*/ /*nothing to do: same size XOR and NXOR*/
break; break;
case ABL_NXOR: case ABL_NXOR:
if (negativ) ABL_OPER(abl)=ABL_XOR; if (negativ) ABL_OPER_L(abl)=ABL_XOR;
negativ=0; negativ=0;
/*nothing to do*/ /*nothing to do*/
break; break;
@ -98,7 +98,7 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
case ABL_STABLE: case ABL_STABLE:
if (negativ) { if (negativ) {
abl=createablnotexpr(abl); abl=createablnotexpr(abl);
ABL_ARITY(abl)=1; ABL_ARITY_L(abl)=1;
} }
return abl; return abl;
default: 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)) { 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; return abl;
@ -141,7 +141,7 @@ extern chain_list* build_negativ(chain_list* abl)
if (ABL_OPER(abl)==ABL_STABLE) return abl; if (ABL_OPER(abl)==ABL_STABLE) return abl;
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) { 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)) { 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)) { if (ABL_ATOM(leaf)) {
/*constant undifferent*/ /*constant undifferent*/
if (ABL_ATOM_VALUE(leaf)==getablatomzero()) if (ABL_ATOM_VALUE(leaf)==getablatomzero())
ABL_ATOM_VALUE(leaf)=getablatomone(); ABL_CAR_L(leaf)=getablatomone();
else if (ABL_ATOM_VALUE(leaf)==getablatomone()) else if (ABL_ATOM_VALUE(leaf)==getablatomone())
ABL_ATOM_VALUE(leaf)=getablatomzero(); ABL_CAR_L(leaf)=getablatomzero();
else { else {
ABL_CAR(chain)=createablnotexpr(ABL_CAR(chain)); ABL_CAR_L(chain)=createablnotexpr(ABL_CAR(chain));
ABL_ARITY(ABL_CAR(chain))=1; ABL_ARITY_L(ABL_CAR(chain))=1;
} }
continue; continue;
} }
else if (ABL_OPER(leaf)==ABL_STABLE) { else if (ABL_OPER(leaf)==ABL_STABLE) {
ABL_CAR(chain)=createablnotexpr(ABL_CAR(chain)); ABL_CAR_L(chain)=createablnotexpr(ABL_CAR(chain));
ABL_ARITY(ABL_CAR(chain))=1; ABL_ARITY_L(ABL_CAR(chain))=1;
continue; continue;
} }
switch (ABL_OPER(leaf)) { switch (ABL_OPER(leaf)) {
case ABL_AND: ABL_OPER(leaf)=ABL_NAND; break; case ABL_AND: ABL_OPER_L(leaf)=ABL_NAND; break;
case ABL_OR: ABL_OPER(leaf)=ABL_NOR; break; case ABL_OR: ABL_OPER_L(leaf)=ABL_NOR; break;
case ABL_NAND: ABL_OPER(leaf)=ABL_AND; break; case ABL_NAND: ABL_OPER_L(leaf)=ABL_AND; break;
case ABL_NOR: ABL_OPER(leaf)=ABL_OR; break; case ABL_NOR: ABL_OPER_L(leaf)=ABL_OR; break;
case ABL_XOR: ABL_OPER(leaf)=ABL_NXOR; break; case ABL_XOR: ABL_OPER_L(leaf)=ABL_NXOR; break;
case ABL_NXOR: ABL_OPER(leaf)=ABL_XOR; break; case ABL_NXOR: ABL_OPER_L(leaf)=ABL_XOR; break;
case ABL_NOT: case ABL_NOT:
ABL_CAR(chain)=ABL_CADR(leaf); ABL_CAR_L(chain)=ABL_CADR(leaf);
freechain(leaf); freechain(leaf);
break; break;
default: default:
@ -214,10 +214,10 @@ extern chain_list* build_negativ(chain_list* abl)
} }
switch (ABL_OPER(abl)) { switch (ABL_OPER(abl)) {
case ABL_AND: ABL_OPER(abl)=ABL_NOR; break; case ABL_AND: ABL_OPER_L(abl)=ABL_NOR; break;
case ABL_OR: ABL_OPER(abl)=ABL_NAND; break; case ABL_OR: ABL_OPER_L(abl)=ABL_NAND; break;
case ABL_NAND: ABL_OPER(abl)=ABL_OR; break; case ABL_NAND: ABL_OPER_L(abl)=ABL_OR; break;
case ABL_NOR: ABL_OPER(abl)=ABL_AND; break; case ABL_NOR: ABL_OPER_L(abl)=ABL_AND; break;
case ABL_NOT: case ABL_NOT:
chain=abl; chain=abl;
abl=ABL_CADR(abl); abl=ABL_CADR(abl);

View File

@ -27,7 +27,7 @@
* Author : Francois Donnet * Author : Francois Donnet
*/ */
#include <stdlib.h>
#include <mut.h> #include <mut.h>
#include <abl.h> #include <abl.h>
#include <abe.h> #include <abe.h>
@ -248,7 +248,7 @@ static chain_list *permutations_abl(chain_list* abl)
/*put the operator*/ /*put the operator*/
for (chain=list_abl; chain; chain=chain->NEXT) { for (chain=list_abl; chain; chain=chain->NEXT) {
head=createabloper(ABL_OPER(abl)); head=createabloper(ABL_OPER(abl));
ABL_ARITY(head)=ABL_ARITY(abl); ABL_ARITY_L(head)=ABL_ARITY(abl);
ABL_CDR(head)=dupablchain(chain->DATA); ABL_CDR(head)=dupablchain(chain->DATA);
chain->DATA=head; chain->DATA=head;
} }

View File

@ -52,9 +52,9 @@ extern void swap_pointers(chain_list* abl1, chain_list* abl2)
car=ABL_CAR(abl1); car=ABL_CAR(abl1);
cdr=ABL_CDR(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_CDR(abl1)=ABL_CDR(abl2);
ABL_CAR(abl2)=car; ABL_CAR_L(abl2)=car;
ABL_CDR(abl2)=cdr; ABL_CDR(abl2)=cdr;
} }
@ -80,12 +80,12 @@ extern void invert_port(port_list* port)
if (ABL_ATOM(port->ABL)) { if (ABL_ATOM(port->ABL)) {
name=getoppositename(ABL_ATOM_VALUE(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 else
{ {
/*add a not*/ /*add a not*/
not=createabloper(ABL_NOT); not=createabloper(ABL_NOT);
ABL_ARITY(not)=1; ABL_ARITY_L(not)=1;
/*swap pointers references*/ /*swap pointers references*/
swap_pointers(port->ABL,not); swap_pointers(port->ABL,not);
ABL_CDR(port->ABL)=addchain(NULL,not); ABL_CDR(port->ABL)=addchain(NULL,not);
@ -94,14 +94,14 @@ extern void invert_port(port_list* port)
else else
{ {
switch (ABL_OPER(port->ABL)) { switch (ABL_OPER(port->ABL)) {
case ABL_AND: ABL_OPER(port->ABL)=ABL_NAND; break; case ABL_AND: ABL_OPER_L(port->ABL)=ABL_NAND; break;
case ABL_NAND: ABL_OPER(port->ABL)=ABL_AND; break; case ABL_NAND: ABL_OPER_L(port->ABL)=ABL_AND; break;
case ABL_OR: ABL_OPER(port->ABL)=ABL_NOR; break; case ABL_OR: ABL_OPER_L(port->ABL)=ABL_NOR; break;
case ABL_NOR: ABL_OPER(port->ABL)=ABL_OR; break; case ABL_NOR: ABL_OPER_L(port->ABL)=ABL_OR; break;
case ABL_XOR: ABL_OPER(port->ABL)=ABL_NXOR; break; case ABL_XOR: ABL_OPER_L(port->ABL)=ABL_NXOR; break;
case ABL_NXOR: ABL_OPER(port->ABL)=ABL_XOR; break; case ABL_NXOR: ABL_OPER_L(port->ABL)=ABL_XOR; break;
case ABL_NOT: /*no need to insert*/ case ABL_NOT: /*no need to insert*/
port->ABL=ABL_CADR(port->ABL); continue; port->ABL=ABL_CADR_L(port->ABL); continue;
default: default:
fprintf(stderr, fprintf(stderr,
"invert_port: oper %s forbidden at this level\n", "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*/ /*insert a NOT to match perfectly with cell*/
not=createabloper(ABL_NOT); not=createabloper(ABL_NOT);
ABL_ARITY(not)=1; ABL_ARITY_L(not)=1;
/*swap pointers references*/ /*swap pointers references*/
swap_pointers(port->ABL,not); swap_pointers(port->ABL,not);
ABL_CDR(port->ABL)=addchain(NULL,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*/ /*evaluate with the biggest oper*/
int arity=ABL_ARITY(expr); /*memorize arity*/ int arity=ABL_ARITY(expr); /*memorize arity*/
/*search the biggest arity which matches expr*/ /*search the biggest arity which matches expr*/
for (ABL_ARITY(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0; for (ABL_ARITY_L(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0;
ABL_ARITY(expr)--) { ABL_ARITY_L(expr)--) {
cell=cell_prepare(expr); cell=cell_prepare(expr);
if (cell) break; if (cell) break;
} }
ABL_ARITY(expr)=arity; /*put back arity*/ ABL_ARITY_L(expr)=arity; /*put back arity*/
if (!cell) { if (!cell) {
fprintf(stderr,"Library Error: No cell could match '"); fprintf(stderr,"Library Error: No cell could match '");
display_abl(expr); display_abl(expr);
@ -181,7 +181,7 @@ static chain_list* loc_adapt_abl(chain_list* expr, float C)
return expr; return expr;
} }
for (abl=ABL_CDR(expr); abl; abl=ABL_CDR(abl)) { 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; return expr;
} }
@ -241,12 +241,12 @@ extern chain_list* adapt_abl(chain_list* expr)
/*evaluate with the biggest oper*/ /*evaluate with the biggest oper*/
arity=ABL_ARITY(expr); /*memorize arity*/ arity=ABL_ARITY(expr); /*memorize arity*/
/*search the biggest arity which matches expr*/ /*search the biggest arity which matches expr*/
for (ABL_ARITY(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0; for (ABL_ARITY_L(expr)=ABL_ARITY(expr)-1 ; ABL_ARITY(expr)>0;
ABL_ARITY(expr)--) { ABL_ARITY_L(expr)--) {
cell=cell_prepare(expr); cell=cell_prepare(expr);
if (cell) break; if (cell) break;
} }
ABL_ARITY(expr)=arity; /*put back arity*/ ABL_ARITY_L(expr)=arity; /*put back arity*/
if (!cell) { if (!cell) {
fprintf(stderr,"Library Error: No cell could match '"); fprintf(stderr,"Library Error: No cell could match '");
display_abl(expr); display_abl(expr);
@ -261,7 +261,7 @@ extern chain_list* adapt_abl(chain_list* expr)
return expr; return expr;
} }
for (abl=ABL_CDR(expr); abl; abl=ABL_CDR(abl)) { 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; return expr;
} }
@ -315,7 +315,7 @@ extern biabl_list* adapt_bus(biabl_list* biabl)
biabl->VALABL=build_negativ(biabl->VALABL); biabl->VALABL=build_negativ(biabl->VALABL);
biabl->VALABL=createablnotexpr(biabl->VALABL); biabl->VALABL=createablnotexpr(biabl->VALABL);
/* createablnotexpr() can simplify*/ /* 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); cell=cell_prepare_bus(biabl);

View File

@ -406,7 +406,7 @@ extern cell_list* cell_pattern(chain_list* expr)
/*create a temporary NOT to match perfectly with cell*/ /*create a temporary NOT to match perfectly with cell*/
not=createabloper(ABL_NOT); not=createabloper(ABL_NOT);
ABL_CDR(not)=addchain(NULL,NULL); ABL_CDR(not)=addchain(NULL,NULL);
ABL_ARITY(not)=1; ABL_ARITY_L(not)=1;
/*take those are biggest*/ /*take those are biggest*/
for (cell=getcell_logic_lib(); cell; cell=cell->NEXT) { for (cell=getcell_logic_lib(); cell; cell=cell->NEXT) {
@ -497,7 +497,7 @@ extern cell_list* cell_pattern(chain_list* expr)
exit(1); exit(1);
} }
if (port->NEGATIV) { if (port->NEGATIV) {
ABL_CADR(not)=port->ABL; ABL_CADR_L(not)=port->ABL;
delay=port->T+find_delay(not, port->C); delay=port->T+find_delay(not, port->C);
} }
else delay=port->T+find_delay(port->ABL, 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*/ /*create a temporary NOT to match perfectly with cell*/
not=createabloper(ABL_NOT); not=createabloper(ABL_NOT);
ABL_CDR(not)=addchain(NULL,NULL); ABL_CDR(not)=addchain(NULL,NULL);
ABL_ARITY(not)=1; ABL_ARITY_L(not)=1;
for (cell=getcell_tristate_lib(); cell; cell=cell->NEXT) { for (cell=getcell_tristate_lib(); cell; cell=cell->NEXT) {
/*prepare for use*/ /*prepare for use*/
@ -642,7 +642,7 @@ extern cell_list* cell_pattern_bus(biabl_list* biabl)
exit(1); exit(1);
} }
if (port->NEGATIV) { if (port->NEGATIV) {
ABL_CADR(not)=port->ABL; ABL_CADR_L(not)=port->ABL;
delay=port->T+find_delay(not, port->C); delay=port->T+find_delay(not, port->C);
} }
else delay=port->T+find_delay(port->ABL, 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*/ /*create a temporary NOT to match perfectly with cell*/
not=createabloper(ABL_NOT); not=createabloper(ABL_NOT);
ABL_CDR(not)=addchain(NULL,NULL); ABL_CDR(not)=addchain(NULL,NULL);
ABL_ARITY(not)=1; ABL_ARITY_L(not)=1;
cell=getcell_register_lib(); cell=getcell_register_lib();
@ -791,7 +791,7 @@ extern cell_list* cell_pattern_reg(biabl_list* biabl)
exit(1); exit(1);
} }
if (port->NEGATIV) { if (port->NEGATIV) {
ABL_CADR(not)=port->ABL; ABL_CADR_L(not)=port->ABL;
delay=port->T+find_delay(not, port->C); delay=port->T+find_delay(not, port->C);
} }
else delay=port->T+find_delay(port->ABL, 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*/ /*refer to new port*/
ABL_ATOM_VALUE(abl)=(chain_list*)port; ABL_CAR_L(abl)=(chain_list*)port;
return abl; /*head unchanged*/ return abl; /*head unchanged*/
} }
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) { 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*/ /*mark if STABLE*/
@ -932,7 +932,7 @@ extern port_list* internal_reference(befig_list* befig, port_list* port, chain_l
port_aux->DIRECTION=INOUT; port_aux->DIRECTION=INOUT;
/*refer to new port*/ /*refer to new port*/
ABL_ATOM_VALUE(abl)=(chain_list*)port_aux; ABL_CAR_L(abl)=(chain_list*)port_aux;
return port_aux; return port_aux;
} }

View File

@ -54,7 +54,7 @@ extern void put_arity_abl (chain_list* abl)
put_arity_abl((chain_list*)ABL_CAR(pattern)); put_arity_abl((chain_list*)ABL_CAR(pattern));
} }
ABL_ARITY(abl)=arity; ABL_ARITY_L(abl)=arity;
return ; return ;
} }

View File

@ -45,6 +45,7 @@
/*head operator arity*/ /*head operator arity*/
/* Warning: simpablexpr() do not work anymore after pulling 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(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 */ /* put arity operator in abl->DATA->NEXT field */

View File

@ -41,8 +41,8 @@
#include "bog_normalize_DAG.h" #include "bog_normalize_DAG.h"
#define USING(node) {(int)node=-mark;} #define USING(node) {node=-mark;}
#define USED(node) {(int)node=(int)((((int)node<0)?0:(int)node)+1);} #define USED(node) {node=(int)((((int)node<0)?0:(int)node)+1);}
#define IS_USING(node) ((int)node==-mark) #define IS_USING(node) ((int)node==-mark)
#define IS_USED(node) ((int)node!=0) #define IS_USED(node) ((int)node!=0)
#define IS_UNUSED(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; head=abl;
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(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; return head;
@ -159,7 +159,7 @@ static chain_list* replace_equi(chain_list* abl)
head=abl; head=abl;
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(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; return head;

View File

@ -49,12 +49,12 @@ static void find_d_z_abl(chain_list* abl, int value)
if (ABL_ATOM_VALUE(abl)==getablatomdc()/* = namealloc("'d'")*/) { if (ABL_ATOM_VALUE(abl)==getablatomdc()/* = namealloc("'d'")*/) {
/*non standard IEEE VHDL*/ /*it means "don't care"*/ /*non standard IEEE VHDL*/ /*it means "don't care"*/
/* we can put zero either one, only to simplify*/ /* 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'")*/){ else if (ABL_ATOM_VALUE(abl)==getablatomtristate()/* =namealloc("'z'")*/){
/*no drive on signal*/ /*no drive on signal*/
/* a pull-up is done for better conductance*/ /* a pull-up is done for better conductance*/
ABL_ATOM_VALUE(abl)=getablatomone()/* = namealloc("'1'")*/; ABL_CAR_L(abl)=getablatomone()/* = namealloc("'1'")*/;
} }
} }

View File

@ -53,7 +53,7 @@ static void changename(chain_list* abl)
if (ABL_ATOM(abl)) { if (ABL_ATOM(abl)) {
elem=searchauthelem(HTABLE,ABL_ATOM_VALUE(abl)); elem=searchauthelem(HTABLE,ABL_ATOM_VALUE(abl));
if (!elem) return; if (!elem) return;
ABL_ATOM_VALUE(abl)=(char*) elem->VALUE; ABL_CAR_L(abl)=(char*) elem->VALUE;
return; return;
} }

View File

@ -28,7 +28,7 @@
*/ */
#include <stdlib.h>
#include <mut.h> #include <mut.h>
#include <abl.h> #include <abl.h>
#include <abe.h> #include <abe.h>
@ -48,7 +48,7 @@ static chain_list* unflatnegexpr(chain_list* abl)
if (ABL_ATOM(abl)) return abl; if (ABL_ATOM(abl)) return abl;
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) { 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++; count++;
} }
@ -57,13 +57,13 @@ static chain_list* unflatnegexpr(chain_list* abl)
switch(ABL_OPER(abl)) { switch(ABL_OPER(abl)) {
case ABL_NAND: case ABL_NAND:
ABL_OPER(abl)=ABL_AND; ABL_OPER_L(abl)=ABL_AND;
return createablnotexpr(abl); return createablnotexpr(abl);
case ABL_NOR: case ABL_NOR:
ABL_OPER(abl)=ABL_OR; ABL_OPER_L(abl)=ABL_OR;
return createablnotexpr(abl); return createablnotexpr(abl);
case ABL_NXOR: case ABL_NXOR:
ABL_OPER(abl)=ABL_XOR; ABL_OPER_L(abl)=ABL_XOR;
return createablnotexpr(abl); return createablnotexpr(abl);
default: return abl; default: return abl;
} }

View File

@ -64,7 +64,7 @@ static chain_list* change_atom(chain_list* abl,int invert)
if (ABL_ATOM(abl)) { if (ABL_ATOM(abl)) {
if (!invert) return 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); 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)) { 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; return abl;
@ -227,7 +227,7 @@ static void search_name(char* name)
/* keep the NOT to use inverter bus */ /* keep the NOT to use inverter bus */
if (is_tristate_inverter_lib() && if (is_tristate_inverter_lib() &&
!ABL_ATOM(biabl->VALABL) && ABL_OPER(biabl->VALABL)==ABL_NOT) { !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*/ else biabl->VALABL=unflatten_abl(biabl->VALABL); /*arity solver*/
biabl->CNDABL=unflatten_abl(biabl->CNDABL); /*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 */ /* keep the NOT to use inverter bus */
if (is_tristate_inverter_lib() && if (is_tristate_inverter_lib() &&
!ABL_ATOM(biabl->VALABL) && ABL_OPER(biabl->VALABL)==ABL_NOT) { !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*/ else biabl->VALABL=unflatten_abl(biabl->VALABL); /*arity solver*/
biabl->CNDABL=unflatten_abl(biabl->CNDABL); /*arity solver*/ biabl->CNDABL=unflatten_abl(biabl->CNDABL); /*arity solver*/

View File

@ -2,13 +2,14 @@
bin_PROGRAMS = boom 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)/abl/src \
-I$(top_srcdir)/abt/src \ -I$(top_srcdir)/abt/src \
-I$(top_srcdir)/abv/src \ -I$(top_srcdir)/abv/src \
-I$(top_srcdir)/aut/src \ -I$(top_srcdir)/aut/src \
-I$(top_srcdir)/bdd/src \ -I$(top_srcdir)/bdd/src \
-I$(top_srcdir)/mbk/src -I$(top_srcdir)/mbk/src \
@ALLIANCE_CFLAGS@
boom_LDADD = @ALLIANCE_LIBS@ \ boom_LDADD = @ALLIANCE_LIBS@ \
-L$(top_srcdir)/abv/src \ -L$(top_srcdir)/abv/src \

View File

@ -153,7 +153,7 @@ static chain_list *BoomBddIndex2Abl( Index )
if ( Name != (char *)0 ) 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 ) ); addablhexpr( Atom, createablatom( Name ) );
} }
@ -1550,7 +1550,7 @@ static chain_list *BoomReverseAbl( Expr )
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 ) while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 )
{ {
ABL_CAR( ScanExpr ) = BoomReverseAbl( ABL_CAR( ScanExpr ) ); ABL_CAR_L( ScanExpr ) = BoomReverseAbl( ABL_CAR( ScanExpr ) );
} }
} }

View File

@ -192,7 +192,7 @@ static ablexpr *BoomCreateAuxAbl( Expr )
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 ) 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 ); BddNode = BoomGetBddMarkAbl( Expr );
@ -417,7 +417,7 @@ static ablexpr *BoomReplaceUselessAuxAbl( Expr )
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 ) while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (chain_list *)0 )
{ {
ABL_CAR( ScanExpr ) = BoomReplaceUselessAuxAbl( ABL_CAR( ScanExpr ) ); ABL_CAR_L( ScanExpr ) = BoomReplaceUselessAuxAbl( ABL_CAR( ScanExpr ) );
} }
} }

View File

@ -200,13 +200,13 @@ static ablexpr *BoomCreateAuxInitComparatorAbl( Expr )
if ( Operand1 == (ablexpr *)0 ) if ( Operand1 == (ablexpr *)0 )
{ {
Operand1 = ABL_CAR( ScanExpr ); Operand1 = ABL_CAR( ScanExpr );
ABL_CAR( ScanExpr ) = (ablexpr *)0; ABL_CAR_L( ScanExpr ) = (ablexpr *)0;
continue; continue;
} }
Operand2 = ABL_CAR( ScanExpr ); Operand2 = ABL_CAR( ScanExpr );
ABL_CAR( ScanExpr ) = (ablexpr *)0; ABL_CAR_L( ScanExpr ) = (ablexpr *)0;
AuxExpr = createablbinexpr( ABL_XOR, Operand1, Operand2 ); AuxExpr = createablbinexpr( ABL_XOR, Operand1, Operand2 );
AuxName = BoomGetNewAuxInitName(); AuxName = BoomGetNewAuxInitName();
@ -238,7 +238,7 @@ static ablexpr *BoomCreateAuxInitComparatorAbl( Expr )
while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 ) while ( ( ScanExpr = ABL_CDR( ScanExpr ) ) != (ablexpr *)0 )
{ {
ABL_CAR( ScanExpr ) = BoomCreateAuxInitComparatorAbl( ABL_CAR( ScanExpr ) ); ABL_CAR_L( ScanExpr ) = BoomCreateAuxInitComparatorAbl( ABL_CAR( ScanExpr ) );
} }
} }

View File

@ -1083,7 +1083,7 @@ static void BoomBddReplaceKeepAuxAbl( Expr )
if ( Element != (authelem *)0 ) if ( Element != (authelem *)0 )
{ {
ABL_ATOM_VALUE( Expr ) = (char *)Element->VALUE; ABL_CAR_L( Expr ) = (char *)Element->VALUE;
} }
} }
} }

View File

@ -103,7 +103,7 @@ static void BoomReplaceDontCareAbl( Expr )
if ( ABL_ATOM_VALUE( Expr ) == ABL_ATOM_NAME_DC ) if ( ABL_ATOM_VALUE( Expr ) == ABL_ATOM_NAME_DC )
{ {
BoomFoundAblDc = 1; BoomFoundAblDc = 1;
ABL_ATOM_VALUE( Expr ) = ABL_ATOM_NAME_ZERO; ABL_CAR_L( Expr ) = ABL_ATOM_NAME_ZERO;
} }
} }

View File

@ -106,7 +106,7 @@ static void BoomRenameAuxVectorAbl( Expr )
if ( Element != (authelem *)0 ) 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

View File

@ -65,6 +65,10 @@
\ \
((rdsrec_list **)((R)->USER)) ((rdsrec_list **)((R)->USER))
# define DREAL_PREVIOUS_L( R ) \
\
((R)->USER)
# define DREAL_WINDOW( R ) \ # define DREAL_WINDOW( R ) \
\ \
(((drealrec *)((char *)(R)+sizeof(rdsrec_list)))->WINDOW ) (((drealrec *)((char *)(R)+sizeof(rdsrec_list)))->WINDOW )

View File

@ -213,7 +213,7 @@ void DrealAddFigure( Name )
Rectangle != (rdsrec_list *)NULL; Rectangle != (rdsrec_list *)NULL;
Rectangle = Rectangle->NEXT ) Rectangle = Rectangle->NEXT )
{ {
DREAL_PREVIOUS( Rectangle ) = Previous; DREAL_PREVIOUS_L( Rectangle ) = Previous;
Previous = &Rectangle->NEXT; Previous = &Rectangle->NEXT;
DrealInsertRectangle( Rectangle ); DrealInsertRectangle( Rectangle );
@ -230,7 +230,7 @@ void DrealAddFigure( Name )
Rectangle != (rdsrec_list *)NULL; Rectangle != (rdsrec_list *)NULL;
Rectangle = Rectangle->NEXT ) Rectangle = Rectangle->NEXT )
{ {
DREAL_PREVIOUS( Rectangle ) = (rdsrec_list **)Instance; DREAL_PREVIOUS_L( Rectangle ) = (rdsrec_list **)Instance;
DrealInsertRectangle( Rectangle ); DrealInsertRectangle( Rectangle );
} }
@ -266,10 +266,10 @@ rdsrec_list *DrealAddRectangle( Name, Layer, X, Y, Dx, Dy )
if ( ScanRec->NEXT != (rdsrec_list *)0 ) 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(); rdsend();
return( ScanRec ); return( ScanRec );
@ -305,10 +305,10 @@ rdsrec_list *DrealAddAbox( X, Y, Dx, Dy )
if ( ScanRec->NEXT != (rdsrec_list *)0 ) 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(); rdsend();
return( ScanRec ); return( ScanRec );
@ -406,7 +406,7 @@ void DrealDelRectangle( DelRec )
if ( DelRec->NEXT != (rdsrec_list *)0 ) if ( DelRec->NEXT != (rdsrec_list *)0 )
{ {
DREAL_PREVIOUS( DelRec->NEXT ) = DREAL_PREVIOUS( DelRec ); DREAL_PREVIOUS_L( DelRec->NEXT ) = DREAL_PREVIOUS( DelRec );
} }
DrealEraseRectangle( DelRec ); DrealEraseRectangle( DelRec );
@ -471,7 +471,7 @@ void DrealFlattenFigure()
while ( ScanRec != (rdsrec_list *)NULL ) while ( ScanRec != (rdsrec_list *)NULL )
{ {
DREAL_PREVIOUS( ScanRec ) = Previous; DREAL_PREVIOUS_L( ScanRec ) = Previous;
Previous = &ScanRec->NEXT; Previous = &ScanRec->NEXT;
DrealInsertRectangle( ScanRec ); DrealInsertRectangle( ScanRec );
@ -484,7 +484,7 @@ void DrealFlattenFigure()
if ( ScanRec->NEXT != (rdsrec_list *)NULL ) if ( ScanRec->NEXT != (rdsrec_list *)NULL )
{ {
DREAL_PREVIOUS( ScanRec->NEXT ) = &ScanRec->NEXT; DREAL_PREVIOUS_L( ScanRec->NEXT ) = &ScanRec->NEXT;
} }
break; break;

View File

@ -1874,7 +1874,7 @@ void FvhFbhPostTreat( FsmFigure )
if ( ABL_CDDR( Equation ) == (ablexpr *)0 ) if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
{ {
StarChain = ABL_CADR( Equation ); StarChain = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
Equation = StarChain; Equation = StarChain;
} }

View File

@ -346,7 +346,8 @@ int main (int ac, char *av[])
} }
} }
} }
in_touch : in_touch :
; // xtof to avoid an error with gcc4
} }
} }
} }

View File

@ -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 */ /* Produit : librairie BDD - Gestion de BDD */
/****************************************************************************/ /****************************************************************************/
#include<stdio.h> #include<stdio.h>
#include<stdlib.h>
#include "mut.h" #include "mut.h"
#include "log.h" #include "log.h"

View File

@ -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 table de hachage des BDD
la version du 10.12.90 la version du 10.12.90
-------------------------------------------------------------------------- */ -------------------------------------------------------------------------- */
#include <stdlib.h>
#include "mut.h" #include "mut.h"
#include "log.h" #include "log.h"

View File

@ -2,12 +2,13 @@
bin_PROGRAMS = loon 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)/abl/src \
-I$(top_srcdir)/aut/src \ -I$(top_srcdir)/aut/src \
-I$(top_srcdir)/abv/src \ -I$(top_srcdir)/abv/src \
-I$(top_srcdir)/bdd/src \ -I$(top_srcdir)/bdd/src \
-I$(top_srcdir)/mbk/src -I$(top_srcdir)/mbk/src \
@ALLIANCE_CFLAGS@
loon_LDADD = @ALLIANCE_LIBS@ \ loon_LDADD = @ALLIANCE_LIBS@ \
-L$(top_srcdir)/abe/src \ -L$(top_srcdir)/abe/src \

View File

@ -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)) { 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; return abl;

View File

@ -46,10 +46,10 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
if (ABL_ATOM(abl)) { if (ABL_ATOM(abl)) {
if (ABL_ATOM_VALUE(abl)==getablatomzero()) { 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()) { else if (ABL_ATOM_VALUE(abl)==getablatomone()) {
if (negativ) ABL_ATOM_VALUE(abl)=getablatomzero(); if (negativ) ABL_CAR_L(abl)=getablatomzero();
} }
else { else {
if (negativ) { if (negativ) {
@ -61,30 +61,30 @@ extern chain_list* inv_oper(chain_list* abl, int negativ)
switch (ABL_OPER(abl)) { switch (ABL_OPER(abl)) {
case ABL_AND: case ABL_AND:
if (negativ) ABL_OPER(abl)=ABL_NAND; if (negativ) ABL_OPER_L(abl)=ABL_NAND;
else ABL_OPER(abl)=ABL_NOR; else ABL_OPER_L(abl)=ABL_NOR;
negativ=!negativ; negativ=!negativ;
break; break;
case ABL_NAND: case ABL_NAND:
if (negativ) ABL_OPER(abl)=ABL_NOR; if (negativ) ABL_OPER_L(abl)=ABL_NOR;
else ABL_OPER(abl)=ABL_NAND; else ABL_OPER_L(abl)=ABL_NAND;
break; break;
case ABL_OR: case ABL_OR:
if (negativ) ABL_OPER(abl)=ABL_NOR; if (negativ) ABL_OPER_L(abl)=ABL_NOR;
else ABL_OPER(abl)=ABL_NAND; else ABL_OPER_L(abl)=ABL_NAND;
negativ=!negativ; negativ=!negativ;
break; break;
case ABL_NOR: case ABL_NOR:
if (negativ) ABL_OPER(abl)=ABL_NAND; if (negativ) ABL_OPER_L(abl)=ABL_NAND;
else ABL_OPER(abl)=ABL_NOR; else ABL_OPER_L(abl)=ABL_NOR;
break; break;
case ABL_XOR: case ABL_XOR:
if (negativ) ABL_OPER(abl)=ABL_NXOR; if (negativ) ABL_OPER_L(abl)=ABL_NXOR;
negativ=0; negativ=0;
/*nothing to do: same size XOR and NXOR*/ /*nothing to do: same size XOR and NXOR*/
break; break;
case ABL_NXOR: case ABL_NXOR:
if (negativ) ABL_OPER(abl)=ABL_XOR; if (negativ) ABL_OPER_L(abl)=ABL_XOR;
negativ=0; negativ=0;
/*nothing to do*/ /*nothing to do*/
break; 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)) { 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; return abl;
@ -131,7 +131,7 @@ extern chain_list* build_negativ(chain_list* abl)
} }
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) { 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)) { 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)) { if (ABL_ATOM(leaf)) {
/*constant undifferent*/ /*constant undifferent*/
if (ABL_ATOM_VALUE(leaf)==getablatomzero()) if (ABL_ATOM_VALUE(leaf)==getablatomzero())
ABL_ATOM_VALUE(leaf)=getablatomone(); ABL_CAR_L(leaf)=getablatomone();
else if (ABL_ATOM_VALUE(leaf)==getablatomone()) else if (ABL_ATOM_VALUE(leaf)==getablatomone())
ABL_ATOM_VALUE(leaf)=getablatomzero(); ABL_CAR_L(leaf)=getablatomzero();
else { else {
ABL_CAR(chain)=createablnotexpr(ABL_CAR(chain)); ABL_CAR_L(chain)=createablnotexpr(ABL_CAR(chain));
} }
continue; continue;
} }
switch (ABL_OPER(leaf)) { switch (ABL_OPER(leaf)) {
case ABL_AND: ABL_OPER(leaf)=ABL_NAND; break; case ABL_AND: ABL_OPER_L(leaf)=ABL_NAND; break;
case ABL_OR: ABL_OPER(leaf)=ABL_NOR; break; case ABL_OR: ABL_OPER_L(leaf)=ABL_NOR; break;
case ABL_NAND: ABL_OPER(leaf)=ABL_AND; break; case ABL_NAND: ABL_OPER_L(leaf)=ABL_AND; break;
case ABL_NOR: ABL_OPER(leaf)=ABL_OR; break; case ABL_NOR: ABL_OPER_L(leaf)=ABL_OR; break;
case ABL_XOR: ABL_OPER(leaf)=ABL_NXOR; break; case ABL_XOR: ABL_OPER_L(leaf)=ABL_NXOR; break;
case ABL_NXOR: ABL_OPER(leaf)=ABL_XOR; break; case ABL_NXOR: ABL_OPER_L(leaf)=ABL_XOR; break;
case ABL_NOT: case ABL_NOT:
ABL_CAR(chain)=ABL_CADR(leaf); ABL_CAR_L(chain)=ABL_CADR(leaf);
freechain(leaf); freechain(leaf);
break; break;
default: default:
@ -192,12 +192,12 @@ extern chain_list* build_negativ(chain_list* abl)
} }
switch (ABL_OPER(abl)) { switch (ABL_OPER(abl)) {
case ABL_AND: ABL_OPER(abl)=ABL_NOR; break; case ABL_AND: ABL_OPER_L(abl)=ABL_NOR; break;
case ABL_OR: ABL_OPER(abl)=ABL_NAND; break; case ABL_OR: ABL_OPER_L(abl)=ABL_NAND; break;
case ABL_NAND: ABL_OPER(abl)=ABL_OR; break; case ABL_NAND: ABL_OPER_L(abl)=ABL_OR; break;
case ABL_NOR: ABL_OPER(abl)=ABL_AND; break; case ABL_NOR: ABL_OPER_L(abl)=ABL_AND; break;
case ABL_XOR: ABL_OPER(abl)=ABL_NXOR; break; case ABL_XOR: ABL_OPER_L(abl)=ABL_NXOR; break;
case ABL_NXOR: ABL_OPER(abl)=ABL_XOR; break; case ABL_NXOR: ABL_OPER_L(abl)=ABL_XOR; break;
case ABL_NOT: case ABL_NOT:
chain=abl; chain=abl;
abl=ABL_CADR(abl); abl=ABL_CADR(abl);

View File

@ -30,6 +30,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h>
#include <unistd.h> #include <unistd.h>
#include <signal.h> #include <signal.h>
#include <ctype.h> #include <ctype.h>

View File

@ -39,7 +39,9 @@
#define USING(node) {(int)node=-mark;} #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(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_USING(node) ((int)node==-mark)
#define IS_USED(node) ((int)node!=0) #define IS_USED(node) ((int)node!=0)
#define IS_UNUSED(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; head=abl;
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(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; return head;
@ -152,7 +154,7 @@ static chain_list* replace_equi(chain_list* abl)
head=abl; head=abl;
for (abl=ABL_CDR(head); abl; abl=ABL_CDR(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; return head;
@ -353,10 +355,10 @@ static int abl_dispatching(chain_list *abl, int mark)
return 0; return 0;
} }
if (IS_USED(beaux->NODE)) { if (IS_USED(beaux->NODE)) {
USED(beaux->NODE); USED_L(beaux->NODE);
return 1; return 1;
} }
USING(beaux->NODE); USING_L(beaux->NODE);
if (!abl_dispatching(beaux->ABL, mark)) { if (!abl_dispatching(beaux->ABL, mark)) {
if (!CYCLE) return 0; /*for display*/ if (!CYCLE) return 0; /*for display*/
if (CYCLE==beaux->NAME) { if (CYCLE==beaux->NAME) {
@ -366,7 +368,7 @@ static int abl_dispatching(chain_list *abl, int mark)
else fprintf(stderr,"%s, ",beaux->NAME); else fprintf(stderr,"%s, ",beaux->NAME);
return 0; return 0;
} }
USED(beaux->NODE); USED_L(beaux->NODE);
return 1; return 1;
} }
} }
@ -380,10 +382,10 @@ static int abl_dispatching(chain_list *abl, int mark)
return 0; return 0;
} }
if (IS_USED(bebux->BINODE)) { if (IS_USED(bebux->BINODE)) {
USED(bebux->BINODE); USED_L(bebux->BINODE);
return 1; return 1;
} }
USING(bebux->BINODE); USING_L(bebux->BINODE);
for (biabl=bebux->BIABL; biabl; biabl=biabl->NEXT) { for (biabl=bebux->BIABL; biabl; biabl=biabl->NEXT) {
if (!abl_dispatching(biabl->CNDABL, mark) if (!abl_dispatching(biabl->CNDABL, mark)
|| !abl_dispatching(biabl->VALABL, mark)) { || !abl_dispatching(biabl->VALABL, mark)) {
@ -396,7 +398,7 @@ static int abl_dispatching(chain_list *abl, int mark)
return 0; return 0;
} }
} }
USED(bebux->BINODE); USED_L(bebux->BINODE);
return 1; return 1;
} }
} }
@ -410,11 +412,11 @@ static int abl_dispatching(chain_list *abl, int mark)
return 0; return 0;
} }
if (IS_USED(bereg->BINODE)) { if (IS_USED(bereg->BINODE)) {
USED(bereg->BINODE); USED_L(bereg->BINODE);
return 1; return 1;
} }
/*cycle forbidden on clock*/ /*cycle forbidden on clock*/
USING(bereg->BINODE); USING_L(bereg->BINODE);
for (biabl=bereg->BIABL; biabl; biabl=biabl->NEXT) { for (biabl=bereg->BIABL; biabl; biabl=biabl->NEXT) {
ptype=getptype(biabl->USER,ABL_STABLE); /*search if flip-flop*/ ptype=getptype(biabl->USER,ABL_STABLE); /*search if flip-flop*/
/*cycle not forbidden on value for 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; return 0;
} }
} }
USED(bereg->BINODE); USED_L(bereg->BINODE);
/*impossible to look after value now, probably cycled on a signal*/ /*impossible to look after value now, probably cycled on a signal*/
/*wait the end of recursion*/ /*wait the end of recursion*/
return 1; return 1;
@ -501,7 +503,7 @@ static int mark_output()
/*create new internal signals and mark the path from output to input*/ /*create new internal signals and mark the path from output to input*/
for (beout=befig->BEOUT; beout; beout=beout->NEXT) { for (beout=befig->BEOUT; beout; beout=beout->NEXT) {
USING(beout->NODE); USING_L(beout->NODE);
if (!abl_dispatching(beout->ABL, mark)) { if (!abl_dispatching(beout->ABL, mark)) {
if (!CYCLE) return 0; /*for display*/ if (!CYCLE) return 0; /*for display*/
if (CYCLE==beout->NAME) { if (CYCLE==beout->NAME) {
@ -511,11 +513,11 @@ static int mark_output()
else fprintf(stderr,"%s, ",beout->NAME); else fprintf(stderr,"%s, ",beout->NAME);
return 0; return 0;
} }
USED(beout->NODE); USED_L(beout->NODE);
} }
for (bebus=befig->BEBUS; bebus; bebus=bebus->NEXT) { for (bebus=befig->BEBUS; bebus; bebus=bebus->NEXT) {
USING(bebus->BINODE); USING_L(bebus->BINODE);
for (biabl=bebus->BIABL; biabl; biabl=biabl->NEXT) { for (biabl=bebus->BIABL; biabl; biabl=biabl->NEXT) {
if (!abl_dispatching(biabl->CNDABL, mark) if (!abl_dispatching(biabl->CNDABL, mark)
|| !abl_dispatching(biabl->VALABL, mark)) { || !abl_dispatching(biabl->VALABL, mark)) {
@ -528,7 +530,7 @@ static int mark_output()
return 0; return 0;
} }
} }
USED(bebus->BINODE); USED_L(bebus->BINODE);
} }
return 1; /*ok*/ return 1; /*ok*/

View File

@ -48,7 +48,7 @@ static chain_list* unflatnegexpr(chain_list* abl)
if (ABL_ATOM(abl)) return abl; if (ABL_ATOM(abl)) return abl;
for (chain=ABL_CDR(abl); chain; chain=ABL_CDR(chain)) { 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++; count++;
} }
@ -57,13 +57,13 @@ static chain_list* unflatnegexpr(chain_list* abl)
switch(ABL_OPER(abl)) { switch(ABL_OPER(abl)) {
case ABL_NAND: case ABL_NAND:
ABL_OPER(abl)=ABL_AND; ABL_OPER_L(abl)=ABL_AND;
return createablnotexpr(abl); return createablnotexpr(abl);
case ABL_NOR: case ABL_NOR:
ABL_OPER(abl)=ABL_OR; ABL_OPER_L(abl)=ABL_OR;
return createablnotexpr(abl); return createablnotexpr(abl);
case ABL_NXOR: case ABL_NXOR:
ABL_OPER(abl)=ABL_XOR; ABL_OPER_L(abl)=ABL_XOR;
return createablnotexpr(abl); return createablnotexpr(abl);
default: return abl; default: return abl;
} }

View File

@ -484,7 +484,7 @@ Cette liste contient la liste des rectangles connecteurs. */
PtypeRec = getptype( LogicalConnector->USER, RDSLOCON1 ); 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; RecConnector = NULL;
if( Rcnet == 'c' || Rcnet == 'r' ) if( Rcnet == 'c' || Rcnet == 'r' )
@ -493,7 +493,7 @@ Cette liste contient la liste des rectangles connecteurs. */
} }
PrevFEQUI = getptype( Signal->USER, RCN_FEQUI ); 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 else

View File

@ -21,7 +21,7 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 * * rcn : acces functions to logical rc network structures *
@ -1495,11 +1495,11 @@ loctc_list* heaploctc()
ptctc=HEAD_CTC_FREE; ptctc=HEAD_CTC_FREE;
for(i=1;i<RCNBUFSIZE;i++) for(i=1;i<RCNBUFSIZE;i++)
{ {
(loctc_list*)(ptctc->SIG1) = ptctc+1; ptctc->SIG1 = ptctc+1;
ptctc->NODE1 = -1000; ptctc->NODE1 = -1000;
ptctc++; ptctc++;
} }
(loctc_list*)(ptctc->SIG1) = NULL; ptctc->SIG1 = NULL;
ptctc->NODE1 = -1000; ptctc->NODE1 = -1000;
} }
@ -1811,8 +1811,7 @@ losig_list *ptsig;
if( RCN_GETFLAG( ptnode->FLAG, RCN_FLAG_LOCON ) ) if( RCN_GETFLAG( ptnode->FLAG, RCN_FLAG_LOCON ) )
{ {
ptlocon = getptype(ptnode->USER, RCN_LOCON ); ptlocon = getptype(ptnode->USER, RCN_LOCON );
(chain_list*)(ptlocon->DATA)= ptlocon->DATA=addchain((chain_list*)(ptlocon->DATA),ptcon);
addchain((chain_list*)(ptlocon->DATA),ptcon);
} }
else else
{ {

View File

@ -12,6 +12,7 @@
#include <mut.h> #include <mut.h>
#include <mlo.h> #include <mlo.h>
#include <stdlib.h>
#include <string.h> #include <string.h>
/*---------------------------------------------------------\ /*---------------------------------------------------------\

View File

@ -24,6 +24,15 @@
/* /*
* gives time the format edif wants * gives time the format edif wants
* $Log: time.c,v $ * $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 * Revision 1.3 2002/09/30 16:20:54 czo
* support/users * support/users
* *
@ -34,6 +43,8 @@
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h> #include <time.h>
char *EdifTime() char *EdifTime()

View File

@ -21,7 +21,7 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 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 ) if( SPI_VERBOSE )
{ {
printf( "Parser Spice compile le %s a %s\n", __DATE__, __TIME__ ); printf( "Parser Spice compile le %s a %s\n", __DATE__, __TIME__ );
printf( "Revision : %s\n", "$Revision: 1.4 $" ); printf( "Revision : %s\n", "$Revision: 1.5 $" );
printf( "Date : %s\n", "$Date: 2005/04/15 08:38:50 $" ); printf( "Date : %s\n", "$Date: 2006/03/29 17:10:37 $" );
printf( "Separateur : '%c'\n", SPI_SEPAR ); printf( "Separateur : '%c'\n", SPI_SEPAR );
printf( "Nom de noeud : %s\n", SPI_NETNAME ); printf( "Nom de noeud : %s\n", SPI_NETNAME );
@ -1974,11 +1974,9 @@ char mode;
ptnodename = getptype( scanlocon->USER, PNODENAME ); ptnodename = getptype( scanlocon->USER, PNODENAME );
if( ptnoeud->NOM ) if( ptnoeud->NOM )
((chain_list*)(ptnodename->DATA)) = ptnodename->DATA = addchain( ((chain_list*)(ptnodename->DATA)), namealloc( ptnoeud->NOM ) );
addchain( ((chain_list*)(ptnodename->DATA)), namealloc( ptnoeud->NOM ) );
else else
((chain_list*)(ptnodename->DATA)) = ptnodename->DATA = addchain( ((chain_list*)(ptnodename->DATA)), NULL );
addchain( ((chain_list*)(ptnodename->DATA)), NULL );
} }
} }
@ -1991,15 +1989,14 @@ char mode;
for( scanlocon = ptfig->LOCON ; scanlocon ; scanlocon = scanlocon->NEXT ) 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 ); ptnodename = getptype( scanlocon->USER, PNODENAME );
for( sc1 = (chain_list*)( ptnodename->DATA ) ; sc1 ; sc1 = sc1->NEXT ) for( sc1 = (chain_list*)( ptnodename->DATA ) ; sc1 ; sc1 = sc1->NEXT )
if( sc1->DATA ) if( sc1->DATA )
break; break;
if( sc1 ) if( sc1 )
((chain_list*)(ptnodename->DATA)) = ptnodename->DATA = reverse( ((chain_list*)(ptnodename->DATA)) );
reverse( ((chain_list*)(ptnodename->DATA)) );
else else
{ {
freechain( (chain_list*)ptnodename->DATA ); 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 */ /* On cree les transistors */
@ -2194,8 +2191,7 @@ char mode;
sc3 = (chain_list*)sc2->DATA; sc3 = (chain_list*)sc2->DATA;
for( ; sc3 ; sc3 = sc3->NEXT ) for( ; sc3 ; sc3 = sc3->NEXT )
((chain_list*)(ptnodename->DATA)) = addchain( ptnodename->DATA = addchain(((chain_list*)(ptnodename->DATA)),
((chain_list*)(ptnodename->DATA)),
sc3->DATA sc3->DATA
); );

View File

@ -5,8 +5,9 @@
author : D.HOMMAIS author : D.HOMMAIS
content : basic functions for logen structure use 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 <stdio.h>
#include <stdlib.h>
#include <mut.h> #include <mut.h>
#include "gen_generic.h" #include "gen_generic.h"

View File

@ -7,8 +7,9 @@
/* functions : vhdlsavelofig() */ /* 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 <stdio.h>
#include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/types.h> #include <sys/types.h>
#include <time.h> #include <time.h>

View File

@ -1143,8 +1143,7 @@ generic_element_association
: .generic_choices. : .generic_choices.
generic_expression generic_expression
{ {
((logen_list *)MVL_GENLST->DATA) MVL_GENLST->DATA = duplogen (&MVL_LOGEN,
= duplogen (&MVL_LOGEN,
((logen_list *)MVL_GENLST->DATA), NULL); ((logen_list *)MVL_GENLST->DATA), NULL);
MVL_LOGEN.TYPE = GENTYPE_EMPTY; MVL_LOGEN.TYPE = GENTYPE_EMPTY;
} }

View File

@ -10,8 +10,17 @@
/* ###--------------------------------------------------------------------### */ /* ###--------------------------------------------------------------------### */
/* /*
* $Log: vel_o.c,v $ * $Log: vel_o.c,v $
* Revision 1.1 2002/04/26 09:51:07 ludo * Revision 1.2 2006/03/29 17:10:39 xtof
* Initial revision * * 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 * Revision 1.1.1.1 2002/04/11 08:54:53 fred
* Importing mbkvhdlg into the new Alliance CVS tree * 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 <stdio.h>
#include <string.h>
#include <unistd.h> #include <unistd.h>
#include <mut.h> #include <mut.h>
#include <mlo.h> #include <mlo.h>

View File

@ -41,6 +41,15 @@
* date : 12/06/1998 * * date : 12/06/1998 *
* * * *
* $Log: parse_vti_l.c,v $ * $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 * Revision 1.3 2002/09/30 16:21:00 czo
* support/users * support/users
* *
@ -966,7 +975,7 @@ losig_list *sigct1,*sigct2;
break; break;
} }
if( !scan_sigalias ) { 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->NEXT = headx;
scanx->rcn = 0; scanx->rcn = 0;
headx = scanx; headx = scanx;
(struct hns_X*)(ptl->DATA) = headx; ptl->DATA = headx;
} }
return(scanx); return(scanx);
@ -1268,7 +1277,7 @@ loins_list *ptins;
scani->ins = ptins; scani->ins = ptins;
scani->rcn = 0; scani->rcn = 0;
headi = scani; headi = scani;
(struct hns_I*)(ptl->DATA) = headi; ptl->DATA = headi;
} }
return(scani); return(scani);

View File

@ -2,7 +2,7 @@
bin_PROGRAMS = moka bin_PROGRAMS = moka
AM_CFLAGS = @ALLIANCE_CFLAGS@ -Wall \ AM_CFLAGS = -Wall \
-I$(top_srcdir)/abe/src \ -I$(top_srcdir)/abe/src \
-I$(top_srcdir)/abl/src \ -I$(top_srcdir)/abl/src \
-I$(top_srcdir)/abv/src \ -I$(top_srcdir)/abv/src \
@ -15,7 +15,8 @@ AM_CFLAGS = @ALLIANCE_CFLAGS@ -Wall \
-I$(top_srcdir)/ftl/src \ -I$(top_srcdir)/ftl/src \
-I$(top_srcdir)/mbk/src \ -I$(top_srcdir)/mbk/src \
-I$(top_srcdir)/fvh/src \ -I$(top_srcdir)/fvh/src \
-I$(top_srcdir)/vex/src -I$(top_srcdir)/vex/src \
@ALLIANCE_CFLAGS@
moka_LDADD = @ALLIANCE_LIBS@ \ moka_LDADD = @ALLIANCE_LIBS@ \
-L$(top_srcdir)/abe/src \ -L$(top_srcdir)/abe/src \

View File

@ -639,7 +639,7 @@ static void MochaSyfSynthOut2Abl( FsmFigure )
** Out(i) = OR Locout(j) -> Out(i) = Locout(j) ** Out(i) = OR Locout(j) -> Out(i) = Locout(j)
*/ */
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
ScanMochaSyfOut->ABL = Atom; ScanMochaSyfOut->ABL = Atom;
} }
@ -757,7 +757,7 @@ static void MochaSyfSynthReg2Abl( FsmFigure )
** Reg(i) = OR E(j) -> Reg(i) = E(j) ** Reg(i) = OR E(j) -> Reg(i) = E(j)
*/ */
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
RegArray[ Index ].ABL = Atom; RegArray[ Index ].ABL = Atom;
} }
@ -813,7 +813,7 @@ static void MochaSyfSynthReg2Abl( FsmFigure )
if ( ABL_CDDR( Equation ) == (ablexpr *)0 ) if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
{ {
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
RegArray[ Index ].ABL_SET = Atom; RegArray[ Index ].ABL_SET = Atom;
} }
@ -829,7 +829,7 @@ static void MochaSyfSynthReg2Abl( FsmFigure )
if ( ABL_CDDR( Equation ) == (ablexpr *)0 ) if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
{ {
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
RegArray[ Index ].ABL_RESET = Atom; RegArray[ Index ].ABL_RESET = Atom;
} }
@ -1579,7 +1579,7 @@ void MochaSyfFreeFsm( FsmFigure )
ScanOut != (fsmout_list *)0; ScanOut != (fsmout_list *)0;
ScanOut = ScanOut->NEXT ) ScanOut = ScanOut->NEXT )
{ {
MOCHA_SYF_OUT( ScanOut ) = NULL; MOCHA_SYF_OUT_L( ScanOut ) = NULL;
} }
for ( ScanState = ScanFigure->STATE; for ( ScanState = ScanFigure->STATE;
@ -1588,7 +1588,7 @@ void MochaSyfFreeFsm( FsmFigure )
{ {
ScanMochaSyfState = MOCHA_SYF_STATE( ScanState ); ScanMochaSyfState = MOCHA_SYF_STATE( ScanState );
autfreeblock( (void *)ScanMochaSyfState ); autfreeblock( (void *)ScanMochaSyfState );
MOCHA_SYF_STATE( ScanState ) = NULL; MOCHA_SYF_STATE_L( ScanState ) = NULL;
} }
autfreeblock( ScanMochaSyfInfo->REG_ARRAY ); autfreeblock( ScanMochaSyfInfo->REG_ARRAY );
@ -1596,7 +1596,7 @@ void MochaSyfFreeFsm( FsmFigure )
autfreeblock( ScanMochaSyfInfo->CODE_ARRAY ); autfreeblock( ScanMochaSyfInfo->CODE_ARRAY );
autfreeblock( ScanMochaSyfInfo ); autfreeblock( ScanMochaSyfInfo );
MOCHA_SYF_INFO( ScanFigure ) = NULL; MOCHA_SYF_INFO_L( ScanFigure ) = NULL;
if ( IsFsmFigMulti( FsmFigure ) ) if ( IsFsmFigMulti( FsmFigure ) )
{ {

View File

@ -52,9 +52,12 @@
| | | |
\------------------------------------------------------------*/ \------------------------------------------------------------*/
# define MOCHA_SYF_INFO( Figure ) ( (mochasyfinfo *)( ( Figure )->USER ) ) # define MOCHA_SYF_INFO( Figure ) ( (mochasyfinfo *)( ( Figure )->USER ) )
# define MOCHA_SYF_STATE( State ) ( (mochasyfstate *)( ( State )->USER ) ) # define MOCHA_SYF_INFO_L( Figure ) ( ( Figure )->USER )
# define MOCHA_SYF_OUT( Out ) ( (mochasyfout *)( ( Out )->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 )
/*------------------------------------------------------------\ /*------------------------------------------------------------\
| | | |

View File

@ -10,6 +10,7 @@
# include <aut.h> # include <aut.h>
# include <beh.h> # include <beh.h>
# include <stdio.h> # include <stdio.h>
# include <stdlib.h>
# define _ALU2_ 0 # define _ALU2_ 0

View File

@ -1,8 +1,17 @@
/* /*
### -------------------------------------------------- ### ### -------------------------------------------------- ###
$Author: hcl $ $Author: xtof $
$Date: 2002/06/27 09:09:01 $ $Date: 2006/03/29 17:10:51 $
$Log: findNPointsPath.c,v $ $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 Revision 1.5 2002/06/27 09:09:01 hcl
Code d'erreur si tous les signaux ne sont pas routés. Code d'erreur si tous les signaux ne sont pas routés.
@ -95,7 +104,7 @@
#include "ocrAstar.h" #include "ocrAstar.h"
static char *res_id = 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 #define MAX_HT 500
@ -557,7 +566,7 @@ makeExtEquipotentielle(ocrRoutingParameters * i_pParam,
l_pVirCon = createVirtualConnector(i, 0, 0, 0, SOUTH); l_pVirCon = createVirtualConnector(i, 0, 0, 0, SOUTH);
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) { if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList; l_pVirCon->NEXT = l_pVirConList;
l_pVirConList = l_pVirCon; l_pVirConList = l_pVirCon;
} }
// FIXME : pas de free ??? // FIXME : pas de free ???
@ -587,7 +596,7 @@ makeExtEquipotentielle(ocrRoutingParameters * i_pParam,
0, 0, NORTH); 0, 0, NORTH);
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) { if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList; l_pVirCon->NEXT = l_pVirConList;
l_pVirConList = l_pVirCon; l_pVirConList = l_pVirCon;
} }
} }
@ -609,7 +618,7 @@ makeExtEquipotentielle(ocrRoutingParameters * i_pParam,
l_pVirCon = createVirtualConnector((i_pGrid->SIZE_H - 1), l_pVirCon = createVirtualConnector((i_pGrid->SIZE_H - 1),
i, 0, 0, EAST); i, 0, 0, EAST);
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) { if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList; l_pVirCon->NEXT = l_pVirConList;
l_pVirConList = l_pVirCon; 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) { for (i = l_uOffset; i < i_pGrid->SIZE_V - l_uOffset; i += l_uDelta) {
l_pVirCon = createVirtualConnector(0, i, 0, 0, WEST); l_pVirCon = createVirtualConnector(0, i, 0, 0, WEST);
if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) { if (isFreePoint(i_pCon, i_pGrid, l_pVirCon)) {
(ocrVirtualConnector *) l_pVirCon->NEXT = l_pVirConList; l_pVirCon->NEXT = l_pVirConList;
l_pVirConList = l_pVirCon; l_pVirConList = l_pVirCon;
} }
} }

View File

@ -1,8 +1,17 @@
/* /*
### -------------------------------------------------- ### ### -------------------------------------------------- ###
$Author: ludo $ $Author: xtof $
$Date: 2004/05/23 09:50:42 $ $Date: 2006/03/29 17:10:51 $
$Log: ocrRouter.c,v $ $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 Revision 1.8 2004/05/23 09:50:42 ludo
- Bug fix: Segmentation fault when the input netlist has unconnected signals - Bug fix: Segmentation fault when the input netlist has unconnected signals
Those unused nets are now removed from the input lofig after the flatten. Those unused nets are now removed from the input lofig after the flatten.
@ -257,6 +266,90 @@ void noCritVC(ocrRoutingDataBase * i_pDataBase)
return; 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 : * 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 */ /* ripUp plus subtil */
void void
ripUp3(ocrRoutingDataBase * i_pDataBase, ripUp3(ocrRoutingDataBase * i_pDataBase,

View File

@ -1,8 +1,17 @@
/* /*
### -------------------------------------------------- ### ### -------------------------------------------------- ###
$Author: hcl $ $Author: xtof $
$Date: 2002/04/25 13:41:33 $ $Date: 2006/03/29 17:10:55 $
$Log: ocrWPlaneLabeling.c,v $ $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 Revision 1.2 2002/04/25 13:41:33 hcl
New ripup/reroute loop, bug-kill (CALU&TALU). New ripup/reroute loop, bug-kill (CALU&TALU).
@ -62,7 +71,7 @@
#define OFFSET(x) ( (ocrNaturalInt) (x)->KEY ) #define OFFSET(x) ( (ocrNaturalInt) (x)->KEY )
static char *res_id = 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 { typedef struct ocrSubWSegment {
ocrWSegment *SEGMENT; ocrWSegment *SEGMENT;
@ -116,10 +125,10 @@ static inline ocrSubWSegment *createSubWSegment(ocrWSegment * segment,
pt = (ocrSubWSegment *) mbkalloc(BUFSIZE * sizeof(ocrSubWSegment)); pt = (ocrSubWSegment *) mbkalloc(BUFSIZE * sizeof(ocrSubWSegment));
HEAD_OCRSUBWSEGMENT = pt; HEAD_OCRSUBWSEGMENT = pt;
for (i = 1; i < BUFSIZE; i++) { for (i = 1; i < BUFSIZE; i++) {
(ocrSubWSegment *) pt->SEGMENT = pt + 1; pt->SEGMENT = pt + 1;
pt++; pt++;
} }
(ocrSubWSegment *) pt->SEGMENT = NULL; pt->SEGMENT = NULL;
} }
pt = HEAD_OCRSUBWSEGMENT; pt = HEAD_OCRSUBWSEGMENT;
@ -135,7 +144,7 @@ static inline ocrSubWSegment *createSubWSegment(ocrWSegment * segment,
static inline void freeSubWSegment(ocrSubWSegment * sub_segment) static inline void freeSubWSegment(ocrSubWSegment * sub_segment)
{ {
(ocrSubWSegment *) sub_segment->SEGMENT = HEAD_OCRSUBWSEGMENT; sub_segment->SEGMENT = HEAD_OCRSUBWSEGMENT;
HEAD_OCRSUBWSEGMENT = sub_segment; HEAD_OCRSUBWSEGMENT = sub_segment;
} }

View File

@ -1,8 +1,17 @@
/* /*
### -------------------------------------------------- ### ### -------------------------------------------------- ###
$Author: hcl $ $Author: xtof $
$Date: 2002/07/16 12:03:55 $ $Date: 2006/03/29 17:10:56 $
$Log: ocrWRoutingUtil.c,v $ $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 Revision 1.7 2002/07/16 12:03:55 hcl
bug... bug...
@ -776,10 +785,10 @@ ocrWSegment *createWSegment(ocrNaturalInt offset,
pt = (ocrWSegment *) mbkalloc(BUFSIZE * sizeof(ocrWSegment)); pt = (ocrWSegment *) mbkalloc(BUFSIZE * sizeof(ocrWSegment));
HEAD_OCRWSEGMENT = pt; HEAD_OCRWSEGMENT = pt;
for (i = 1; i < BUFSIZE; i++) { for (i = 1; i < BUFSIZE; i++) {
(ocrWSegment *) pt->LABELS_LEFT_TOP = pt + 1; pt->LABELS_LEFT_TOP = pt + 1;
pt++; pt++;
} }
(ocrWSegment *) pt->LABELS_LEFT_TOP = NULL; pt->LABELS_LEFT_TOP = NULL;
} }
pt = HEAD_OCRWSEGMENT; pt = HEAD_OCRWSEGMENT;
@ -812,7 +821,7 @@ ocrWSegment *createWSegment(ocrNaturalInt offset,
void freeWSegment(ocrWSegment * segment) void freeWSegment(ocrWSegment * segment)
{ {
(ocrWSegment *) segment->LABELS_LEFT_TOP = HEAD_OCRWSEGMENT; segment->LABELS_LEFT_TOP = HEAD_OCRWSEGMENT;
HEAD_OCRWSEGMENT = segment; HEAD_OCRWSEGMENT = segment;
} }

View File

@ -1,8 +1,17 @@
/* /*
### -------------------------------------------------- ### ### -------------------------------------------------- ###
$Author: hcl $ $Author: xtof $
$Date: 2002/04/25 13:41:34 $ $Date: 2006/03/29 17:10:57 $
$Log: ocrConnectorUtil.c,v $ $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 Revision 1.3 2002/04/25 13:41:34 hcl
New ripup/reroute loop, bug-kill (CALU&TALU). New ripup/reroute loop, bug-kill (CALU&TALU).
@ -150,6 +159,7 @@ void countFreeVC(ocrRoutingDataBase * i_pDataBase)
l_pCon->critVC = NULL; l_pCon->critVC = NULL;
} }
fin_lpcon: fin_lpcon:
;
} }
} }
// maj con->NB_VC // maj con->NB_VC

View File

@ -1,8 +1,17 @@
/* /*
### -------------------------------------------------- ### ### -------------------------------------------------- ###
$Author: hcl $ $Author: xtof $
$Date: 2002/04/25 13:41:34 $ $Date: 2006/03/29 17:10:57 $
$Log: ocrDataBaseUtil.c,v $ $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 Revision 1.2 2002/04/25 13:41:34 hcl
New ripup/reroute loop, bug-kill (CALU&TALU). New ripup/reroute loop, bug-kill (CALU&TALU).
@ -44,7 +53,7 @@
#include "display.h" #include "display.h"
static char *res_id = 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; extern ocrOption *g_pOption;
#define LEVEL (g_pOption->LEVEL) #define LEVEL (g_pOption->LEVEL)
@ -492,7 +501,7 @@ void
addVirtualConnector(ocrVirtualConnector ** i_pVirConList, addVirtualConnector(ocrVirtualConnector ** i_pVirConList,
ocrVirtualConnector * i_pVirCon) ocrVirtualConnector * i_pVirCon)
{ {
(ocrVirtualConnector *) i_pVirCon->NEXT = *i_pVirConList; i_pVirCon->NEXT = *i_pVirConList;
*i_pVirConList = i_pVirCon; *i_pVirConList = i_pVirCon;
} }

View File

@ -119,7 +119,7 @@ static char* unbuf_papat(char* head, struct papat *ppapat)
if ( !paiol || ( paiol->MODE!='O' && paiol->MODE!='T' ) ) 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); exit(1);
} }

View File

@ -8,7 +8,7 @@
/*## E-mail : cao-vlsi@masi.ibp.fr ##*/ /*## E-mail : cao-vlsi@masi.ibp.fr ##*/
/*## ##*/ /*## ##*/
/*####==============================================================####*/ /*####==============================================================####*/
#include <stdio.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/fcntl.h> #include <sys/fcntl.h>
#include <errno.h> #include <errno.h>
@ -225,7 +225,7 @@ static void checkLPT()
if (fd <= 0 ) if (fd <= 0 )
{ {
fprintf(stderr, __FUNCTION__ ": Device is not opened\n"); fprintf(stderr, "%s : %s", __FUNCTION__, "Device is not opened\n");
exit(LPSCAN_ERROR); exit(LPSCAN_ERROR);
} }
@ -280,7 +280,7 @@ extern int check_mode( )
if ( !InfosVbe ) if ( !InfosVbe )
{ {
fprintf(stderr, __FUNCTION__ "No info file\n"); fprintf(stderr,"%s %s" ,__FUNCTION__ , "No info file\n");
exit(1); exit(1);
} }
@ -504,7 +504,7 @@ extern int write_read_port( char* buf, unsigned int size)
{ {
if (!fd) if (!fd)
{ {
fprintf(stderr,__FUNCTION__": device not opened\n"); fprintf(stderr, "%s : %s", __FUNCTION__, "device not opened\n");
exit( 1 ); exit( 1 );
} }

View File

@ -481,7 +481,7 @@ static char ValeurData(int valeur, int inversion)
case '*': return '*'; case '*': return '*';
} }
fprintf(stderr,__FUNCTION__": Sign '%c' unknown\n",valeur); fprintf(stderr, "%s : %s%c%s", __FUNCTION__, "Sign '", valeur, "' unknown\n");
exit( 1 ); exit( 1 );
return 0; return 0;
} }
@ -657,7 +657,7 @@ static void InitData(struct paseq *pat)
if ( !ppaiol ) 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); exit(1);
} }

View File

@ -71,10 +71,10 @@ static void resize_layer (model, layer_num)
for (rectp = model->LAYERTAB[layer_num]; rectp; rectp = rectp->NEXT) for (rectp = model->LAYERTAB[layer_num]; rectp; rectp = rectp->NEXT)
{ {
(long) rectp->X -= qty; rectp->X -= qty;
(long) rectp->Y -= qty; rectp->Y -= qty;
(long) rectp->DX += 2 * qty; rectp->DX += 2 * qty;
(long) rectp->DY += 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) for (rectp = model->LAYERTAB[layer_num]; rectp; rectp = rectp->NEXT)
{ {
(long) rectp->X += qty; rectp->X += qty;
(long) rectp->Y += qty; rectp->Y += qty;
(long) rectp->DX -= 2 * qty; rectp->DX -= 2 * qty;
(long) rectp->DY -= 2 * qty; rectp->DY -= 2 * qty;
} }
} }

View File

@ -2,14 +2,15 @@
bin_PROGRAMS = syf bin_PROGRAMS = syf
AM_CFLAGS = @ALLIANCE_CFLAGS@ \ AM_CFLAGS = \
-I$(top_srcdir)/abl/src \ -I$(top_srcdir)/abl/src \
-I$(top_srcdir)/aut/src \ -I$(top_srcdir)/aut/src \
-I$(top_srcdir)/bdd/src \ -I$(top_srcdir)/bdd/src \
-I$(top_srcdir)/fsm/src \ -I$(top_srcdir)/fsm/src \
-I$(top_srcdir)/ftl/src \ -I$(top_srcdir)/ftl/src \
-I$(top_srcdir)/fvh/src \ -I$(top_srcdir)/fvh/src \
-I$(top_srcdir)/mbk/src -I$(top_srcdir)/mbk/src \
@ALLIANCE_CFLAGS@
syf_LDADD = @ALLIANCE_LIBS@ \ syf_LDADD = @ALLIANCE_LIBS@ \
-L$(top_srcdir)/abl/src \ -L$(top_srcdir)/abl/src \

View File

@ -101,7 +101,7 @@ static void SyfRemoveStable( Expr )
freechain( ABL_CAR( Expr ) ); freechain( ABL_CAR( Expr ) );
ABL_CDR( Expr ) = (ablexpr *)0; ABL_CDR( Expr ) = (ablexpr *)0;
ABL_ATOM_VALUE( Expr ) = getablatomzero(); ABL_CAR_L( Expr ) = getablatomzero();
return; return;
} }

View File

@ -141,7 +141,7 @@ void SyfSynthReturn2Abl( FsmFigure )
( ABL_CDDR( Equation ) == (ablexpr *)0 ) ) ( ABL_CDDR( Equation ) == (ablexpr *)0 ) )
{ {
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
ReturnSyfState->ABL_RETURN = Atom; ReturnSyfState->ABL_RETURN = Atom;
} }
@ -299,7 +299,7 @@ void SyfSynthStack2Abl( FsmFigure )
if ( ABL_CDDR( Equation ) == (ablexpr *)0 ) if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
{ {
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
StackArray[ ScanBit ].ABL = Atom; StackArray[ ScanBit ].ABL = Atom;
} }
@ -594,7 +594,7 @@ void SyfSynthCtrl2Abl( FsmFigure )
if ( ABL_CDDR( Equation ) == (ablexpr *)0 ) if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
{ {
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
CtrlArray[ Index ].ABL = Atom; CtrlArray[ Index ].ABL = Atom;
} }
@ -804,7 +804,7 @@ void SyfSynthOut2Abl( FsmFigure )
** Out(i) = OR Locout(j) -> Out(i) = Locout(j) ** Out(i) = OR Locout(j) -> Out(i) = Locout(j)
*/ */
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
ScanSyfOut->ABL = Atom; ScanSyfOut->ABL = Atom;
} }
@ -1007,7 +1007,7 @@ void SyfSynthReg2Abl( FsmFigure )
** Reg(i) = OR E(j) -> Reg(i) = E(j) ** Reg(i) = OR E(j) -> Reg(i) = E(j)
*/ */
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
RegArray[ Index ].ABL = Atom; RegArray[ Index ].ABL = Atom;
} }
@ -1093,7 +1093,7 @@ void SyfSynthReg2Abl( FsmFigure )
if ( ABL_CDDR( Equation ) == (ablexpr *)0 ) if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
{ {
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
RegArray[ Index ].ABL_SET = Atom; RegArray[ Index ].ABL_SET = Atom;
} }
@ -1109,7 +1109,7 @@ void SyfSynthReg2Abl( FsmFigure )
if ( ABL_CDDR( Equation ) == (ablexpr *)0 ) if ( ABL_CDDR( Equation ) == (ablexpr *)0 )
{ {
Atom = ABL_CADR( Equation ); Atom = ABL_CADR( Equation );
ABL_CADR( Equation ) = (ablexpr *)0; ABL_CADR_L( Equation ) = (ablexpr *)0;
freeablexpr( Equation ); freeablexpr( Equation );
RegArray[ Index ].ABL_RESET = Atom; RegArray[ Index ].ABL_RESET = Atom;
} }

View File

@ -443,6 +443,7 @@
# define SetVexAtomValue( N, A ) ( (N)->VALUE = (void *)(A) ) # define SetVexAtomValue( N, A ) ( (N)->VALUE = (void *)(A) )
# define GetVexOperand( C ) ( (vexexpr *)(C)->DATA ) # define GetVexOperand( C ) ( (vexexpr *)(C)->DATA )
# define GetVexOperandL( C ) ( (C)->DATA )
# define SetVexOperand( C, O ) ( (C)->DATA = (void *)(O) ) # define SetVexOperand( C, O ) ( (C)->DATA = (void *)(O) )
/*------------------------------------------------------\ /*------------------------------------------------------\

View File

@ -1098,7 +1098,7 @@ static void VvhVbhTreatCase( ScanCase )
if ( VexGuard->OPERAND->NEXT == (chain_list *)0 ) if ( VexGuard->OPERAND->NEXT == (chain_list *)0 )
{ {
VexAtom = GetVexOperand( VexGuard->OPERAND ); VexAtom = GetVexOperand( VexGuard->OPERAND );
GetVexOperand( VexGuard->OPERAND ) = (vexexpr *)0; GetVexOperandL( VexGuard->OPERAND ) = (vexexpr *)0;
freevexexpr( VexGuard ); freevexexpr( VexGuard );
VexGuard = VexAtom; VexGuard = VexAtom;
} }
@ -1111,7 +1111,7 @@ static void VvhVbhTreatCase( ScanCase )
if ( VexGuard->OPERAND->NEXT == (chain_list *)0 ) if ( VexGuard->OPERAND->NEXT == (chain_list *)0 )
{ {
VexAtom = GetVexOperand( VexGuard->OPERAND ); VexAtom = GetVexOperand( VexGuard->OPERAND );
GetVexOperand( VexGuard->OPERAND ) = (vexexpr *)0; GetVexOperandL( VexGuard->OPERAND ) = (vexexpr *)0;
freevexexpr( VexGuard ); freevexexpr( VexGuard );
VexGuard = VexAtom; VexGuard = VexAtom;
} }
@ -1158,7 +1158,7 @@ static void VvhVbhTreatCase( ScanCase )
if ( VexGuard->OPERAND->NEXT == (chain_list *)0 ) if ( VexGuard->OPERAND->NEXT == (chain_list *)0 )
{ {
VexAtom = GetVexOperand( VexGuard->OPERAND ); VexAtom = GetVexOperand( VexGuard->OPERAND );
GetVexOperand( VexGuard->OPERAND ) = (vexexpr *)0; GetVexOperandL( VexGuard->OPERAND ) = (vexexpr *)0;
freevexexpr( VexGuard ); freevexexpr( VexGuard );
VexGuard = VexAtom; VexGuard = VexAtom;
} }