From 2be5e524b0ce96881e40a84d0355f40edd82e07e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 17 Apr 2000 16:49:41 +0200 Subject: 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 --- gcc/config/sparc/sparc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc/config/sparc/sparc.c') diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 5570796..a2b7512 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -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) -- cgit v1.1