Fix il vm aezi and aezs sync behavior (#3611)
This commit is contained in:
parent
2239fa4402
commit
c648b8ae10
3 changed files with 8 additions and 3 deletions
|
|
@ -436,6 +436,9 @@ RZ_IPI void rz_core_analysis_il_reinit(RzCore *core) {
|
|||
// initialize the program counter with the current offset
|
||||
rz_reg_set_value_by_role(core->analysis->reg, RZ_REG_NAME_PC, core->offset);
|
||||
rz_core_reg_update_flags(core);
|
||||
|
||||
// sync back to il vm
|
||||
rz_analysis_il_vm_sync_from_reg(core->analysis->il_vm, core->analysis->reg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -483,6 +486,7 @@ RZ_IPI bool rz_core_analysis_il_vm_set(RzCore *core, const char *var_name, ut64
|
|||
}
|
||||
if (val) {
|
||||
rz_il_vm_set_global_var(vm->vm, var_name, val);
|
||||
rz_analysis_il_vm_sync_to_reg(vm, core->analysis->reg);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -602,7 +602,7 @@ VALIDATOR_PURE(fconvert) {
|
|||
VALIDATOR_DESCEND(args->f, &sort);
|
||||
VALIDATOR_ASSERT(sort.type == RZ_IL_TYPE_PURE_FLOAT, "operand of %s op is not a float.\n", rz_il_op_pure_code_stringify(op->code));
|
||||
|
||||
*sort_out = sort;
|
||||
*sort_out = rz_il_sort_pure_float(args->format);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -87,8 +87,6 @@
|
|||
#define FMOD(rmode, flx, fly) rz_il_op_new_fdiv(rmode, flx, fly)
|
||||
#define FPOW(rmode, flx, fly) rz_il_op_new_fpow(rmode, flx, fly)
|
||||
#define FMAD(rmode, flx, fly, flz) rz_il_op_new_fmad(rmode, flx, fly, flz)
|
||||
#define FNEQ(flx, fly) OR(FORDER(flx, fly), FORDER(DUP(flx), DUP(fly)))
|
||||
#define FEQ(flx, fly) NOT(FNEQ(flx, fly))
|
||||
|
||||
#define IL_FALSE rz_il_op_new_b0()
|
||||
#define IL_TRUE rz_il_op_new_b1()
|
||||
|
|
@ -97,6 +95,9 @@
|
|||
#define AND(x, y) rz_il_op_new_bool_and(x, y)
|
||||
#define OR(x, y) rz_il_op_new_bool_or(x, y)
|
||||
|
||||
#define FNEQ(flx, fly) OR(FORDER(flx, fly), FORDER(DUP(flx), DUP(fly)))
|
||||
#define FEQ(flx, fly) INV(FNEQ(flx, fly))
|
||||
|
||||
#define UNSIGNED(n, x) rz_il_op_new_unsigned(n, x)
|
||||
#define SIGNED(n, x) rz_il_op_new_signed(n, x)
|
||||
#define APPEND(high, low) rz_il_op_new_append(high, low)
|
||||
|
|
|
|||
Loading…
Reference in a new issue