- fprintf(env->file, "\tentity %ld \"%s\" ",
- get_entity_nr(ent), get_entity_name(ent));
- if (ent->ld_name != NULL) {
- fprintf(env->file, "\"%s\" ", get_entity_ld_name(ent));
- } else {
- fprintf(env->file, "NULL ");
- }
-
- fprintf(env->file, "%ld %ld %d %u %d %s ",
- get_type_nr(get_entity_type(ent)),
- get_type_nr(owner),
- get_entity_offset(ent),
- (unsigned) get_entity_offset_bits_remainder(ent),
- is_entity_compiler_generated(ent),
- get_volatility_name(get_entity_volatility(ent)));
-
- if (ent->initializer != NULL) {
- fputs("initializer ", env->file);
- write_initializer(env, get_entity_initializer(ent));
- } else if (entity_has_compound_ent_values(ent)) {
- int i, n = get_compound_ent_n_values(ent);
- fputs("compoundgraph ", env->file);
- fprintf(env->file, "%d ", n);
- for (i = 0; i < n; i++) {
- ir_entity *member = get_compound_ent_value_member(ent, i);
- ir_node *irn = get_compound_ent_value(ent, i);
- fprintf(env->file, "%ld %ld ", get_entity_nr(member), get_irn_node_nr(irn));
- }
+static void write_ASM(write_env_t *env, const ir_node *node)
+{
+ ir_asm_constraint *input_constraints = get_ASM_input_constraints(node);
+ ir_asm_constraint *output_constraints = get_ASM_output_constraints(node);
+ ident **clobbers = get_ASM_clobbers(node);
+ size_t n_input_constraints = get_ASM_n_input_constraints(node);
+ size_t n_output_constraints = get_ASM_n_output_constraints(node);
+ size_t n_clobbers = get_ASM_n_clobbers(node);
+ size_t i;
+
+ write_symbol(env, "ASM");
+ write_node_nr(env, node);
+ write_node_nr(env, get_nodes_block(node));
+
+ write_ident(env, get_ASM_text(node));
+ write_list_begin(env);
+ for (i = 0; i < n_input_constraints; ++i) {
+ const ir_asm_constraint *constraint = &input_constraints[i];
+ write_unsigned(env, constraint->pos);
+ write_ident(env, constraint->constraint);
+ write_mode_ref(env, constraint->mode);
+ }
+ write_list_end(env);
+
+ write_list_begin(env);
+ for (i = 0; i < n_output_constraints; ++i) {
+ const ir_asm_constraint *constraint = &output_constraints[i];
+ write_unsigned(env, constraint->pos);
+ write_ident(env, constraint->constraint);
+ write_mode_ref(env, constraint->mode);
+ }
+ write_list_end(env);
+
+ write_list_begin(env);
+ for (i = 0; i < n_clobbers; ++i) {
+ ident *clobber = clobbers[i];
+ write_ident(env, clobber);
+ }
+ write_list_end(env);
+
+ write_pin_state(env, get_irn_pinned(node));
+ write_pred_refs(env, node, 0);
+}
+
+static void write_Phi(write_env_t *env, const ir_node *node)
+{
+ write_symbol(env, "Phi");
+ write_node_nr(env, node);
+ write_node_ref(env, get_nodes_block(node));
+ write_mode_ref(env, get_irn_mode(node));
+ write_pred_refs(env, node, 0);
+}
+
+static void write_Block(write_env_t *env, const ir_node *node)
+{
+ ir_entity *entity = get_Block_entity(node);
+
+ if (entity != NULL) {
+ write_symbol(env, "BlockL");
+ write_node_nr(env, node);
+ write_entity_ref(env, entity);