27 p->notin_flagspace =
NULL;
33 p->localvar_only =
false;
48 itsFine =
foo->init(
p,
p->user);
60 rz_list_foreach (
p->parsers,
iter,
h) {
61 if (!strcmp(
h->name,
name)) {
78 if (
p->cur &&
p->cur->assemble) {
79 o = data + strlen(data);
85 ret =
p->cur->assemble(
p, o,
str);
119 if (!
p->cur || !
p->cur->parse || !
p->cur->parse(
p, assembly,
sb)) {
131 char *
n = strstr(
opstr,
"0x");
137 memmove(
n,
p, strlen(
p) + 1);
139 if (strstr(
opstr,
" - ]")) {
142 if (strstr(
opstr,
" + ]")) {
145 if (strstr(
opstr,
", ]")) {
148 if (strstr(
opstr,
" - ")) {
151 if (strstr(
opstr,
" + ")) {
168 if (
p->cur &&
p->cur->subvar) {
static int opstr(RzAsm *a, ut8 *data, const Opcode *op)
const lzma_allocator const uint8_t * in
#define RZ_PARSE_STATIC_PLUGINS
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API RZ_OWN RzList * rz_list_newf(RzListFree f)
Returns a new initialized RzList pointer and sets the free method.
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.
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
RZ_API char * rz_parse_immtrim(char *opstr)
RZ_API void rz_parse_set_user_ptr(RzParse *p, void *user)
RZ_API void rz_parse_free(RzParse *p)
RZ_API char * rz_parse_pseudocode(RzParse *p, const char *assembly)
Converts the assembly line into pseudocode.
RZ_API bool rz_parse_add(RzParse *p, RzParsePlugin *foo)
RZ_API RzParse * rz_parse_new(void)
static RzParsePlugin * parse_static_plugins[]
RZ_API bool rz_parse_use(RzParse *p, const char *name)
RZ_API bool rz_parse_subvar(RzParse *p, RZ_NULLABLE RzAnalysisFunction *f, RZ_NONNULL RzAnalysisOp *op, RZ_NONNULL RZ_IN char *data, RZ_BORROW RZ_NONNULL RZ_OUT char *str, int len)
RZ_API bool rz_parse_assemble(RzParse *p, char *data, char *str)
#define rz_return_val_if_fail(expr, val)
#define RZ_STR_ISEMPTY(x)
RZ_API char * rz_str_replace(char *str, const char *key, const char *val, int g)
RZ_API RZ_OWN char * rz_strbuf_drain(RzStrBuf *sb)
RZ_API bool rz_strbuf_reserve(RzStrBuf *sb, size_t len)
RZ_API RzStrBuf * rz_strbuf_new(const char *s)
RZ_API void rz_strbuf_free(RzStrBuf *sb)