mie: select: implement comparison operation processing
This commit is contained in:
@@ -50,8 +50,20 @@ DEFINE_PUSH_FUNCTION(add, MIE_SELECT_OP_ADD);
|
||||
DEFINE_PUSH_FUNCTION(sub, MIE_SELECT_OP_SUB);
|
||||
DEFINE_PUSH_FUNCTION(mul, MIE_SELECT_OP_MUL);
|
||||
DEFINE_PUSH_FUNCTION(div, MIE_SELECT_OP_DIV);
|
||||
DEFINE_PUSH_FUNCTION(cmp_eq, MIE_SELECT_OP_CMP_EQ);
|
||||
DEFINE_PUSH_FUNCTION(cmp_neq, MIE_SELECT_OP_CMP_NEQ);
|
||||
DEFINE_PUSH_FUNCTION(cmp_lt, MIE_SELECT_OP_CMP_LT);
|
||||
DEFINE_PUSH_FUNCTION(cmp_gt, MIE_SELECT_OP_CMP_GT);
|
||||
DEFINE_PUSH_FUNCTION(cmp_leq, MIE_SELECT_OP_CMP_LEQ);
|
||||
DEFINE_PUSH_FUNCTION(cmp_geq, MIE_SELECT_OP_CMP_GEQ);
|
||||
|
||||
DEFINE_OP(add);
|
||||
DEFINE_OP(sub);
|
||||
DEFINE_OP(mul);
|
||||
DEFINE_OP(div);
|
||||
DEFINE_OP(cmp_eq);
|
||||
DEFINE_OP(cmp_neq);
|
||||
DEFINE_OP(cmp_lt);
|
||||
DEFINE_OP(cmp_gt);
|
||||
DEFINE_OP(cmp_leq);
|
||||
DEFINE_OP(cmp_geq);
|
||||
|
||||
@@ -11,15 +11,24 @@ DECLARE_INSTR_TYPE(add);
|
||||
DECLARE_INSTR_TYPE(sub);
|
||||
DECLARE_INSTR_TYPE(mul);
|
||||
DECLARE_INSTR_TYPE(div);
|
||||
DECLARE_INSTR_TYPE(cmp_eq);
|
||||
DECLARE_INSTR_TYPE(cmp_neq);
|
||||
DECLARE_INSTR_TYPE(cmp_lt);
|
||||
DECLARE_INSTR_TYPE(cmp_gt);
|
||||
DECLARE_INSTR_TYPE(cmp_leq);
|
||||
DECLARE_INSTR_TYPE(cmp_geq);
|
||||
DECLARE_INSTR_TYPE(load);
|
||||
DECLARE_INSTR_TYPE(store);
|
||||
DECLARE_INSTR_TYPE(msg);
|
||||
|
||||
static const struct select_instr_type *instr_types[] = {
|
||||
INSTR_TYPE_ENTRY(ALLOCA, alloca), INSTR_TYPE_ENTRY(ADD, add),
|
||||
INSTR_TYPE_ENTRY(SUB, sub), INSTR_TYPE_ENTRY(MUL, mul),
|
||||
INSTR_TYPE_ENTRY(DIV, div), INSTR_TYPE_ENTRY(LOAD, load),
|
||||
INSTR_TYPE_ENTRY(STORE, store), INSTR_TYPE_ENTRY(MSG, msg),
|
||||
INSTR_TYPE_ENTRY(ALLOCA, alloca), INSTR_TYPE_ENTRY(LOAD, load),
|
||||
INSTR_TYPE_ENTRY(STORE, store), INSTR_TYPE_ENTRY(MSG, msg),
|
||||
INSTR_TYPE_ENTRY(ADD, add), INSTR_TYPE_ENTRY(SUB, sub),
|
||||
INSTR_TYPE_ENTRY(MUL, mul), INSTR_TYPE_ENTRY(DIV, div),
|
||||
INSTR_TYPE_ENTRY(CMP_EQ, cmp_eq), INSTR_TYPE_ENTRY(CMP_NEQ, cmp_neq),
|
||||
INSTR_TYPE_ENTRY(CMP_LT, cmp_lt), INSTR_TYPE_ENTRY(CMP_GT, cmp_gt),
|
||||
INSTR_TYPE_ENTRY(CMP_LEQ, cmp_leq), INSTR_TYPE_ENTRY(CMP_GEQ, cmp_geq),
|
||||
};
|
||||
static const size_t nr_instr_types = sizeof instr_types / sizeof instr_types[0];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user