* coretype.h (yasm_expr_op): Add YASM_EXPR_NOR for NOR operator.

* intnum.c (yasm_intnum_calc): Handle YASM_EXPR_NOR.
* expr.c (yasm_expr_print): Likewise.

svn path=/trunk/yasm/; revision=1231
0.5.0rc2
Peter Johnson 20 years ago
parent a1e0e6a913
commit 83ecf2c5a0
  1. 1
      libyasm/coretype.h
  2. 3
      libyasm/expr.c
  3. 4
      libyasm/intnum.c

@ -131,6 +131,7 @@ typedef enum {
YASM_EXPR_OR, /**< Bitwise OR. */
YASM_EXPR_AND, /**< Bitwise AND. */
YASM_EXPR_XOR, /**< Bitwise XOR. */
YASM_EXPR_NOR, /**< Bitwise NOR. */
YASM_EXPR_SHL, /**< Shift left (logical). */
YASM_EXPR_SHR, /**< Shift right (logical). */
YASM_EXPR_LOR, /**< Logical OR. */

@ -1242,6 +1242,9 @@ yasm_expr_print(const yasm_expr *e, FILE *f)
case YASM_EXPR_XOR:
strcpy(opstr, "^");
break;
case YASM_EXPR_NOR:
strcpy(opstr, "NOR");
break;
case YASM_EXPR_SHL:
strcpy(opstr, "<<");
break;

@ -358,6 +358,10 @@ yasm_intnum_calc(yasm_intnum *acc, yasm_expr_op op, yasm_intnum *operand,
case YASM_EXPR_XOR:
Set_ExclusiveOr(result, op1, op2);
break;
case YASM_EXPR_NOR:
Set_Union(result, op1, op2);
Set_Complement(result, result);
break;
case YASM_EXPR_SHL:
if (operand->type == INTNUM_UL) {
BitVector_Copy(result, op1);

Loading…
Cancel
Save