32 RZ_LOG_ERROR(
"RzIL: reading value of variable \"%s\" of kind %s failed.\n",
RZ_API RzILBool * rz_il_bool_new(bool true_or_false)
RZ_API void rz_il_bool_free(RzILBool *bool_var)
RZ_API RZ_OWN RzILEvent * rz_il_event_var_read_new(RZ_NONNULL const char *name, RZ_NULLABLE const RzILVal *value)
RZ_API RzILLocalPurePrev rz_il_vm_push_local_pure_var(RZ_NONNULL RzILVM *vm, RZ_NONNULL const char *name, RzILVal *val)
Create and assign a new local let binding.
RZ_API void rz_il_vm_pop_local_pure_var(RZ_NONNULL RzILVM *vm, RZ_NONNULL const char *name, RzILLocalPurePrev prev)
Remove a local let binding and restore the state for the outer context.
RZ_API RZ_BORROW RzILVal * rz_il_vm_get_var_value(RZ_NONNULL RzILVM *vm, RzILVarKind kind, const char *name)
RZ_API RZ_NULLABLE RZ_OWN void * rz_il_evaluate_pure(RZ_NONNULL RzILVM *vm, RZ_NONNULL RzILOpPure *op, RZ_NONNULL RzILTypePure *type)
RZ_API void rz_il_vm_event_add(RzILVM *vm, RzILEvent *evt)
RZ_API RZ_NULLABLE RZ_OWN RzILBool * rz_il_evaluate_bool(RZ_NONNULL RzILVM *vm, RZ_NONNULL RzILOpBool *op)
RZ_API RZ_NULLABLE RZ_OWN RzILVal * rz_il_evaluate_val(RZ_NONNULL RzILVM *vm, RZ_NONNULL RzILOpPure *op)
#define rz_return_val_if_fail(expr, val)
RZ_API RZ_OWN RzBitVector * rz_bv_dup(const RZ_NONNULL RzBitVector *bv)
signatures of core theory opcodes
RZ_NULLABLE RzILVal * RzILLocalPurePrev
#define RZ_LOG_ERROR(fmtstr,...)
@ RZ_IL_TYPE_PURE_BITVECTOR
op structure for ite (bool -> 'a pure -> 'a pure -> 'a pure)
RzILOpPure * y
index of RzILVal operand 2
RzILOpPure * x
index of RzILVal operand 1
RzILOpBool * condition
index of BOOL condition
op structure for let_ : 'a var -> 'a pure -> 'b pure -> 'b pure
op structure for var ('a var -> 'a pure)
RzILVarKind kind
set of variables to pick from
const char * v
name of variable, const one
An IL op performing a pure computation, 'a pure.
Low-level VM to execute raw IL code.
void * rz_il_handler_ite(RzILVM *vm, RzILOpPure *op, RzILTypePure *type)
void * rz_il_handler_let(RzILVM *vm, RzILOpPure *op, RzILTypePure *type)
bool rz_il_handler_effect_unimplemented(RzILVM *vm, RzILOpEffect *op)
void * rz_il_handler_pure_unimplemented(RzILVM *vm, RzILOpPure *op, RzILTypePure *type)
void * rz_il_handler_var(RzILVM *vm, RzILOpPure *op, RzILTypePure *type)
const char * rz_il_var_kind_name(RzILVarKind kind)
@ RZ_IL_VAR_KIND_GLOBAL
global var, usually bound to a physical representation like a register.