Added beinsn.c
[libfirm] / ir / be / benode.c
index 2e3df6a..9846b1c 100644 (file)
@@ -714,6 +714,16 @@ ir_node *be_get_IncSP_pred(ir_node *irn) {
        return get_irn_n(irn, 0);
 }
 
+void *be_set_IncSP_pred(ir_node *incsp, ir_node *pred) {
+       assert(be_is_IncSP(incsp));
+       set_irn_n(incsp, 0, pred);
+}
+
+ir_node *be_get_IncSP_mem(ir_node *irn) {
+       assert(be_is_IncSP(irn));
+       return get_irn_n(irn, 1);
+}
+
 void be_set_IncSP_offset(ir_node *irn, unsigned offset)
 {
        be_stack_attr_t *a = get_irn_attr(irn);
@@ -1324,10 +1334,20 @@ static int dump_node(ir_node *irn, FILE *f, dump_reason_t reason)
                        case beo_IncSP:
                                {
                                        be_stack_attr_t *a = (be_stack_attr_t *) at;
-                                       fprintf(f, "offset: %u\n", a->offset);
+                                       if (a->offset == BE_STACK_FRAME_SIZE)
+                                               fprintf(f, "offset: FRAME_SIZE\n");
+                                       else
+                                               fprintf(f, "offset: %u\n", a->offset);
                                        fprintf(f, "direction: %s\n", a->dir == be_stack_dir_expand ? "expand" : "shrink");
                                }
                                break;
+                       case beo_Call:
+                               {
+                                       be_call_attr_t *a = (be_call_attr_t *) at;
+
+                                       if (a->ent)
+                                               fprintf(f, "\ncalling: %s\n", get_entity_name(a->ent));
+                               }
                        default:
                                break;
                        }