+ 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;
+ }
+
+ /* Mixed S64-double binary comparators */
+ OP(FILTER_OP_EQ_DOUBLE_S64):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_NE_DOUBLE_S64):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_GT_DOUBLE_S64):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_LT_DOUBLE_S64):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_GE_DOUBLE_S64):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_LE_DOUBLE_S64):
+ {
+ int res;
+
+ 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;
+ }
+
+ OP(FILTER_OP_EQ_S64_DOUBLE):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_NE_S64_DOUBLE):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_GT_S64_DOUBLE):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_LT_S64_DOUBLE):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_GE_S64_DOUBLE):
+ {
+ int res;
+
+ 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;
+ }
+ OP(FILTER_OP_LE_S64_DOUBLE):
+ {
+ int res;
+
+ res = (estack_bx(stack)->u.v <= estack_ax(stack)->u.d);