i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return type is a float mode...

* i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
	type is a float mode, cfun->decl's return type is not, and
	TARGET_FLOAT_RETURNS_IN_80387.

	* gcc.c-torture/execute/20000731-1.x: Delete.

From-SVN: r35506
This commit is contained in:
Zack Weinberg 2000-08-05 18:24:19 +00:00 committed by Zack Weinberg
parent 0681921da1
commit 26f2c02a97
4 changed files with 20 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
* i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
type is a float mode, cfun->decl's return type is not, and
TARGET_FLOAT_RETURNS_IN_80387.
2000-08-04 Andreas Schwab <schwab@suse.de>
* cppmain.c (cb_def_pragma): Skip the first two tokens from the

View File

@ -1319,10 +1319,16 @@ typedef struct ix86_args {
#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) 0
/* If PIC, we cannot optimize sibling calls to global functions
because the PLT requires %ebx live. */
#define FUNCTION_OK_FOR_SIBCALL(DECL) \
(DECL && (! flag_pic || ! TREE_PUBLIC (DECL)))
/* If PIC, we cannot make sibling calls to global functions
because the PLT requires %ebx live.
If we are returning floats on the register stack, we cannot make
sibling calls to functions that return floats. (The stack adjust
instruction will wind up after the sibcall jump, and not be executed.) */
#define FUNCTION_OK_FOR_SIBCALL(DECL) (DECL \
&& (! flag_pic || ! TREE_PUBLIC (DECL)) \
&& (! TARGET_FLOAT_RETURNS_IN_80387 \
|| ! FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \
|| FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (cfun->decl))))))
/* This macro is invoked just before the start of a function.
It is used here to output code for -fpic that will load the

View File

@ -1,3 +1,7 @@
2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
* gcc.c-torture/execute/20000731-1.x: Delete.
2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
* lib/gcc-dg.exp: Set up TORTURE_OPTIONS, torture_with_loops,

View File

@ -1,3 +0,0 @@
# Doesn't work. Hasn't worked ever, I think.
set torture_execute_xfail "i?86-*-*"
return 0