From: Richard Henderson Date: Wed, 6 Sep 2000 08:32:49 +0000 (-0700) Subject: i386.md (call_pop): Fix test for setting current_function_uses_pic_offset_table. X-Git-Tag: prereleases/libstdc++-2.92~4235 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2a4bbffab1e0bf165757e2897151c08275bfadd4;p=thirdparty%2Fgcc.git i386.md (call_pop): Fix test for setting current_function_uses_pic_offset_table. * config/i386/i386.md (call_pop): Fix test for setting current_function_uses_pic_offset_table. (call, call_value_pop, call_value): Likewise. From-SVN: r36187 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee72cc1ccfe9..e8a99251c467 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-09-06 Richard Henderson + + * config/i386/i386.md (call_pop): Fix test for setting + current_function_uses_pic_offset_table. + (call, call_value_pop, call_value): Likewise. + 2000-09-06 Zack Weinberg * timevar.c (timevar_add): Delete. diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index e32a16822ca4..015da07aa755 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1324,7 +1324,8 @@ typedef struct ix86_args { 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 \ +#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)))) \ diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 1fd1a9b6bf58..72fd72088c0d 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -8453,9 +8453,8 @@ /* Static functions and indirect calls don't need current_function_uses_pic_offset_table. */ if (flag_pic - && constant_call_address_operand (operands[0], SImode) - && (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[0], 0)))) + && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF + && ! SYMBOL_REF_FLAG (XEXP (operands[0], 0))) current_function_uses_pic_offset_table = 1; if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); @@ -8508,9 +8507,8 @@ /* Static functions and indirect calls don't need current_function_uses_pic_offset_table. */ if (flag_pic - && constant_call_address_operand (operands[0], SImode) - && (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[0], 0)))) + && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF + && ! SYMBOL_REF_FLAG (XEXP (operands[0], 0))) current_function_uses_pic_offset_table = 1; if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); @@ -8570,9 +8568,8 @@ /* Static functions and indirect calls don't need current_function_uses_pic_offset_table. */ if (flag_pic - && constant_call_address_operand (operands[1], SImode) - && (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))) + && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF + && ! SYMBOL_REF_FLAG (XEXP (operands[1], 0))) current_function_uses_pic_offset_table = 1; if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); @@ -8589,9 +8586,8 @@ /* Static functions and indirect calls don't need current_function_uses_pic_offset_table. */ if (flag_pic - && constant_call_address_operand (operands[1], SImode) - && (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))) + && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF + && ! SYMBOL_REF_FLAG (XEXP (operands[1], 0))) current_function_uses_pic_offset_table = 1; if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));