X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttng-filter-specialize.c;h=c0c3e11042fab0db646419807dec340c3330e89a;hb=20cac8305d09ebb92964aae8917098535d741354;hp=7112b0ae0aa3ec3f75ddc48cdb08bb60ad8468f2;hpb=3834b99f4341209754c4955ec853dc250b33ed4b;p=lttng-modules.git diff --git a/lttng-filter-specialize.c b/lttng-filter-specialize.c index 7112b0ae..c0c3e110 100644 --- a/lttng-filter-specialize.c +++ b/lttng-filter-specialize.c @@ -518,6 +518,7 @@ int lttng_filter_specialize_bytecode(struct lttng_event *event, goto end; case FILTER_OP_RETURN: + case FILTER_OP_RETURN_S64: ret = 0; goto end; @@ -527,8 +528,6 @@ int lttng_filter_specialize_bytecode(struct lttng_event *event, case FILTER_OP_MOD: case FILTER_OP_PLUS: case FILTER_OP_MINUS: - case FILTER_OP_RSHIFT: - case FILTER_OP_LSHIFT: printk(KERN_WARNING "unsupported bytecode op %u\n", (unsigned int) *(filter_opcode_t *) pc); ret = -EINVAL; @@ -804,6 +803,8 @@ int lttng_filter_specialize_bytecode(struct lttng_event *event, case FILTER_OP_LT_S64_DOUBLE: case FILTER_OP_GE_S64_DOUBLE: case FILTER_OP_LE_S64_DOUBLE: + case FILTER_OP_BIT_RSHIFT: + case FILTER_OP_BIT_LSHIFT: case FILTER_OP_BIT_AND: case FILTER_OP_BIT_OR: case FILTER_OP_BIT_XOR: @@ -885,6 +886,13 @@ int lttng_filter_specialize_bytecode(struct lttng_event *event, break; } + case FILTER_OP_UNARY_BIT_NOT: + { + /* Pop 1, push 1 */ + next_pc += sizeof(struct unary_op); + break; + } + case FILTER_OP_UNARY_PLUS_S64: case FILTER_OP_UNARY_MINUS_S64: case FILTER_OP_UNARY_NOT_S64: