i386.md (call_pop, [...]): Do not set current_function_uses_pic_offset_table for calls to static functions...

* i386.md (call_pop, call, call_value_pop): Do not set
	current_function_uses_pic_offset_table for calls to static
	functions or indirect calls.

From-SVN: r34916
This commit is contained in:
Jan Hubicka 2000-07-07 23:49:18 +00:00 committed by Jan Hubicka
parent 12c2c7aa82
commit b848ded1da
2 changed files with 26 additions and 14 deletions

View File

@ -1,3 +1,9 @@
Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
* i386.md (call_pop, call, call_value_pop): Do not set
current_function_uses_pic_offset_table for calls to static
functions or indirect calls.
2000-07-07 Jim Wilson <wilson@cygnus.com>
* config/ia64/ia64.c (rws_access_reg): New local write_count. If

View File

@ -8200,11 +8200,12 @@
emit_insn (gen_call (operands[0], operands[1]));
DONE;
}
/* ??? Not true for calls to static functions. */
if (flag_pic)
/* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */
if (flag_pic
&& constant_call_address_operand (operands[1], SImode)
&& !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))
current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (operands[0], QImode))
XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
}")
@ -8254,10 +8255,12 @@
""
"
{
/* ??? Not true for calls to static functions. */
if (flag_pic)
/* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */
if (flag_pic
&& constant_call_address_operand (operands[1], SImode)
&& !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))
current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (operands[0], QImode))
XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
}")
@ -8314,11 +8317,12 @@
emit_insn (gen_call_value (operands[0], operands[1], operands[2]));
DONE;
}
/* ??? Not true for calls to static functions. */
if (flag_pic)
/* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */
if (flag_pic
&& constant_call_address_operand (operands[1], SImode)
&& !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))
current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (operands[1], QImode))
XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
}")
@ -8331,10 +8335,12 @@
""
"
{
/* ??? Not true for calls to static functions. */
if (flag_pic)
/* Static functions and indirect calls don't need
current_function_uses_pic_offset_table. */
if (flag_pic
&& constant_call_address_operand (operands[1], SImode)
&& !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))
current_function_uses_pic_offset_table = 1;
if (! call_insn_operand (operands[1], QImode))
XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
}")