aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@gcc.gnu.org>2007-06-29 19:20:25 -0700
committerAndrew Pinski <pinskia@gcc.gnu.org>2007-06-29 19:20:25 -0700
commite90721b1108b9615c0850ecc6527ece38209439e (patch)
treecc22b98b0ffb69dc9f8287199c53a57ce748d808 /gcc/emit-rtl.c
parenteb51830fcdfe33ce43697188e29cdc59ae4c7750 (diff)
downloadgcc-e90721b1108b9615c0850ecc6527ece38209439e.zip
gcc-e90721b1108b9615c0850ecc6527ece38209439e.tar.gz
gcc-e90721b1108b9615c0850ecc6527ece38209439e.tar.bz2
emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0] for complex modes (both int and real).
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). From-SVN: r126136
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c16
1 files changed, 16 insertions, 0 deletions
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))