projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- icc 11 defines __ptr32
[cparser]
/
driver
/
gen_firm_asm.c
diff --git
a/driver/gen_firm_asm.c
b/driver/gen_firm_asm.c
index
88f20b5
..
ad55dee
100644
(file)
--- a/
driver/gen_firm_asm.c
+++ b/
driver/gen_firm_asm.c
@@
-1,7
+1,7
@@
/*
* Generate Firm assembler from Firm graphs.
*
/*
* Generate Firm assembler from Firm graphs.
*
- * (C) 2005-200
6
Michael Beck beck@ipd.info.uni-karlsruhe.de
+ * (C) 2005-200
9
Michael Beck beck@ipd.info.uni-karlsruhe.de
*/
#include <stdio.h>
#include <string.h>
*/
#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)
{
*/
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
if (get_method_n_ress(tp) == 0)
fprintf(f, "void");
else
- fp
rintf(f, get_type_name(get_method_res_type(tp, 0))
);
+ fp
uts(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, " %s(", s);
n = get_method_n_params(tp);
if (n == 0)
- fp
rintf(f, get_method_variadicity(tp) == variadicity_variadic ? "" : "void"
);
+ fp
uts(get_method_variadicity(tp) == variadicity_variadic ? "" : "void", f
);
else {
for (i = 0; i < n; ++i) {
if (i > 0)
fprintf(f, ", ");
else {
for (i = 0; i < n; ++i) {
if (i > 0)
fprintf(f, ", ");
- fp
rintf(f, get_type_name(get_method_param_type(tp, i))
);
+ fp
uts(get_type_name(get_method_param_type(tp, i)), f
);
}
if (get_method_variadicity(tp) == variadicity_variadic)
fprintf(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_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_frame(irg))
- X(get_irg_globals(irg))
X(get_irg_tls(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
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);
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));
}
}
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;
ident *id;
ir_type *tp;
ir_entity *ent;
- ir_label_t label;
symconst_kind kind = get_SymConst_kind(n);
const char *k_name = "NULL";
symconst_kind kind = get_SymConst_kind(n);
const char *k_name = "NULL";
+ const char *str;
switch (kind) {
case symconst_addr_ent:
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);
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:
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);
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;
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, ");
}
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 {
fprintf(f, "mode_b, %s);\n", proj_nr ? "pn_Cond_true" : "pn_Cond_false");
}
else {
- if (proj_nr == get_Cond_default
P
roj(cond))
+ if (proj_nr == get_Cond_default
_p
roj(cond))
name(f, " ", n, " = new_r_defaultProj(irg, ");
else
name(f, " ", n, " = new_r_Proj(irg, ");
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;
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), ", ");
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));
+ }
}
}
}
}