This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
ppc: spe varargs fix
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 16 Oct 2002 16:08:36 -0700
- Subject: ppc: spe varargs fix
Now that we have single element vectors, passing a vararg V1DI should
go split into 2 SI's not into 2 DI's.
Committed to mainline.
2002-10-16 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (function_arg): Set inner mode of V1DI to
SI.
Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.390
diff -c -p -r1.390 rs6000.c
*** config/rs6000/rs6000.c 9 Oct 2002 15:54:55 -0000 1.390
--- config/rs6000/rs6000.c 16 Oct 2002 23:06:15 -0000
*************** function_arg (cum, mode, type, named)
*** 3163,3168 ****
--- 3163,3171 ----
rtx r1, r2;
enum machine_mode m = GET_MODE_INNER (mode);
+ if (mode == V1DImode)
+ m = SImode;
+
r1 = gen_rtx_REG (m, gregno);
r1 = gen_rtx_EXPR_LIST (m, r1, const0_rtx);
r2 = gen_rtx_REG (m, gregno + 1);