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_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_CEIL '(' const ')' { $$ = math_Ceil($3); }
|
||||
| T_OP_FLOOR '(' const ')' { $$ = math_Floor($3); }
|
||||
|
||||
@@ -362,6 +362,6 @@ void
|
||||
rpn_UNNOT(struct Expression * expr, struct Expression * src)
|
||||
{
|
||||
*expr = *src;
|
||||
expr->nVal = expr->nVal ^ 0xFFFFFFFF;
|
||||
expr->nVal = ~expr->nVal;
|
||||
pushbyte(expr, RPN_UNNOT);
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ calcrpn(struct sPatch * pPatch)
|
||||
rpnpush(rpnpop() ^ rpnpop());
|
||||
break;
|
||||
case RPN_UNNOT:
|
||||
rpnpush(rpnpop() ^ 0xFFFFFFFF);
|
||||
rpnpush(~rpnpop());
|
||||
break;
|
||||
case RPN_LOGAND:
|
||||
rpnpush(rpnpop() && rpnpop());
|
||||
|
||||
Reference in New Issue
Block a user