X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=win32%2FfirmEvaluator%2Ffirm.c;h=6494a54a0c7afd029e1ff81071746c82a2e61efa;hb=7872ad07aaad9c53b8655e3d8947065557e0cbc0;hp=b0d4108ad3e54b4af6ee1e9223003d7bfd5d68bc;hpb=e4f9141ff9e0b71b29c10e30060921d05a062f48;p=libfirm diff --git a/win32/firmEvaluator/firm.c b/win32/firmEvaluator/firm.c index b0d4108ad..6494a54a0 100644 --- a/win32/firmEvaluator/firm.c +++ b/win32/firmEvaluator/firm.c @@ -17,7 +17,7 @@ #include "array_t.h" #define NDEBUG #else -#include "array.h" +#include "array_t.h" #endif #include "entity_t.h" @@ -28,6 +28,7 @@ #include "irloop_t.h" #include "irextbb_t.h" #include "irprog_t.h" +#include "compound_path_t.h" #include "tpop_t.h" #include "strcalc.h" #include "fltcalc.h" @@ -43,7 +44,8 @@ #define ADD_ADR(p, off) ((void *)((char *)(p) + (off))) /** debug output */ -static void debug(char *fmt, ...) { +static void debug(char *fmt, ...) +{ va_list ap; char buf[1024]; @@ -57,7 +59,8 @@ static void debug(char *fmt, ...) { /** * return the size of a firm object */ -int get_firm_object_size(firm_kind kind) { +int get_firm_object_size(firm_kind kind) +{ switch (kind) { case k_entity: /* an entity */ return sizeof(ir_entity); @@ -110,7 +113,8 @@ static int strlen_debuggee(DEBUGHELPER *pHelper, const void *address, size_t max /** * Format an ident */ -HRESULT format_ident(DEBUGHELPER *pHelper, const void *address, char *pResult, size_t max) { +HRESULT format_ident(DEBUGHELPER *pHelper, const void *address, char *pResult, size_t max) +{ set_entry *data = NULL; set_entry id; size_t len, slen; @@ -157,7 +161,6 @@ static HRESULT format_tp_op(DEBUGHELPER *pHelper, const void *addr, char *pResul Y(enumeration, "enum"); Y(pointer, "ptr"); Y(primitive, "prim"); - X(id); X(none); X(unknown); default: @@ -172,7 +175,8 @@ static HRESULT format_tp_op(DEBUGHELPER *pHelper, const void *addr, char *pResul * * @param type the address of the type in debuggee's space */ -static HRESULT is_global_type(DEBUGHELPER *pHelper, const void *type, int *flag) { +static HRESULT is_global_type(DEBUGHELPER *pHelper, const void *type, int *flag) +{ ir_type tp; *flag = 0; @@ -186,7 +190,8 @@ static HRESULT is_global_type(DEBUGHELPER *pHelper, const void *type, int *flag) /** * format an entity */ -static HRESULT format_entity(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) { +static HRESULT format_entity(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) +{ ir_entity ent; ir_type owner; char name[256]; @@ -230,10 +235,25 @@ static HRESULT format_entity(DEBUGHELPER *pHelper, int nBase, const void *addr, return S_OK; } /* format_entity */ +/** + * format an ir_mode + */ +static HRESULT format_mode(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max) +{ + ir_mode mode; + + if (copy_from_debuggee(addr, pHelper, &mode, sizeof(mode)) != S_OK) + return E_FAIL; + if (format_ident(pHelper, mode.name, pResult, max) != S_OK) + return E_FAIL; + return S_OK; +} /* format_mode */ + /** * format a type */ -static HRESULT format_type(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) { +static HRESULT format_type(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) +{ ir_type tp; char name[256]; @@ -248,8 +268,14 @@ static HRESULT format_type(DEBUGHELPER *pHelper, int nBase, const void *addr, ch _tcsncat(pResult, " ", max); } - if (format_ident(pHelper, tp.name, name, sizeof(name)) != S_OK) - return E_FAIL; + name[0] = '\0'; + if (tp.name) { + if (format_ident(pHelper, tp.name, name, sizeof(name)) != S_OK) + return E_FAIL; + } else { + if (format_mode(pHelper, tp.mode, name, sizeof(name)) != S_OK) + return E_FAIL; + } _tcsncat(pResult, name, max); switch (nBase) { @@ -270,7 +296,8 @@ static HRESULT format_type(DEBUGHELPER *pHelper, int nBase, const void *addr, ch /** * format an irg */ -static HRESULT format_irg(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) { +static HRESULT format_irg(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) +{ ir_graph irg; char name[256]; @@ -322,7 +349,8 @@ static HRESULT format_irg(DEBUGHELPER *pHelper, int nBase, const void *addr, cha /** * format an ir_op */ -HRESULT format_op(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max) { +HRESULT format_op(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max) +{ ir_op op; if (copy_from_debuggee(addr, pHelper, &op, sizeof(op)) != S_OK) @@ -332,19 +360,6 @@ HRESULT format_op(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t return S_OK; } /* format_op */ -/** - * format an ir_mode - */ -static HRESULT format_mode(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max) { - ir_mode mode; - - if (copy_from_debuggee(addr, pHelper, &mode, sizeof(mode)) != S_OK) - return E_FAIL; - if (format_ident(pHelper, mode.name, pResult, max) != S_OK) - return E_FAIL; - return S_OK; -} /* format_mode */ - /** get a temporary string */ #define get_string(str) \ do { \ @@ -360,7 +375,7 @@ do { \ s[len] = '\0'; \ str = s; \ } \ -} while(0) +} while (0) /** * format a tarval @@ -468,7 +483,8 @@ static HRESULT format_tarval(DEBUGHELPER *pHelper, int nBase, const void *addr, /** * format an ir_node */ -static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) { +static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) +{ ir_node n; char name[256]; ir_op op; @@ -491,7 +507,7 @@ static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, ch /* show show node attributes */ switch (op.code) { case iro_Const: - if (format_tarval(pHelper, nBase, n.attr.con.tv, name, sizeof(name)) != S_OK) { + if (format_tarval(pHelper, nBase, n.attr.con.tarval, name, sizeof(name)) != S_OK) { _tcsncat(pResult, "", max); } else { @@ -521,12 +537,6 @@ static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, ch return E_FAIL; _tcsncat(pResult, name, max); break; - case symconst_addr_name: - _tcsncat(pResult, "NAME:", max); - if (format_ident(pHelper, n.attr.symc.sym.ident_p, name, sizeof(name)) != S_OK) - return E_FAIL; - _tcsncat(pResult, name, max); - break; case symconst_addr_ent: _tcsncat(pResult, "ENT:", max); if (format_entity(pHelper, nBase, n.attr.symc.sym.entity_p, name, sizeof(name), 0) != S_OK) @@ -545,7 +555,7 @@ static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, ch break; case iro_Cast: _tcsncat(pResult, "<", max); - if (format_type(pHelper, nBase, n.attr.cast.totype, name, sizeof(name), 0) != S_OK) + if (format_type(pHelper, nBase, n.attr.cast.type, name, sizeof(name), 0) != S_OK) return E_FAIL; _tcsncat(pResult, name, max); _tcsncat(pResult, ">", max); @@ -570,7 +580,7 @@ static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, ch break; case iro_CopyB: _tcsncat(pResult, "<", max); - if (format_type(pHelper, nBase, n.attr.copyb.data_type, name, sizeof(name), 0) != S_OK) + if (format_type(pHelper, nBase, n.attr.copyb.type, name, sizeof(name), 0) != S_OK) return E_FAIL; _tcsncat(pResult, name, max); _tcsncat(pResult, ">", max); @@ -619,7 +629,8 @@ static HRESULT get_array_desc(DEBUGHELPER *pHelper, const void *address, ir_arr_ /** * format an extended block */ -static HRESULT format_extblk(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max){ +static HRESULT format_extblk(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max) +{ ir_extblk extbb; ir_arr_descr blocks; ir_node *blks = NULL; @@ -831,7 +842,8 @@ struct set { * Find the longest chain of a pset */ static HRESULT find_longest_pset_chain(DEBUGHELPER *pHelper, pset *set, - int *chains, int *lenght, size_t *size) { + int *chains, int *lenght, size_t *size) +{ unsigned i, j; pset_Segment *seg, *curr; pset_Element elem; @@ -871,7 +883,8 @@ static HRESULT find_longest_pset_chain(DEBUGHELPER *pHelper, pset *set, * Find the longest chain of a set */ static HRESULT find_longest_set_chain(DEBUGHELPER *pHelper, set *set, - int *chains, int *lenght, size_t *size) { + int *chains, int *lenght, size_t *size) +{ unsigned i, j; set_Segment *seg, *curr; set_Element elem; @@ -1038,15 +1051,16 @@ HRESULT format_pdeq(DEBUGHELPER *pHelper, int nBase, const void *address, char * } /* format_pdeq */ /** show the first 2 units */ -static HRESULT fill_bits(DEBUGHELPER *pHelper, bitset_t *bs, char *pResult) { - bitset_pos_t i, units = bs->units; +static HRESULT fill_bits(DEBUGHELPER *pHelper, bitset_t *bs, char *pResult) +{ + unsigned i, units = bs->size; int l = 0, o = 0, breaked = 0; unsigned j; for (i = 0; i < units; ++i) { - bitset_unit_t data; + unsigned data; - if (copy_from_debuggee((void *)(BS_DATA(bs)[i]), pHelper, &data, sizeof(data)) != S_OK) + if (copy_from_debuggee((void *)(&bs->data[i]), pHelper, &data, sizeof(data)) != S_OK) return E_FAIL; for (j = 0; j < 32; ++j) { @@ -1077,7 +1091,7 @@ HRESULT format_bitset(DEBUGHELPER *pHelper, int nBase, const void *address, char { bitset_t bs; char name[256]; - bitset_pos_t l; + unsigned l; if (copy_from_debuggee(address, pHelper, &bs, sizeof(bs)) != S_OK) return E_FAIL;