added %= for printing a pn_Cmp value
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 30 Jun 2005 07:59:11 +0000 (07:59 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 30 Jun 2005 07:59:11 +0000 (07:59 +0000)
if a node is a Const, dump it's tarval
typos fixed

[r6133]

ir/ir/irargs.c
ir/ir/irprintf.c

index 0e01f79..48782f4 100644 (file)
@@ -6,7 +6,7 @@
  * Modified by:
  * Created:
  * CVS-ID:      $Id$
- * Copyright:   (c) 1998-2005 Universitt Karlsruhe
+ * Copyright:   (c) 1998-2005 Universitaet Karlsruhe
  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
  */
 
@@ -115,7 +115,14 @@ static int firm_emit(appendable_t *app, const arg_occ_t *occ, const arg_value_t
         snprintf(buf, sizeof(buf), "%ld", get_irn_node_nr(X));
         break;
       default:
-        snprintf(buf, sizeof(buf), "%s%s%s", A("irn"), get_irn_opname(X),
+        if (is_Const(irn)) {
+          char tbuf[128];
+          tarval_snprintf(tv, sizeof(tv), X);
+          snprintf(buf, sizeof(buf), "%s%s%s<%s>", A("irn"), get_irn_opname(X),
+            get_mode_name(get_irn_mode(X)), tbuf);
+        }
+        else
+          snprintf(buf, sizeof(buf), "%s%s%s", A("irn"), get_irn_opname(X),
             get_mode_name(get_irn_mode(X)));
         snprintf(add, sizeof(add), "[%ld]", get_irn_node_nr(X));
       }
@@ -169,8 +176,6 @@ static int firm_emit_ident(appendable_t *app, const arg_occ_t *occ, const arg_va
   return arg_append(app, occ, p, strlen(p));
 }
 
-
-
 /**
  * Emit indent.
  */
@@ -185,6 +190,18 @@ static int firm_emit_indent(appendable_t *app, const arg_occ_t *occ, const arg_v
        return amount;
 }
 
+/**
+ * Emit pnc.
+ */
+static int firm_emit_pnc(appendable_t *app, const arg_occ_t *occ, const arg_value_t *arg)
+{
+  int i;
+  int value = arg->v_int;
+  const char *p = get_pnc_string(value);
+
+  return arg_append(app, occ, p, strlen(p));
+}
+
 arg_env_t *firm_get_arg_env(void)
 {
 #define X(name, letter) {"firm:" name, letter}
@@ -194,6 +211,7 @@ arg_env_t *firm_get_arg_env(void)
   static arg_handler_t firm_handler   = { firm_get_arg_type, firm_emit };
   static arg_handler_t ident_handler  = { firm_get_arg_type, firm_emit_ident };
   static arg_handler_t indent_handler = { firm_get_arg_type_int, firm_emit_indent };
+  static arg_handler_t pnc_handler    = { firm_get_arg_type_int, firm_emit_pnc };
   static arg_handler_t bitset_handler = { bitset_get_arg_type, bitset_emit };
 
   static struct {
@@ -209,6 +227,7 @@ arg_env_t *firm_get_arg_env(void)
     X("irn_nr",    'N'),
     X("mode",      'm'),
     X("block",     'B'),
+    X("pnc",       '='),
   };
 
   int i;
index 49baca2..1a27640 100644 (file)
@@ -447,8 +447,15 @@ static void ir_common_vprintf(const appender_t *app, void *object,
                                case 'n':
                                        {
                                                ir_node *irn = va_arg(args, ir_node *);
-                                               if(irn)
-                                                       snprintf(buf, sizeof(buf), "%s%s:%ld",
+                                               if (irn)
+                                                       if (is_Const(irn)) {
+                                                               char tbuf[128];
+                                                               tarval_snprintf(tbuf, sizeof(tbuf), get_Const_tarval(irn));
+                                                               snprintf(buf, sizeof(buf), "%s%s<%s>:%ld",
+                                                                       get_irn_opname(irn), get_mode_name(get_irn_mode(irn)), tbuf, get_irn_node_nr(irn));
+                                                        }
+                                                        else
+                                                               snprintf(buf, sizeof(buf), "%s%s:%ld",
                                                                        get_irn_opname(irn), get_mode_name(get_irn_mode(irn)), get_irn_node_nr(irn));
                                                else
                                                        strncpy(buf, STRNIL, sizeof(buf));
@@ -522,6 +529,10 @@ static void ir_common_vprintf(const appender_t *app, void *object,
                                        /* clean the buffer again */
                                        buf[0] = '\0';
                                        break;
+
+                               case '=':
+                                       str = get_pnc_string(va_arg(args, int));
+                                       break;
                        }
 
                        dump_with_settings(app, object, limit, &settings, str);
@@ -536,7 +547,7 @@ static void ir_common_vprintf(const appender_t *app, void *object,
 }
 
 /**
- * Convencience for stdout dumping.
+ * Convenience for stdout dumping.
  */
 void ir_printf(const char *fmt, ...)
 {
@@ -547,7 +558,7 @@ void ir_printf(const char *fmt, ...)
 }
 
 /**
- * Convencience for file dumping.
+ * Convenience for file dumping.
  */
 void ir_fprintf(FILE *f, const char *fmt, ...)
 {
@@ -558,7 +569,7 @@ void ir_fprintf(FILE *f, const char *fmt, ...)
 }
 
 /**
- * Convencience for string dumping.
+ * Convenience for string dumping.
  */
 void ir_snprintf(char *buf, size_t len, const char *fmt, ...)
 {
@@ -569,7 +580,7 @@ void ir_snprintf(char *buf, size_t len, const char *fmt, ...)
 }
 
 /**
- * Convencience for string dumping.
+ * Convenience for string dumping.
  */
 void ir_obst_printf(struct obstack *obst, const char *fmt, ...)
 {
@@ -599,7 +610,7 @@ void ir_obst_vprintf(struct obstack *obst, const char *fmt, va_list args)
        ir_common_vprintf(&obst_appender, obst, 0, fmt, args);
 }
 
-#else
+#else /* WITH_LIBCORE */
 
 #include "irargs_t.h"