summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-16 07:30:18 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-16 07:30:18 +0000
commit56a575a5543a08eb72130265bb34a315195ccfa0 (patch)
tree166a18716bb2df62de834e4a683f8be35059330f
parent5d65a39c75e476e21bfd633960e6d45029c6acd2 (diff)
downloadgcc-56a575a5543a08eb72130265bb34a315195ccfa0.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118883 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/i386/i386.c6
-rw-r--r--gcc/doc/extend.texi2
3 files changed, 14 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2ccb8051d70..eb31d9ffe74 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+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
@@ -34,8 +42,8 @@
* 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
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 2583fc0c1b2..4546f4d2b3e 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2707,9 +2707,9 @@ ix86_function_sseregparm (tree type, tree decl)
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)
{
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 099e4dd802c..079bc37c463 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -2232,7 +2232,7 @@ on the stack.
@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.