mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-21 02:32:06 +00:00
Use NOT operator to complement bits instead of XOR
The previous way of doing it relied on the variable being 32-bit wide. Signed-off-by: Antonio Niño Díaz <antonio_nd@outlook.com>
This commit is contained in:
@@ -1220,7 +1220,7 @@ const : T_ID { $$ = sym_GetConstantValue($1); }
|
|||||||
}
|
}
|
||||||
| T_OP_ADD const %prec NEG { $$ = +$2; }
|
| T_OP_ADD const %prec NEG { $$ = +$2; }
|
||||||
| T_OP_SUB const %prec NEG { $$ = -$2; }
|
| T_OP_SUB const %prec NEG { $$ = -$2; }
|
||||||
| T_OP_NOT const %prec NEG { $$ = 0xFFFFFFFF^$2; }
|
| T_OP_NOT const %prec NEG { $$ = ~$2; }
|
||||||
| T_OP_ROUND '(' const ')' { $$ = math_Round($3); }
|
| T_OP_ROUND '(' const ')' { $$ = math_Round($3); }
|
||||||
| T_OP_CEIL '(' const ')' { $$ = math_Ceil($3); }
|
| T_OP_CEIL '(' const ')' { $$ = math_Ceil($3); }
|
||||||
| T_OP_FLOOR '(' const ')' { $$ = math_Floor($3); }
|
| T_OP_FLOOR '(' const ')' { $$ = math_Floor($3); }
|
||||||
|
|||||||
@@ -362,6 +362,6 @@ void
|
|||||||
rpn_UNNOT(struct Expression * expr, struct Expression * src)
|
rpn_UNNOT(struct Expression * expr, struct Expression * src)
|
||||||
{
|
{
|
||||||
*expr = *src;
|
*expr = *src;
|
||||||
expr->nVal = expr->nVal ^ 0xFFFFFFFF;
|
expr->nVal = ~expr->nVal;
|
||||||
pushbyte(expr, RPN_UNNOT);
|
pushbyte(expr, RPN_UNNOT);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ calcrpn(struct sPatch * pPatch)
|
|||||||
rpnpush(rpnpop() ^ rpnpop());
|
rpnpush(rpnpop() ^ rpnpop());
|
||||||
break;
|
break;
|
||||||
case RPN_UNNOT:
|
case RPN_UNNOT:
|
||||||
rpnpush(rpnpop() ^ 0xFFFFFFFF);
|
rpnpush(~rpnpop());
|
||||||
break;
|
break;
|
||||||
case RPN_LOGAND:
|
case RPN_LOGAND:
|
||||||
rpnpush(rpnpop() && rpnpop());
|
rpnpush(rpnpop() && rpnpop());
|
||||||
|
|||||||
Reference in New Issue
Block a user