PBQP transformer doesn't support Mux nodes with constant values.
[libfirm] / ir / be / ia32 / ia32_common_transform.c
index ca93ecb..81dd26a 100644 (file)
@@ -94,8 +94,9 @@ static ir_type *ia32_get_prim_type(pmap *types, ir_mode *mode)
                char buf[64];
                snprintf(buf, sizeof(buf), "prim_type_%s", get_mode_name(mode));
                res = new_type_primitive(new_id_from_str(buf), mode);
-               /* FIXME: this is too much for most cases */
-               set_type_alignment_bytes(res, 16);
+               if (get_mode_size_bits(mode) >= 80) {
+                       set_type_alignment_bytes(res, 16);
+               }
                pmap_insert(types, mode, res);
        }
        else
@@ -161,7 +162,7 @@ ir_entity *create_float_const_entity(ir_node *cnst)
        return res;
 }
 
-ir_node *create_Immediate(ir_entity *symconst, int symconst_sign, long val)
+ir_node *ia32_create_Immediate(ir_entity *symconst, int symconst_sign, long val)
 {
        ir_graph *irg         = current_ir_graph;
        ir_node  *start_block = get_irg_start_block(irg);
@@ -972,7 +973,7 @@ ir_node *try_create_Immediate(ir_node *node, char immediate_constraint_type)
                offset = tarval_neg(offset);
        }
 
-       new_node = create_Immediate(symconst_ent, symconst_sign, val);
+       new_node = ia32_create_Immediate(symconst_ent, symconst_sign, val);
 
        return new_node;
 }