Patchwork [alpha] : Fix PR 46533. bootstrap failure

login
register
mail settings
Submitter Uros Bizjak
Date Nov. 21, 2010, 8:47 a.m.
Message ID <AANLkTikxP5FjyVh4wCOJ_Lge=twrk5-g7w-k81Nhc_MP@mail.gmail.com>
Download mbox | patch
Permalink /patch/72434/
State New
Headers show

Comments

Uros Bizjak - Nov. 21, 2010, 8:47 a.m.
On Sun, Nov 21, 2010 at 1:21 AM, Richard Henderson <rth@redhat.com> wrote:
> On 11/20/2010 03:49 AM, Uros Bizjak wrote:
>>       PR target/46533
>>       * config/alpha/predicates.md (direct_call_operand): Return false
>>       for !TARGET_SMALL_TEXT targets.
>
> It would have been nice to be able to determine that the section that
> will be used is the same, and continue the short branch.  But that
> seems a bit tricky.
>
> Patch is ok.

Thanks!

Please note that even for the calls in the same section, offset of +/-
1M is IMO a bit too small to handle all the cases. Linker has all the
data, so it will relax all appropriate calls, leaving only an extra
unop after relaxation.

I also committed a small testsuite patch, calls are always emitted as
"far" in the assembly.

2010-11-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46533
	* gcc.dg/inline-2.c: Do not scan for "jsr" on alpha*-*-*  targets.

Tested on alphaec68-pc-linux-gnu, committed to mainline SVN.

Uros.

Patch

Index: gcc.dg/inline-2.c
===================================================================
--- gcc.dg/inline-2.c	(revision 166974)
+++ gcc.dg/inline-2.c	(working copy)
@@ -14,6 +14,5 @@ 
   return foo() + foo() + 1;
 }

-/* { dg-final { scan-assembler-not "jsr" { target alpha*-*-* } } } */
 /* { dg-final { scan-assembler-not "PLT" { target i?86-*-* x86_64-*-* } } } */
 /* { dg-final { scan-assembler-not "plt" { target powerpc*-*-* } } } */