sparc.c (eligible_for_sibcall_delay): Cannot use leaf sibcall delay slot if flag_pic.
* config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use leaf sibcall delay slot if flag_pic. (output_sibcall): Always emit call for leaf sibcall if flag_pic. From-SVN: r33210
This commit is contained in:
parent
130bfbdd7a
commit
2be5e524b0
2 changed files with 10 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2000-04-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
|
||||
leaf sibcall delay slot if flag_pic.
|
||||
(output_sibcall): Always emit call for leaf sibcall if flag_pic.
|
||||
|
||||
2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
|
||||
|
@ -44,7 +50,8 @@ Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
|
|||
(ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
|
||||
(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
|
||||
since vector in in the data CSECT.
|
||||
(ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. * i370.md (Many patterns): Put the length in the XL directives.
|
||||
(ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
|
||||
* i370.md (Many patterns): Put the length in the XL directives.
|
||||
(movdi): Put back STM and MVC in definition.
|
||||
(floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
|
||||
pattern using the TCA.
|
||||
|
|
|
@ -2504,7 +2504,7 @@ eligible_for_sibcall_delay (trial)
|
|||
{
|
||||
/* If the tail call is done using the call instruction,
|
||||
we have to restore %o7 in the delay slot. */
|
||||
if (TARGET_ARCH64 && ! TARGET_CM_MEDLOW)
|
||||
if ((TARGET_ARCH64 && ! TARGET_CM_MEDLOW) || flag_pic)
|
||||
return 0;
|
||||
|
||||
/* %g1 is used to build the function address */
|
||||
|
@ -3735,7 +3735,7 @@ output_sibcall (insn, call_operand)
|
|||
|
||||
if (leaf_regs)
|
||||
{
|
||||
int spare_slot = (TARGET_ARCH32 || TARGET_CM_MEDLOW);
|
||||
int spare_slot = ((TARGET_ARCH32 || TARGET_CM_MEDLOW) && ! flag_pic);
|
||||
int size = 0;
|
||||
|
||||
if ((actual_fsize || ! spare_slot) && delay_slot)
|
||||
|
|
Loading…
Add table
Reference in a new issue