in case of SSE: copy xmm0 to FPU TOS
[libfirm] / ir / be / benode.c
index 5bad468..da00f73 100644 (file)
@@ -420,7 +420,7 @@ ir_node *be_new_Call(dbg_info *dbg, ir_graph *irg, ir_node *bl, ir_node *mem, ir
        real_in[be_pos_Call_ptr] = ptr;
        memcpy(&real_in[be_pos_Call_first_arg], in, n * sizeof(in[0]));
 
-       irn = new_ir_node(NULL, irg, bl, op_be_Call, mode_T, real_n, real_in);
+       irn = new_ir_node(dbg, irg, bl, op_be_Call, mode_T, real_n, real_in);
        a = init_node_attr(irn, (n_outs > real_n ? n_outs : real_n));
        a->ent     = NULL;
        a->call_tp = call_tp;
@@ -832,6 +832,13 @@ void be_set_Spill_entity(ir_node *irn, entity *ent)
        a->frame_attr.ent = ent;
 }
 
+void be_set_Spill_context(ir_node *irn, ir_node *ctx)
+{
+       be_spill_attr_t *a = get_irn_attr(irn);
+       assert(be_is_Spill(irn));
+       a->spill_ctx = ctx;
+}
+
 static ir_node *find_a_spill_walker(ir_node *irn, unsigned visited_nr)
 {
        unsigned nr = get_irn_visited(irn);
@@ -1317,6 +1324,7 @@ static void dump_node_req(FILE *f, int idx, be_req_t *req)
        const char *prefix = buf;
 
        snprintf(buf, sizeof(buf), "#%d ", idx);
+       buf[sizeof(buf) - 1] = '\0';
 
        if(req->flags != arch_irn_flags_none) {
                fprintf(f, "%sflags: ", prefix);