From 56829cae9cf564f26d4159f6599c045e71c0a41a Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 16 Nov 2006 08:30:18 +0100 Subject: [PATCH] i386.c (ix86_function_sseregparm): Fix comment: number of arguments passed to local functions in SSE registers is 3. * 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. From-SVN: r118883 --- gcc/ChangeLog | 12 ++++++++++-- gcc/config/i386/i386.c | 6 +++--- gcc/doc/extend.texi | 2 +- 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 + + * 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 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.