- icc 11 defines __ptr32
[cparser] / driver / gen_firm_asm.c
index 88f20b5..ad55dee 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Generate Firm assembler from Firm graphs.
  *
- * (C) 2005-2006  Michael Beck   beck@ipd.info.uni-karlsruhe.de
+ * (C) 2005-2009  Michael Beck   beck@ipd.info.uni-karlsruhe.de
  */
 #include <stdio.h>
 #include <string.h>
@@ -39,11 +39,14 @@ typedef struct fix_ctx {
  */
 static void name(FILE *f, const char *prefix, ir_node *n, const char *suffix)
 {
-  fprintf(f, "%s%s_%u%s",
-    prefix ? prefix : "",
-    get_op_name(get_irn_op(n)),
-    get_irn_idx(n),
-    suffix ? suffix : "");
+  const char *op_name = get_op_name(get_irn_op(n));
+  unsigned    index   = get_irn_idx(n);
+  if(prefix == NULL)
+    prefix = "";
+  if(suffix == NULL)
+    suffix = "";
+
+  fprintf(f, "%s%s_%u%s", prefix, op_name, index, suffix);
 }
 
 /**
@@ -66,16 +69,16 @@ static void generate_header(FILE *f, ir_graph *irg)
   if (get_method_n_ress(tp) == 0)
     fprintf(f, "void");
   else
-    fprintf(f, get_type_name(get_method_res_type(tp, 0)));
+    fputs(get_type_name(get_method_res_type(tp, 0)), f);
   fprintf(f, " %s(", s);
   n = get_method_n_params(tp);
   if (n == 0)
-    fprintf(f, get_method_variadicity(tp) == variadicity_variadic ? "" : "void");
+    fputs(get_method_variadicity(tp) == variadicity_variadic ? "" : "void", f);
   else {
     for (i = 0; i < n; ++i) {
       if (i > 0)
         fprintf(f, ", ");
-      fprintf(f, get_type_name(get_method_param_type(tp, i)));
+      fputs(get_type_name(get_method_param_type(tp, i)), f);
     }
     if (get_method_variadicity(tp) == variadicity_variadic)
       fprintf(f, ", ...");
@@ -243,10 +246,9 @@ static int generate_predef_node(FILE *f, ir_node *n)
   X(get_irg_start_block(irg))
   X(get_irg_end(irg))
   X(get_irg_end_block(irg))
+  X(get_irg_initial_exec(irg))
   X(get_irg_frame(irg))
-  X(get_irg_globals(irg))
   X(get_irg_tls(irg))
-  X(get_irg_value_param_base(irg))
   X(get_irg_initial_mem(irg))
   X(get_irg_no_mem(irg))
   else
@@ -507,7 +509,7 @@ static void generate_code_Const(FILE *f, ir_node *n)
     else {
 def_mode:
       tarval_snprintf(buf, sizeof(buf), tv);
-      fprintf(f, "new_tarval_from_str(\"%s\", %d, ", buf, strlen(buf));
+      fprintf(f, "new_tarval_from_str(\"%s\", %u, ", buf, (unsigned) strlen(buf));
       fprintf(f, "mode_%s)", get_mode_name(mode));
     }
   }
@@ -528,9 +530,9 @@ static void generate_code_SymConst(FILE *f, ir_node *n)
   ident *id;
   ir_type *tp;
   ir_entity *ent;
-  ir_label_t label;
   symconst_kind kind = get_SymConst_kind(n);
   const char *k_name = "NULL";
+  const char *str;
 
   switch (kind) {
   case symconst_addr_ent:
@@ -539,7 +541,8 @@ static void generate_code_SymConst(FILE *f, ir_node *n)
     break;
   case symconst_addr_name:
     id = get_SymConst_name(n);
-    fprintf(f, "  sym.ident_p = new_id_from_chars(\"%s\", %d);\n", get_id_str(id), get_id_strlen(id));
+    str = get_id_str(id);
+    fprintf(f, "  sym.ident_p = new_id_from_chars(\"%s\", %d);\n", str, get_id_strlen(id));
     k_name = "symconst_addr_name";
     break;
   case symconst_type_size:
@@ -564,14 +567,10 @@ static void generate_code_SymConst(FILE *f, ir_node *n)
     break;
   case symconst_enum_const:
     id = get_SymConst_name(n);
-    fprintf(f, "  sym.ident_p = new_id_from_chars(\"%s\", %d);\n", get_id_str(id), get_id_strlen(id));
+    str = get_id_str(id);
+    fprintf(f, "  sym.ident_p = new_id_from_chars(\"%s\", %d);\n", str, get_id_strlen(id));
     k_name = "symconst_enum_const";
     break;
-  case symconst_label:
-    label = get_SymConst_label(n);
-    fprintf(f, "  sym.label = %lu;\n", label);
-    k_name = "symconst_label";
-    break;
   }
   name(f, "  ", n, " = new_r_SymConst(irg, ");
   name(f, NULL, get_nodes_block(n), ", sym, ");
@@ -922,7 +921,7 @@ static void generate_code_Proj_Cond(FILE *f, ir_node *n)
     fprintf(f, "mode_b, %s);\n", proj_nr ? "pn_Cond_true" : "pn_Cond_false");
   }
   else {
-    if (proj_nr == get_Cond_defaultProj(cond))
+    if (proj_nr == get_Cond_default_proj(cond))
       name(f, "  ", n, " = new_r_defaultProj(irg, ");
     else
       name(f, "  ", n, " = new_r_Proj(irg, ");
@@ -965,11 +964,13 @@ static void generate_code_Proj(FILE *f, ir_node *n)
   case iro_Cond:
     generate_code_Proj_Cond(f, n);
     break;
-  default:
+  default: {
+    const char *mode_name = get_mode_name(get_irn_mode(n));
     name(f, "  ", n, " = new_r_Proj(irg, ");
     name(f, NULL, get_nodes_block(n), ", ");
     name(f, NULL, get_Proj_pred(n), ", ");
-    fprintf(f, "mode_%s, %ld);\n", get_mode_name(get_irn_mode(n)), get_Proj_proj(n));
+    fprintf(f, "mode_%s, %ld);\n", mode_name, get_Proj_proj(n));
+  }
   }
 }