This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
gcc/gcc ChangeLog config/i386/i386.c config/i3 ...
- From: rth at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: 9 Jul 2004 22:35:36 -0000
- Subject: gcc/gcc ChangeLog config/i386/i386.c config/i3 ...
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: rth@gcc.gnu.org 2004-07-09 22:35:36
Modified files:
gcc : ChangeLog
gcc/config/i386: i386.c i386.md
Log message:
* config/i386/i386.c (classify_argument): Treat V1xx modes the same as
their base modes. CTImode, TCmode, and XCmode must be passed in memory.
TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
and V8QI are class SSE. All sufficiently small remaining vector modes
must be passed in one or two integer registers.
(ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
returned in memory.
(bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
__builtin_ia32_pmuludq128 have non-uniform argument and return types
and must thus be handled explicitly.
* config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
MMX and XMM regs.
(movv8qi_internal, movv4hi_internal, movv2si_internal,
movv2sf_internal): Permit moving between MMX and XMM registers (since
MMX areguments and return values are passed in XMM registers).
(sse2_umulsidi3): Correct type and mode.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.4431&r2=2.4432
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&r1=1.686&r2=1.687
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcc&r1=1.548&r2=1.549