some fixes for xml dumper / still buggy.
[libfirm] / ir / tv / tv.c
index ec539c0..954d37d 100644 (file)
@@ -166,7 +166,6 @@ static int overflows(tarval *tv)
 {
   switch (get_mode_sort(tv->mode))
   {
-    case irms_character:
     case irms_int_number:
       if (sc_comp(tv->value, get_mode_max(tv->mode)->value) == 1) return 1;
       if (sc_comp(tv->value, get_mode_min(tv->mode)->value) == -1) return 1;
@@ -1176,6 +1175,19 @@ int tarval_set_mode_output_option(ir_mode *mode, const tarval_mode_info *modeinf
   return 0;
 }
 
+/*
+ * Returns the output options of one mode.
+ *
+ * This functions returns the modinfo of a given mode.
+ */
+const tarval_mode_info *tarval_get_mode_output_option(ir_mode *mode)
+{
+  assert(mode);
+
+  return mode->tv_priv;
+}
+
+
 /* Identifying some tarvals ??? */
 /* Implemented in old tv.c as such:
  *   return 0 for additive neutral,
@@ -1210,11 +1222,11 @@ void init_tarval_1(void)
   /* init with default precision */
   init_strcalc(0);
   /* init_fltcalc(0); not yet*/
-  tarval_bad = (tarval*)malloc(sizeof(tarval));
+  tarval_bad       = (tarval*)malloc(sizeof(tarval));
   tarval_undefined = (tarval*)malloc(sizeof(tarval));
-  tarval_b_true = (tarval*)malloc(sizeof(tarval));
-  tarval_b_false = (tarval*)malloc(sizeof(tarval));
-  tarval_P_void = (tarval*)malloc(sizeof(tarval));
+  tarval_b_true    = (tarval*)malloc(sizeof(tarval));
+  tarval_b_false   = (tarval*)malloc(sizeof(tarval));
+  tarval_P_void    = (tarval*)malloc(sizeof(tarval));
 }
 
 /**
@@ -1243,11 +1255,11 @@ void init_tarval_2(void)
 {
   ANNOUNCE();
 
-  tarval_bad->mode = mode_BAD;
+  tarval_bad->mode       = mode_BAD;
   tarval_undefined->mode = mode_ANY;
-  tarval_b_true->mode = mode_b;
-  tarval_b_false->mode = mode_b;
-  tarval_P_void->mode = mode_P;
+  tarval_b_true->mode    = mode_b;
+  tarval_b_false->mode   = mode_b;
+  tarval_P_void->mode    = mode_P;
 
   /*
    * assign output modes that are compatible with the