+ [ FILTER_OP_RETURN ] = &&LABEL_FILTER_OP_RETURN,
+
+ /* binary */
+ [ FILTER_OP_MUL ] = &&LABEL_FILTER_OP_MUL,
+ [ FILTER_OP_DIV ] = &&LABEL_FILTER_OP_DIV,
+ [ FILTER_OP_MOD ] = &&LABEL_FILTER_OP_MOD,
+ [ FILTER_OP_PLUS ] = &&LABEL_FILTER_OP_PLUS,
+ [ FILTER_OP_MINUS ] = &&LABEL_FILTER_OP_MINUS,
+ [ FILTER_OP_RSHIFT ] = &&LABEL_FILTER_OP_RSHIFT,
+ [ FILTER_OP_LSHIFT ] = &&LABEL_FILTER_OP_LSHIFT,
+ [ FILTER_OP_BIN_AND ] = &&LABEL_FILTER_OP_BIN_AND,
+ [ FILTER_OP_BIN_OR ] = &&LABEL_FILTER_OP_BIN_OR,
+ [ FILTER_OP_BIN_XOR ] = &&LABEL_FILTER_OP_BIN_XOR,
+
+ /* binary comparators */
+ [ FILTER_OP_EQ ] = &&LABEL_FILTER_OP_EQ,
+ [ FILTER_OP_NE ] = &&LABEL_FILTER_OP_NE,
+ [ FILTER_OP_GT ] = &&LABEL_FILTER_OP_GT,
+ [ FILTER_OP_LT ] = &&LABEL_FILTER_OP_LT,
+ [ FILTER_OP_GE ] = &&LABEL_FILTER_OP_GE,
+ [ FILTER_OP_LE ] = &&LABEL_FILTER_OP_LE,
+
+ /* string binary comparator */
+ [ FILTER_OP_EQ_STRING ] = &&LABEL_FILTER_OP_EQ_STRING,
+ [ FILTER_OP_NE_STRING ] = &&LABEL_FILTER_OP_NE_STRING,
+ [ FILTER_OP_GT_STRING ] = &&LABEL_FILTER_OP_GT_STRING,
+ [ FILTER_OP_LT_STRING ] = &&LABEL_FILTER_OP_LT_STRING,
+ [ FILTER_OP_GE_STRING ] = &&LABEL_FILTER_OP_GE_STRING,
+ [ FILTER_OP_LE_STRING ] = &&LABEL_FILTER_OP_LE_STRING,
+
+ /* s64 binary comparator */
+ [ FILTER_OP_EQ_S64 ] = &&LABEL_FILTER_OP_EQ_S64,
+ [ FILTER_OP_NE_S64 ] = &&LABEL_FILTER_OP_NE_S64,
+ [ FILTER_OP_GT_S64 ] = &&LABEL_FILTER_OP_GT_S64,
+ [ FILTER_OP_LT_S64 ] = &&LABEL_FILTER_OP_LT_S64,
+ [ FILTER_OP_GE_S64 ] = &&LABEL_FILTER_OP_GE_S64,
+ [ FILTER_OP_LE_S64 ] = &&LABEL_FILTER_OP_LE_S64,
+
+ /* double binary comparator */
+ [ FILTER_OP_EQ_DOUBLE ] = &&LABEL_FILTER_OP_EQ_DOUBLE,
+ [ FILTER_OP_NE_DOUBLE ] = &&LABEL_FILTER_OP_NE_DOUBLE,
+ [ FILTER_OP_GT_DOUBLE ] = &&LABEL_FILTER_OP_GT_DOUBLE,
+ [ FILTER_OP_LT_DOUBLE ] = &&LABEL_FILTER_OP_LT_DOUBLE,
+ [ FILTER_OP_GE_DOUBLE ] = &&LABEL_FILTER_OP_GE_DOUBLE,
+ [ FILTER_OP_LE_DOUBLE ] = &&LABEL_FILTER_OP_LE_DOUBLE,
+
+ /* unary */
+ [ FILTER_OP_UNARY_PLUS ] = &&LABEL_FILTER_OP_UNARY_PLUS,
+ [ FILTER_OP_UNARY_MINUS ] = &&LABEL_FILTER_OP_UNARY_MINUS,
+ [ FILTER_OP_UNARY_NOT ] = &&LABEL_FILTER_OP_UNARY_NOT,
+ [ FILTER_OP_UNARY_PLUS_S64 ] = &&LABEL_FILTER_OP_UNARY_PLUS_S64,
+ [ FILTER_OP_UNARY_MINUS_S64 ] = &&LABEL_FILTER_OP_UNARY_MINUS_S64,
+ [ FILTER_OP_UNARY_NOT_S64 ] = &&LABEL_FILTER_OP_UNARY_NOT_S64,
+ [ FILTER_OP_UNARY_PLUS_DOUBLE ] = &&LABEL_FILTER_OP_UNARY_PLUS_DOUBLE,
+ [ FILTER_OP_UNARY_MINUS_DOUBLE ] = &&LABEL_FILTER_OP_UNARY_MINUS_DOUBLE,
+ [ FILTER_OP_UNARY_NOT_DOUBLE ] = &&LABEL_FILTER_OP_UNARY_NOT_DOUBLE,
+
+ /* logical */
+ [ FILTER_OP_AND ] = &&LABEL_FILTER_OP_AND,
+ [ FILTER_OP_OR ] = &&LABEL_FILTER_OP_OR,
+
+ /* load */
+ [ FILTER_OP_LOAD_FIELD_REF ] = &&LABEL_FILTER_OP_LOAD_FIELD_REF,
+ [ FILTER_OP_LOAD_FIELD_REF_STRING ] = &&LABEL_FILTER_OP_LOAD_FIELD_REF_STRING,
+ [ FILTER_OP_LOAD_FIELD_REF_SEQUENCE ] = &&LABEL_FILTER_OP_LOAD_FIELD_REF_SEQUENCE,
+ [ FILTER_OP_LOAD_FIELD_REF_S64 ] = &&LABEL_FILTER_OP_LOAD_FIELD_REF_S64,
+ [ FILTER_OP_LOAD_FIELD_REF_DOUBLE ] = &&LABEL_FILTER_OP_LOAD_FIELD_REF_DOUBLE,
+
+ [ FILTER_OP_LOAD_STRING ] = &&LABEL_FILTER_OP_LOAD_STRING,
+ [ FILTER_OP_LOAD_S64 ] = &&LABEL_FILTER_OP_LOAD_S64,
+ [ FILTER_OP_LOAD_DOUBLE ] = &&LABEL_FILTER_OP_LOAD_DOUBLE,
+ };
+#endif /* #ifndef INTERPRETER_USE_SWITCH */
+
+ START_OP
+
+ OP(FILTER_OP_UNKNOWN):
+ OP(FILTER_OP_LOAD_FIELD_REF):
+#ifdef INTERPRETER_USE_SWITCH