From: Matthias Braun Date: Mon, 9 Jan 2012 12:36:54 +0000 (+0100) Subject: sparc: Fix constants for double parameter opt X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=867496770eb8a0ee522458d9a3addc4dbf19e6f2;p=libfirm sparc: Fix constants for double parameter opt --- diff --git a/ir/be/sparc/sparc_transform.c b/ir/be/sparc/sparc_transform.c index fffa4ceae..e36258c45 100644 --- a/ir/be/sparc/sparc_transform.c +++ b/ir/be/sparc/sparc_transform.c @@ -1763,15 +1763,18 @@ static void bitcast_float_to_int(dbg_info *dbgi, ir_node *block, (get_tarval_sub_bits(tv, 1) << 8) | (get_tarval_sub_bits(tv, 2) << 16) | (get_tarval_sub_bits(tv, 3) << 24); - result[0] = create_int_const(block, val); + ir_node *valc = create_int_const(block, val); if (bits == 64) { - int32_t val = get_tarval_sub_bits(tv, 4) | + int32_t val2 = get_tarval_sub_bits(tv, 4) | (get_tarval_sub_bits(tv, 5) << 8) | (get_tarval_sub_bits(tv, 6) << 16) | (get_tarval_sub_bits(tv, 7) << 24); - result[1] = create_int_const(block, val); + ir_node *valc2 = create_int_const(block, val2); + result[0] = valc2; + result[1] = valc; } else { assert(bits == 32); + result[0] = valc; result[1] = NULL; } } else {