don't do the store-float-conv optimisation with double->unsigned
authorMatthias Braun <matze@braunis.de>
Tue, 29 Jul 2008 15:05:31 +0000 (15:05 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 29 Jul 2008 15:05:31 +0000 (15:05 +0000)
[r20766]

ir/be/ia32/ia32_transform.c

index 9650aac..3879f49 100644 (file)
@@ -2374,6 +2374,10 @@ static int is_float_to_int32_conv(const ir_node *node)
 
        if(get_mode_size_bits(mode) != 32 || !ia32_mode_needs_gp_reg(mode))
                return 0;
+       /* don't report unsigned as conv to 32bit, because we really need to do
+        * a vfist with 64bit signed in this case */
+       if(!mode_is_signed(mode))
+               return 0;
 
        if(!is_Conv(node))
                return 0;