res = (stack_strcmp(stack, "==") == 0);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (stack_strcmp(stack, "!=") != 0);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (stack_strcmp(stack, ">") > 0);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (stack_strcmp(stack, "<") < 0);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (stack_strcmp(stack, ">=") >= 0);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (stack_strcmp(stack, "<=") <= 0);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v == estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v != estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v > estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v < estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v >= estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v <= estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d == estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d != estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d > estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d < estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d >= estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d <= estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d == estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d != estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d > estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d < estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d >= estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.d <= estack_ax(stack)->u.v);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v == estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v != estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v > estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v < estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v >= estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
res = (estack_bx(stack)->u.v <= estack_ax(stack)->u.d);
estack_pop(stack);
estack_ax(stack)->u.v = res;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct binary_op);
PO;
}
ret = -EINVAL;
goto end;
}
- estack_ax(stack)->type = REG_STRING;
estack_ax(stack)->u.s.seq_len = UINT_MAX;
estack_ax(stack)->u.s.literal = 0;
dbg_printf("ref load string %s\n", estack_ax(stack)->u.s.str);
ret = -EINVAL;
goto end;
}
- estack_ax(stack)->type = REG_STRING;
estack_ax(stack)->u.s.literal = 0;
next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
PO;
estack_push(stack);
memcpy(&estack_ax(stack)->u.v, &filter_stack_data[ref->offset],
sizeof(struct literal_numeric));
- estack_ax(stack)->type = REG_S64;
dbg_printf("ref load s64 %" PRIi64 "\n", estack_ax(stack)->u.v);
next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
PO;
estack_push(stack);
memcpy(&estack_ax(stack)->u.d, &filter_stack_data[ref->offset],
sizeof(struct literal_double));
- estack_ax(stack)->type = REG_DOUBLE;
dbg_printf("ref load double %g\n", estack_ax(stack)->u.d);
next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
PO;
dbg_printf("load string %s\n", insn->data);
estack_push(stack);
- estack_ax(stack)->type = REG_STRING;
estack_ax(stack)->u.s.str = insn->data;
estack_ax(stack)->u.s.seq_len = UINT_MAX;
estack_ax(stack)->u.s.literal = 1;
memcpy(&estack_ax(stack)->u.v, insn->data,
sizeof(struct literal_numeric));
dbg_printf("load s64 %" PRIi64 "\n", estack_ax(stack)->u.v);
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct load_op)
+ sizeof(struct literal_numeric);
PO;
memcpy(&estack_ax(stack)->u.d, insn->data,
sizeof(struct literal_double));
dbg_printf("load s64 %g\n", estack_ax(stack)->u.d);
- estack_ax(stack)->type = REG_DOUBLE;
next_pc += sizeof(struct load_op)
+ sizeof(struct literal_double);
PO;
OP(FILTER_OP_CAST_DOUBLE_TO_S64):
{
estack_ax(stack)->u.v = (int64_t) estack_ax(stack)->u.d;
- estack_ax(stack)->type = REG_S64;
next_pc += sizeof(struct cast_op);
PO;
}