Updated for new libFirm.
[libfirm] / win32 / firmEvaluator / firm.c
index b0d4108..d4c77a5 100644 (file)
@@ -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];
@@ -233,7 +238,8 @@ static HRESULT format_entity(DEBUGHELPER *pHelper, int nBase, const void *addr,
 /**
  * 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 +254,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 +282,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 +335,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)
@@ -335,7 +349,8 @@ HRESULT format_op(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t
 /**
  * format an ir_mode
  */
-static HRESULT format_mode(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max) {
+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)
@@ -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;
@@ -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,7 +1051,8 @@ 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) {
+static HRESULT fill_bits(DEBUGHELPER *pHelper, bitset_t *bs, char *pResult)
+{
   bitset_pos_t i, units = bs->units;
   int l = 0, o = 0, breaked = 0;
   unsigned j;