This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]