Commit 2a4bbffa by Richard Henderson Committed by Richard Henderson

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
parent 61f5be15
2000-09-06 Richard Henderson <rth@cygnus.com>
* 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 <zack@wolery.cumb.org> 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
* timevar.c (timevar_add): Delete. * timevar.c (timevar_add): Delete.
......
...@@ -1324,7 +1324,8 @@ typedef struct ix86_args { ...@@ -1324,7 +1324,8 @@ typedef struct ix86_args {
If we are returning floats on the register stack, we cannot make If we are returning floats on the register stack, we cannot make
sibling calls to functions that return floats. (The stack adjust sibling calls to functions that return floats. (The stack adjust
instruction will wind up after the sibcall jump, and not be executed.) */ 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)) \ && (! flag_pic || ! TREE_PUBLIC (DECL)) \
&& (! TARGET_FLOAT_RETURNS_IN_80387 \ && (! TARGET_FLOAT_RETURNS_IN_80387 \
|| ! FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \ || ! FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \
......
...@@ -8453,9 +8453,8 @@ ...@@ -8453,9 +8453,8 @@
/* Static functions and indirect calls don't need /* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */ current_function_uses_pic_offset_table. */
if (flag_pic if (flag_pic
&& constant_call_address_operand (operands[0], SImode) && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF
&& (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF && ! SYMBOL_REF_FLAG (XEXP (operands[0], 0)))
|| !SYMBOL_REF_FLAG (XEXP (operands[0], 0))))
current_function_uses_pic_offset_table = 1; current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) if (! call_insn_operand (XEXP (operands[0], 0), Pmode))
XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
...@@ -8508,9 +8507,8 @@ ...@@ -8508,9 +8507,8 @@
/* Static functions and indirect calls don't need /* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */ current_function_uses_pic_offset_table. */
if (flag_pic if (flag_pic
&& constant_call_address_operand (operands[0], SImode) && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF
&& (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF && ! SYMBOL_REF_FLAG (XEXP (operands[0], 0)))
|| !SYMBOL_REF_FLAG (XEXP (operands[0], 0))))
current_function_uses_pic_offset_table = 1; current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) if (! call_insn_operand (XEXP (operands[0], 0), Pmode))
XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
...@@ -8570,9 +8568,8 @@ ...@@ -8570,9 +8568,8 @@
/* Static functions and indirect calls don't need /* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */ current_function_uses_pic_offset_table. */
if (flag_pic if (flag_pic
&& constant_call_address_operand (operands[1], SImode) && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
&& (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF && ! SYMBOL_REF_FLAG (XEXP (operands[1], 0)))
|| !SYMBOL_REF_FLAG (XEXP (operands[1], 0))))
current_function_uses_pic_offset_table = 1; current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) if (! call_insn_operand (XEXP (operands[1], 0), Pmode))
XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
...@@ -8589,9 +8586,8 @@ ...@@ -8589,9 +8586,8 @@
/* Static functions and indirect calls don't need /* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */ current_function_uses_pic_offset_table. */
if (flag_pic if (flag_pic
&& constant_call_address_operand (operands[1], SImode) && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
&& (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF && ! SYMBOL_REF_FLAG (XEXP (operands[1], 0)))
|| !SYMBOL_REF_FLAG (XEXP (operands[1], 0))))
current_function_uses_pic_offset_table = 1; current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) if (! call_insn_operand (XEXP (operands[1], 0), Pmode))
XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 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