start register allocator again, fix typo
[libfirm] / ir / be / TEMPLATE / TEMPLATE_gen_decls.c
index 4851517..2c5b003 100644 (file)
@@ -1,10 +1,13 @@
 /**
  * Dumps global variables and constants as TEMPLATE assembler.
- * @author Christian Wuerdig
  * @date 14.02.2006
  * @version $Id$
  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
@@ -185,10 +188,18 @@ static void do_dump_atomic_init(struct obstack *obst, ir_node *init)
       obstack_printf(obst, "%s", get_entity_ld_name(get_SymConst_entity(init)));
       break;
 
-    case symconst_size:
+    case symconst_ofs_ent:
+      obstack_printf(obst, "%d", get_entity_offset_bytes(get_SymConst_entity(init)));
+      break;
+
+    case symconst_type_size:
       obstack_printf(obst, "%d", get_type_size_bytes(get_SymConst_type(init)));
       break;
 
+    case symconst_type_align:
+      obstack_printf(obst, "%d", get_type_alignment_bytes(get_SymConst_type(init)));
+      break;
+
     default:
       assert(0 && "dump_atomic_init(): don't know how to init from this SymConst");
     }
@@ -340,7 +351,7 @@ static void dump_string_cst(struct obstack *obst, entity *ent)
       if (isprint(c))
        obstack_printf(obst, "%c", c);
       else
-       obstack_printf(obst, "%O", c);
+       obstack_printf(obst, "\\%o", c);
       break;
     }
   }
@@ -368,8 +379,8 @@ static void dump_global(struct obstack *rdata_obstack, struct obstack *data_obst
    * FIXME: did NOT work for partly constant values
    */
   if (! is_Method_type(ty)) {
-    ent_variability variability = get_entity_variability(ent);
-    visibility visibility = get_entity_visibility(ent);
+    ir_variability variability = get_entity_variability(ent);
+    ir_visibility visibility = get_entity_visibility(ent);
 
     if (variability == variability_constant) {
       /* a constant entity, put it on the rdata */