fehler76: assertion when converting float constant to int
[libfirm] / ir / be / benode.c
index 788b09c..30be692 100644 (file)
@@ -831,11 +831,17 @@ ir_node *be_new_FrameAddr(const arch_register_class_t *cls_frame, ir_graph *irg,
        return optimize_node(irn);
 }
 
-ir_node *be_get_FrameAddr_frame(ir_node *node) {
+ir_node *be_get_FrameAddr_frame(const ir_node *node) {
        assert(be_is_FrameAddr(node));
        return get_irn_n(node, be_pos_FrameAddr_ptr);
 }
 
+ir_entity *be_get_FrameAddr_entity(const ir_node *node)
+{
+       const be_frame_attr_t *attr = get_irn_generic_attr_const(node);
+       return attr->ent;
+}
+
 ir_node *be_new_CopyKeep(const arch_register_class_t *cls, ir_graph *irg, ir_node *bl, ir_node *src, int n, ir_node *in_keep[], ir_mode *mode)
 {
        ir_node *irn;
@@ -1055,11 +1061,6 @@ void be_set_IncSP_pred(ir_node *incsp, ir_node *pred) {
        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, int offset)
 {
        be_stack_attr_t *a = get_irn_attr(irn);
@@ -1627,7 +1628,9 @@ static int dump_node(ir_node *irn, FILE *f, dump_reason_t reason)
                        fprintf(f, get_op_name(get_irn_op(irn)));
                        break;
                case dump_node_mode_txt:
-                       fprintf(f, get_mode_name(get_irn_mode(irn)));
+                       if(be_is_Perm(irn) || be_is_Copy(irn) || be_is_CopyKeep(irn)) {
+                               fprintf(f, " %s", get_mode_name(get_irn_mode(irn)));
+                       }
                        break;
                case dump_node_nodeattr_txt:
                        if(be_is_Call(irn)) {
@@ -1635,6 +1638,16 @@ static int dump_node(ir_node *irn, FILE *f, dump_reason_t reason)
                                if (a->ent)
                                        fprintf(f, " [%s] ", get_entity_name(a->ent));
                        }
+                       if(be_is_IncSP(irn)) {
+                               const be_stack_attr_t *attr = get_irn_generic_attr_const(irn);
+                               if(attr->offset == BE_STACK_FRAME_SIZE_EXPAND) {
+                                       fprintf(f, " [Setup Stackframe] ");
+                               } else if(attr->offset == BE_STACK_FRAME_SIZE_SHRINK) {
+                                       fprintf(f, " [Destroy Stackframe] ");
+                               } else {
+                                       fprintf(f, " [%d] ", attr->offset);
+                               }
+                       }
                        break;
                case dump_node_info_txt:
                        dump_node_reqs(f, irn);