number of arguments passed to local functions in SSE registers is 3.
* doc/invoke.texi (Function Attributes) [sseregparm]: Correct
number of arguments passed in SSE registers to 3.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118883
138bc75d-0d04-0410-961f-
82ee72b054a4
+2006-11-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
+ number of arguments passed to local functions in SSE registers is 3.
+
+ * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
+ number of arguments passed in SSE registers to 3.
+
2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
PR target/29201
* config/i386/i386.opt: New target option -mx87regparm.
- * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno,
- float_in_x87: Add new variables. mmx_words, sse_words: Remove.
+ * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
+ and float_in_x87 variables. mmx_words, sse_words: Remove.
(X87_REGPARM_MAX): Define.
* config/i386/i386.c (override_options): Error out for
return 2;
}
- /* For local functions, pass SFmode (and DFmode for SSE2) arguments
- in SSE registers even for 32-bit mode and not just 3, but up to
- 8 SSE arguments in registers. */
+ /* For local functions, pass up to SSE_REGPARM_MAX SFmode
+ (and DFmode for SSE2) arguments in SSE registers,
+ even for 32-bit targets. */
if (!TARGET_64BIT && decl
&& TARGET_SSE_MATH && flag_unit_at_a_time && !profile_flag)
{
@item sseregparm
@cindex @code{sseregparm} attribute
On the Intel 386 with SSE support, the @code{sseregparm} attribute
-causes the compiler to pass up to 8 floating point arguments in
+causes the compiler to pass up to 3 floating point arguments in
SSE registers instead of on the stack. Functions that take a
variable number of arguments will continue to pass all of their
floating point arguments on the stack.