aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/emit-rtl.c16
2 files changed, 24 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 105bc1e..e203773 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,14 +1,19 @@
-2007-06-29 Jan Hubicka <jh@suse.cz>
+2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
+ for complex modes (both int and real).
+
+2007-06-29 Jan Hubicka <jh@suse.cz>
* cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
-2007-06-29 Jan Hubicka <jh@suse.cz>
+2007-06-29 Jan Hubicka <jh@suse.cz>
PR middle-end/32372
* cse.c (cse_insn): Avoid invalid sharing in between register note and
the insn pattern.
-2007-06-29 Anatoly Sokolov <aesok@post.ru>
+2007-06-29 Anatoly Sokolov <aesok@post.ru>
PR target/32335
* config/avr/avr.c: Include dataflow header file.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 2f9ddbf..8f99b98 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -5219,6 +5219,22 @@ init_emit_once (int line_numbers)
const_tiny_rtx[i][(int) mode] = GEN_INT (i);
}
+ for (mode = GET_CLASS_NARROWEST_MODE (MODE_COMPLEX_INT);
+ mode != VOIDmode;
+ mode = GET_MODE_WIDER_MODE (mode))
+ {
+ rtx inner = const_tiny_rtx[0][(int)GET_MODE_INNER (mode)];
+ const_tiny_rtx[0][(int) mode] = gen_rtx_CONCAT (mode, inner, inner);
+ }
+
+ for (mode = GET_CLASS_NARROWEST_MODE (MODE_COMPLEX_FLOAT);
+ mode != VOIDmode;
+ mode = GET_MODE_WIDER_MODE (mode))
+ {
+ rtx inner = const_tiny_rtx[0][(int)GET_MODE_INNER (mode)];
+ const_tiny_rtx[0][(int) mode] = gen_rtx_CONCAT (mode, inner, inner);
+ }
+
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_INT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))