Commit a0048b53 authored by hubicka's avatar hubicka
Browse files

* 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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34916 138bc75d-0d04-0410-961f-82ee72b054a4
parent 261c1810
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
......
......@@ -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));
}")
......
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