Cosmetic changes
git-svn-id: svn://svn.cc65.org/cc65/trunk@2650 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -335,12 +335,33 @@ long GetExprVal (ExprNode* Expr)
|
|||||||
case EXPR_GE:
|
case EXPR_GE:
|
||||||
return (GetExprVal (Expr->Left) >= GetExprVal (Expr->Right));
|
return (GetExprVal (Expr->Left) >= GetExprVal (Expr->Right));
|
||||||
|
|
||||||
|
case EXPR_BOOLAND:
|
||||||
|
return GetExprVal (Expr->Left) && GetExprVal (Expr->Right);
|
||||||
|
|
||||||
|
case EXPR_BOOLOR:
|
||||||
|
return GetExprVal (Expr->Left) || GetExprVal (Expr->Right);
|
||||||
|
|
||||||
|
case EXPR_BOOLXOR:
|
||||||
|
return (GetExprVal (Expr->Left) != 0) ^ (GetExprVal (Expr->Right) != 0);
|
||||||
|
|
||||||
case EXPR_UNARY_MINUS:
|
case EXPR_UNARY_MINUS:
|
||||||
return -GetExprVal (Expr->Left);
|
return -GetExprVal (Expr->Left);
|
||||||
|
|
||||||
case EXPR_NOT:
|
case EXPR_NOT:
|
||||||
return ~GetExprVal (Expr->Left);
|
return ~GetExprVal (Expr->Left);
|
||||||
|
|
||||||
|
case EXPR_SWAP:
|
||||||
|
Left = GetExprVal (Expr->Left);
|
||||||
|
return ((Left >> 8) & 0x00FF) | ((Left << 8) & 0xFF00);
|
||||||
|
|
||||||
|
case EXPR_BOOLNOT:
|
||||||
|
return !GetExprVal (Expr->Left);
|
||||||
|
|
||||||
|
case EXPR_FORCEWORD:
|
||||||
|
case EXPR_FORCEFAR:
|
||||||
|
/* These two have no effect on the expression result */
|
||||||
|
return GetExprVal (Expr->Left);
|
||||||
|
|
||||||
case EXPR_BYTE0:
|
case EXPR_BYTE0:
|
||||||
return GetExprVal (Expr->Left) & 0xFF;
|
return GetExprVal (Expr->Left) & 0xFF;
|
||||||
|
|
||||||
@@ -353,21 +374,11 @@ long GetExprVal (ExprNode* Expr)
|
|||||||
case EXPR_BYTE3:
|
case EXPR_BYTE3:
|
||||||
return (GetExprVal (Expr->Left) >> 24) & 0xFF;
|
return (GetExprVal (Expr->Left) >> 24) & 0xFF;
|
||||||
|
|
||||||
case EXPR_SWAP:
|
case EXPR_WORD0:
|
||||||
Left = GetExprVal (Expr->Left);
|
return GetExprVal (Expr->Left) & 0xFFFF;
|
||||||
return ((Left >> 8) & 0x00FF) | ((Left << 8) & 0xFF00);
|
|
||||||
|
|
||||||
case EXPR_BOOLAND:
|
case EXPR_WORD1:
|
||||||
return GetExprVal (Expr->Left) && GetExprVal (Expr->Right);
|
return (GetExprVal (Expr->Left) >> 16) & 0xFFFF;
|
||||||
|
|
||||||
case EXPR_BOOLOR:
|
|
||||||
return GetExprVal (Expr->Left) || GetExprVal (Expr->Right);
|
|
||||||
|
|
||||||
case EXPR_BOOLXOR:
|
|
||||||
return (GetExprVal (Expr->Left) != 0) ^ (GetExprVal (Expr->Right) != 0);
|
|
||||||
|
|
||||||
case EXPR_BOOLNOT:
|
|
||||||
return !GetExprVal (Expr->Left);
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Internal ("Unknown expression Op type: %u", Expr->Op);
|
Internal ("Unknown expression Op type: %u", Expr->Op);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* (C) 1999-2003 Ullrich von Bassewitz */
|
/* (C) 1999-2003 Ullrich von Bassewitz */
|
||||||
/* R<>merstrasse 52 */
|
/* R<>merstra<EFBFBD>e 52 */
|
||||||
/* D-70794 Filderstadt */
|
/* D-70794 Filderstadt */
|
||||||
/* EMail: uz@cc65.org */
|
/* EMail: uz@cc65.org */
|
||||||
/* */
|
/* */
|
||||||
@@ -350,16 +350,11 @@ static void O65ParseExpr (ExprNode* Expr, ExprDesc* D, int Sign)
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
Export* E;
|
Export* E;
|
||||||
unsigned long Val;
|
|
||||||
|
|
||||||
switch (Expr->Op) {
|
switch (Expr->Op) {
|
||||||
|
|
||||||
case EXPR_LITERAL:
|
case EXPR_LITERAL:
|
||||||
if (Sign < 0) {
|
D->Val += (Sign * Expr->V.Val);
|
||||||
D->Val -= Expr->V.Val;
|
|
||||||
} else {
|
|
||||||
D->Val += Expr->V.Val;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EXPR_SYMBOL:
|
case EXPR_SYMBOL:
|
||||||
@@ -397,12 +392,7 @@ static void O65ParseExpr (ExprNode* Expr, ExprDesc* D, int Sign)
|
|||||||
/* Remember the segment reference */
|
/* Remember the segment reference */
|
||||||
D->SecRef = GetExprSection (Expr);
|
D->SecRef = GetExprSection (Expr);
|
||||||
/* Add the offset of the section to the constant value */
|
/* Add the offset of the section to the constant value */
|
||||||
Val = D->SecRef->Offs + D->SecRef->Seg->PC;
|
D->Val += Sign * (D->SecRef->Offs + D->SecRef->Seg->PC);
|
||||||
if (Sign < 0) {
|
|
||||||
D->Val -= Val;
|
|
||||||
} else {
|
|
||||||
D->Val += Val;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -414,12 +404,7 @@ static void O65ParseExpr (ExprNode* Expr, ExprDesc* D, int Sign)
|
|||||||
/* Remember the segment reference */
|
/* Remember the segment reference */
|
||||||
D->SegRef = Expr->V.Seg;
|
D->SegRef = Expr->V.Seg;
|
||||||
/* Add the offset of the segment to the constant value */
|
/* Add the offset of the segment to the constant value */
|
||||||
Val = D->SegRef->PC;
|
D->Val += (Sign * D->SegRef->PC);
|
||||||
if (Sign < 0) {
|
|
||||||
D->Val -= Val;
|
|
||||||
} else {
|
|
||||||
D->Val += Val;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -433,12 +418,7 @@ static void O65ParseExpr (ExprNode* Expr, ExprDesc* D, int Sign)
|
|||||||
/* Add the start address of the memory area to the constant
|
/* Add the start address of the memory area to the constant
|
||||||
* value
|
* value
|
||||||
*/
|
*/
|
||||||
Val = D->MemRef->Start;
|
D->Val += (Sign * D->MemRef->Start);
|
||||||
if (Sign < 0) {
|
|
||||||
D->Val -= Val;
|
|
||||||
} else {
|
|
||||||
D->Val += Val;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user