X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Flttng-bytecode-specialize.c;h=1ad577a32fb1af3039001fc1eb5cef6b8d2e894c;hb=29a574c31cacca0367653c8a197c9ef519f89203;hp=83ba6f55b8e2d1a74c7c5c01752bcf64f7a9ee99;hpb=80c2a69a8298768c9010052e6c3668914191b9e7;p=lttng-modules.git diff --git a/src/lttng-bytecode-specialize.c b/src/lttng-bytecode-specialize.c index 83ba6f55..1ad577a3 100644 --- a/src/lttng-bytecode-specialize.c +++ b/src/lttng-bytecode-specialize.c @@ -95,6 +95,10 @@ static int specialize_load_field(struct vstack_entry *stack_top, if (!stack_top->load.rev_bo) insn->op = BYTECODE_OP_LOAD_FIELD_S64; break; + case OBJECT_TYPE_SIGNED_ENUM: + dbg_printk("op load field signed enumeration\n"); + stack_top->type = REG_PTR; + break; case OBJECT_TYPE_U8: dbg_printk("op load field u8\n"); stack_top->type = REG_S64; @@ -118,6 +122,10 @@ static int specialize_load_field(struct vstack_entry *stack_top, if (!stack_top->load.rev_bo) insn->op = BYTECODE_OP_LOAD_FIELD_U64; break; + case OBJECT_TYPE_UNSIGNED_ENUM: + dbg_printk("op load field unsigned enumeration\n"); + stack_top->type = REG_PTR; + break; case OBJECT_TYPE_DOUBLE: printk(KERN_WARNING "LTTng: bytecode: Double type unsupported\n\n"); ret = -EINVAL; @@ -328,9 +336,9 @@ static int specialize_load_object(const struct lttng_event_field *field, &field->type.u.enum_nestable.container_type->u.integer; if (itype->signedness) - load->object_type = OBJECT_TYPE_S64; + load->object_type = OBJECT_TYPE_SIGNED_ENUM; else - load->object_type = OBJECT_TYPE_U64; + load->object_type = OBJECT_TYPE_UNSIGNED_ENUM; load->rev_bo = false; break; }