no, we cannot skip all convs before vfst (but just float->float convs)
authorMatthias Braun <matze@braunis.de>
Sat, 31 May 2008 06:19:55 +0000 (06:19 +0000)
committerMatthias Braun <matze@braunis.de>
Sat, 31 May 2008 06:19:55 +0000 (06:19 +0000)
[r19872]

ir/be/ia32/ia32_transform.c

index 5a2b917..8d6fec0 100644 (file)
@@ -2523,8 +2523,9 @@ static ir_node *gen_normal_Store(ir_node *node)
                        new_node = new_rd_ia32_xStore(dbgi, irg, new_block, addr.base,
                                                      addr.index, addr.mem, new_val);
                } else {
-                       /* We can skip ALL Convs (and strict-Convs) before stores. */
-                       while (is_Conv(val)) {
+                       /* We can skip ALL float Convs (and strict-Convs) before stores. */
+                       while (is_Conv(val) &&
+                                       mode_is_float(get_irn_mode(get_Conv_op(val)))) {
                                val = get_Conv_op(val);
                        }
                        new_val = be_transform_node(val);