X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_common_transform.c;h=81dd26a19e4109cca0b4cb1294c6926be9b899e9;hb=0e7d9243fcf3926564aebe56dca364090fd55f55;hp=ca93ecb28a9de98bb1777cef1165f3f9527f4060;hpb=f8ce5fc453e8c247ccebeb4a1977700c893284a9;p=libfirm diff --git a/ir/be/ia32/ia32_common_transform.c b/ir/be/ia32/ia32_common_transform.c index ca93ecb28..81dd26a19 100644 --- a/ir/be/ia32/ia32_common_transform.c +++ b/ir/be/ia32/ia32_common_transform.c @@ -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; }