11 "gpr",
"drx",
"fpu",
"mmx",
"xmm",
"ymm",
"flg",
"seg",
"sys",
"sec",
"vc",
"vcc",
"ctr",
NULL
22 rz_list_foreach (
reg->regset[
i].regs,
iter, item) {
31 rz_list_foreach (
reg->regset[
i].regs,
iter, item) {
49 rz_list_foreach (
reg->regset[
i].regs,
iter, item) {
58 rz_list_foreach (
reg->regset[
i].regs,
iter, item) {
90 if (!strcmp(
str,
"all")) {
149 return reg->name[role];
164 "PC",
"SP",
"SR",
"BP",
"LR",
165 "A0",
"A1",
"A2",
"A3",
"A4",
"A5",
"A6",
"A7",
"A8",
"A9",
166 "R0",
"R1",
"R2",
"R3",
167 "ZF",
"SF",
"CF",
"OF",
201 reg->reg_profile.alias = 0;
202 reg->reg_profile.defs = 0;
210 ht_pp_free(
reg->regset[
i].ht_regs);
212 if (!
reg->regset[
i].pool) {
238 int offa = (
a->offset * 16) +
a->size;
239 int offb = (
b->offset * 16) +
b->size;
240 return (offa > offb) - (offa < offb);
249 rz_list_foreach (
reg->regset[
i].regs,
iter,
r) {
271 rz_list_foreach (
reg->allregs,
iter,
r) {
272 if (
r->index ==
idx) {
302 reg->regset[
i].arena = arena;
306 reg->regset[
i].cur = rz_list_tail(
reg->regset[
i].pool);
366 HtPP *pp =
reg->regset[
i].ht_regs;
404 if (
reg->regset[
i].maskregstype &
mask) {
420 if (ri->
size == regsize) {
436 int prev_offset = prev_ri ? (prev_ri->
offset / 8) + (prev_ri->
size / 8) : 0;
443 if (
offset > prev_offset) {
464 if (from_list == from_tree) {
499 rz_list_foreach (
regs, it, item) {
505 rz_list_foreach (
regs, it, item) {
RZ_API int rz_reg_arena_push(RzReg *reg)
RZ_API RzRegArena * rz_reg_arena_new(size_t size)
RZ_API void rz_reg_arena_free(RzRegArena *ra)
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API const KEY_TYPE bool * found
static void list(RzEgg *egg)
RZ_API RZ_OWN RzList * rz_list_newf(RzListFree f)
Returns a new initialized RzList pointer and sets the free method.
RZ_API bool rz_list_delete_data(RZ_NONNULL RzList *list, void *ptr)
Deletes an entry in the list by searching for a pointer.
RZ_API RZ_OWN RzList * rz_list_new(void)
Returns a new initialized RzList pointer (free method is not initialized)
RZ_API void rz_list_sort(RZ_NONNULL RzList *list, RZ_NONNULL RzListComparator cmp)
Sorts via merge sort or via insertion sort a list.
RZ_API RZ_BORROW RzListIter * rz_list_push(RZ_NONNULL RzList *list, void *item)
Alias for rz_list_append.
RZ_API ut32 rz_list_length(RZ_NONNULL const RzList *list)
Returns the length of the list.
RZ_API RZ_BORROW RzListIter * rz_list_append(RZ_NONNULL RzList *list, void *data)
Appends at the end of the list a new element.
RZ_API void rz_list_free(RZ_NONNULL RzList *list)
Empties the list and frees the list pointer.
RZ_API void rz_reg_reindex(RzReg *reg)
RZ_API ut64 rz_reg_getv(RzReg *reg, const char *name)
RZ_API RzRegItem * rz_reg_get_at(RzReg *reg, int type, int regsize, int delta)
RZ_API RzRegItem * rz_reg_get(RzReg *reg, const char *name, int type)
RZ_API const char * rz_reg_64_to_32(RzReg *reg, const char *rreg64)
RZ_API const char * rz_reg_get_name_by_type(RzReg *reg, const char *alias_name)
RZ_API const char * rz_reg_get_name(RzReg *reg, int role)
RZ_API int rz_reg_get_name_idx(const char *type)
static const char * roles[RZ_REG_NAME_LAST+1]
RZ_API RzRegItem * rz_reg_get_by_role(RzReg *reg, RzRegisterId role)
RZ_API bool rz_reg_is_readonly(RzReg *reg, RzRegItem *item)
RZ_API void rz_reg_free(RzReg *reg)
RZ_API int rz_reg_role_by_name(RZ_NONNULL const char *str)
Get the RzRegisterId with the given name or -1.
RZ_API RzRegItem * rz_reg_index_get(RzReg *reg, int idx)
RZ_API RzReg * rz_reg_new(void)
RZ_API ut64 rz_reg_setv(RzReg *reg, const char *name, ut64 val)
RZ_API RzRegItem * rz_reg_get_by_role_or_name(RzReg *reg, const char *name)
static const char * types[RZ_REG_TYPE_LAST+1]
RZ_API RzRegSet * rz_reg_regset_get(RzReg *r, int type)
RZ_API int rz_reg_type_by_name(const char *str)
Returns the register type for the given type abbreviation.
RZ_API void rz_reg_free_internal(RzReg *reg, bool init)
RZ_API const char * rz_reg_get_type(int idx)
RZ_API void rz_reg_item_free(RzRegItem *item)
RZ_API const RzList * rz_reg_get_list(RzReg *reg, int type)
RZ_API RzRegItem * rz_reg_next_diff(RzReg *reg, int type, const ut8 *buf, int buflen, RzRegItem *prev_ri, int regsize)
static bool foreach_reg_cb(RzIntervalNode *node, void *user)
RZ_API bool rz_reg_set_name(RZ_NONNULL RzReg *reg, RzRegisterId role, RZ_NONNULL const char *name)
static int regcmp(RzRegItem *a, RzRegItem *b)
RZ_API const char * rz_reg_get_role(int role)
RZ_API ut64 rz_reg_getv_by_role_or_name(RzReg *reg, const char *name)
RZ_API RZ_OWN RzList * rz_reg_filter_items_covered(RZ_BORROW RZ_NONNULL const RzList *regs)
Filter out all register items that are smaller than but covered entirely by some other register.
RZ_API const char * rz_reg_32_to_64(RzReg *reg, const char *rreg32)
RZ_API bool rz_reg_set_value(RzReg *reg, RzRegItem *item, ut64 value)
RZ_API ut64 rz_reg_get_value(RzReg *reg, RzRegItem *item)
#define rz_return_if_fail(expr)
#define rz_return_val_if_fail(expr, val)
RZ_API bool rz_interval_tree_all_in(RzIntervalTree *tree, ut64 value, bool end_inclusive, RzIntervalIterCb cb, void *user)
RZ_API void rz_interval_tree_init(RzIntervalTree *tree, RzIntervalNodeFree free)
RZ_API bool rz_interval_tree_insert(RzIntervalTree *tree, ut64 start, ut64 end, void *data)
RZ_API void rz_interval_tree_fini(RzIntervalTree *tree)
void(* RzListFree)(void *ptr)
int(* RzListComparator)(const void *value, const void *list_data)
RZ_API int rz_str_casecmp(const char *dst, const char *orig)
RZ_API char * rz_str_dup(char *ptr, const char *string)
int size
in bits> 8,16,32,64 ... 128/256
int offset
Offset into register profile in bits.
ut64(WINAPI *w32_GetEnabledXStateFeatures)()