i386.c (classify_argument): Treat V1xx modes the same as their base modes.
authorJan Beulich <jbeulich@novell.com>
Fri, 9 Jul 2004 22:35:35 +0000 (22:35 +0000)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 9 Jul 2004 22:35:35 +0000 (15:35 -0700)
commit9e9fb0ce6784ad84623738a559b5f67d78c84125
tree3c1f045cf03960d8636bd8748ec94c9179a80ac2
parentf7fda74995eba965f74b55587caaa33b86d550eb
i386.c (classify_argument): Treat V1xx modes the same as their base modes.

        * 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.

From-SVN: r84410
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md