Commit 82a127a9 by Catherine Moore Committed by Jan Hubicka

i386.c (function_arg_advance): Pass SSE arguments in registers.

        * i386.c (function_arg_advance):  Pass SSE arguments in registers.
	(function_arg): Likewise.

Co-Authored-By: Bernd Schmidt <bernds@redhat.com>
Co-Authored-By: Jan Hubicka <jh@suse.cz>

From-SVN: r39955
parent a43f528e
Wed Feb 21 18:57:28 CET 2001 Catherine Moore <clm@redhat.com>
Bernd Schmidt <bernds@redhat.com>
Jan Hubicka <jh@suse.cz>
* i386.c (function_arg_advance): Pass SSE arguments in registers.
(function_arg): Likewise.
Wed Feb 21 18:12:41 CET 2001 Jan Hubicka <jh@suse.cz>
* i386.md (mmx_lshrdi3, mmx_ashldi3): Guard by unspec.
......
......@@ -916,17 +916,29 @@ function_arg_advance (cum, mode, type, named)
fprintf (stderr,
"function_adv (sz=%d, wds=%2d, nregs=%d, mode=%s, named=%d)\n\n",
words, cum->words, cum->nregs, GET_MODE_NAME (mode), named);
cum->words += words;
cum->nregs -= words;
cum->regno += words;
if (cum->nregs <= 0)
if (TARGET_SSE && mode == TImode)
{
cum->nregs = 0;
cum->regno = 0;
cum->sse_words += words;
cum->sse_nregs -= 1;
cum->sse_regno += 1;
if (cum->sse_nregs <= 0)
{
cum->sse_nregs = 0;
cum->sse_regno = 0;
}
}
else
{
cum->words += words;
cum->nregs -= words;
cum->regno += words;
if (cum->nregs <= 0)
{
cum->nregs = 0;
cum->regno = 0;
}
}
return;
}
......@@ -969,6 +981,10 @@ function_arg (cum, mode, type, named)
if (words <= cum->nregs)
ret = gen_rtx_REG (mode, cum->regno);
break;
case TImode:
if (cum->sse_nregs)
ret = gen_rtx_REG (mode, cum->sse_regno);
break;
}
if (TARGET_DEBUG_ARG)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment