+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
#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
+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,