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:
parent
12c2c7aa82
commit
b848ded1da
2 changed files with 26 additions and 14 deletions
|
@ -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>
|
2000-07-07 Jim Wilson <wilson@cygnus.com>
|
||||||
|
|
||||||
* config/ia64/ia64.c (rws_access_reg): New local write_count. If
|
* config/ia64/ia64.c (rws_access_reg): New local write_count. If
|
||||||
|
|
|
@ -8200,11 +8200,12 @@
|
||||||
emit_insn (gen_call (operands[0], operands[1]));
|
emit_insn (gen_call (operands[0], operands[1]));
|
||||||
DONE;
|
DONE;
|
||||||
}
|
}
|
||||||
|
/* Static functions and indirect calls don't need
|
||||||
/* ??? Not true for calls to static functions. */
|
current_function_uses_pic_offset_table. */
|
||||||
if (flag_pic)
|
if (flag_pic
|
||||||
|
&& constant_call_address_operand (operands[1], SImode)
|
||||||
|
&& !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 (operands[0], QImode))
|
if (! call_insn_operand (operands[0], QImode))
|
||||||
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));
|
||||||
}")
|
}")
|
||||||
|
@ -8254,10 +8255,12 @@
|
||||||
""
|
""
|
||||||
"
|
"
|
||||||
{
|
{
|
||||||
/* ??? Not true for calls to static functions. */
|
/* Static functions and indirect calls don't need
|
||||||
if (flag_pic)
|
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;
|
current_function_uses_pic_offset_table = 1;
|
||||||
|
|
||||||
if (! call_insn_operand (operands[0], QImode))
|
if (! call_insn_operand (operands[0], QImode))
|
||||||
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));
|
||||||
}")
|
}")
|
||||||
|
@ -8314,11 +8317,12 @@
|
||||||
emit_insn (gen_call_value (operands[0], operands[1], operands[2]));
|
emit_insn (gen_call_value (operands[0], operands[1], operands[2]));
|
||||||
DONE;
|
DONE;
|
||||||
}
|
}
|
||||||
|
/* Static functions and indirect calls don't need
|
||||||
/* ??? Not true for calls to static functions. */
|
current_function_uses_pic_offset_table. */
|
||||||
if (flag_pic)
|
if (flag_pic
|
||||||
|
&& constant_call_address_operand (operands[1], SImode)
|
||||||
|
&& !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 (operands[1], QImode))
|
if (! call_insn_operand (operands[1], QImode))
|
||||||
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));
|
||||||
}")
|
}")
|
||||||
|
@ -8331,10 +8335,12 @@
|
||||||
""
|
""
|
||||||
"
|
"
|
||||||
{
|
{
|
||||||
/* ??? Not true for calls to static functions. */
|
/* Static functions and indirect calls don't need
|
||||||
if (flag_pic)
|
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;
|
current_function_uses_pic_offset_table = 1;
|
||||||
|
|
||||||
if (! call_insn_operand (operands[1], QImode))
|
if (! call_insn_operand (operands[1], QImode))
|
||||||
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));
|
||||||
}")
|
}")
|
||||||
|
|
Loading…
Add table
Reference in a new issue