Commit 26f2c02a by Zack Weinberg Committed by Zack Weinberg

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
parent 0681921d
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> 2000-08-04 Andreas Schwab <schwab@suse.de>
* cppmain.c (cb_def_pragma): Skip the first two tokens from the * cppmain.c (cb_def_pragma): Skip the first two tokens from the
......
...@@ -1319,10 +1319,16 @@ typedef struct ix86_args { ...@@ -1319,10 +1319,16 @@ typedef struct ix86_args {
#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) 0 #define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) 0
/* If PIC, we cannot optimize sibling calls to global functions /* If PIC, we cannot make sibling calls to global functions
because the PLT requires %ebx live. */ because the PLT requires %ebx live.
#define FUNCTION_OK_FOR_SIBCALL(DECL) \ If we are returning floats on the register stack, we cannot make
(DECL && (! flag_pic || ! TREE_PUBLIC (DECL))) 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. /* This macro is invoked just before the start of a function.
It is used here to output code for -fpic that will load the It is used here to output code for -fpic that will load the
......
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> 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
* lib/gcc-dg.exp: Set up TORTURE_OPTIONS, torture_with_loops, * lib/gcc-dg.exp: Set up TORTURE_OPTIONS, torture_with_loops,
......
# Doesn't work. Hasn't worked ever, I think.
set torture_execute_xfail "i?86-*-*"
return 0
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