XLAT_BINARY_FUNC(op_and, T_AND)
XLAT_BINARY_FUNC(op_or, T_OR)
XLAT_BINARY_FUNC(op_xor, T_XOR)
+XLAT_BINARY_FUNC(op_rshift, T_RSHIFT)
+XLAT_BINARY_FUNC(op_lshift, T_LSHIFT)
XLAT_BINARY_FUNC(cmp_eq, T_OP_CMP_EQ)
XLAT_BINARY_FUNC(cmp_ne, T_OP_NE)
XLAT_REGISTER_BINARY_OP(T_AND, and);
XLAT_REGISTER_BINARY_OP(T_OR, or);
XLAT_REGISTER_BINARY_OP(T_XOR, xor);
+ XLAT_REGISTER_BINARY_OP(T_RSHIFT, rshift);
+ XLAT_REGISTER_BINARY_OP(T_LSHIFT, lshift);
XLAT_REGISTER_BINARY_CMP(T_OP_CMP_EQ, eq);
XLAT_REGISTER_BINARY_CMP(T_OP_NE, ne);
[ T_AND ] = L("op_and"),
[ T_OR ] = L("op_or"),
[ T_XOR ] = L("op_xor"),
+ [ T_RSHIFT ] = L("op_rshift"),
+ [ T_LSHIFT ] = L("op_lshift"),
[ T_LAND ] = L("logical_and"),
[ T_LOR ] = L("logical_or"),
xlat_expr 2 ^ 4
match 6
+
+xlat_expr (uint32) 8 >> 2
+match 2
+
+xlat_expr (uint32) 1 << 31
+match 2147483648
+
+#
+# The errors actually go out RPEDEBUG(), and aren't visible to unit_test_module :(
+#
+xlat_expr (uint32) 1 << 32
+match ERROR expanding xlat:
+
+#
+# This shifts it 8, and then tries to cast it to uint8?
+#
+xlat_expr (uint8) 1 << 8
+match ERROR expanding xlat:
+
+# Cannot perform any operations for destination type ether
+xlat_expr 00:01:02:03:04:05 ^ 11:22:33:44:55:66
+match ERROR expanding xlat: