This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] libgcc/MIPS: Fill in delay slots of (some) MIPS16 call stubs
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: "Maciej W. Rozycki" <macro at codesourcery dot com>
- Cc: <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 29 Jul 2013 20:19:30 +0100
- Subject: Re: [PATCH] libgcc/MIPS: Fill in delay slots of (some) MIPS16 call stubs
- References: <alpine dot DEB dot 1 dot 10 dot 1307291809530 dot 32382 at tp dot orcam dot me dot uk>
"Maciej W. Rozycki" <firstname.lastname@example.org> writes:
> I believe the only legacy MIPS processors that implemented the MIPS16 ASE
> in its original variation (i.e. with no compact jumps, no SAVE/RESTORE,
> and no extend instructions) were the LSI's TinyRISC cores.
Ah, hadn't realised that the original version had no EXTEND instruction.
Which TinyRISC iteration was that? The LR4102 had it AFAIK.
FWIW GCC and binutils always assume that EXTEND is available and just
make a distinction between "original MIPS16" (which sounds like it might
not be as original as I'd thought) and "MIPS16e". The VR4121 and VR4131
were also in the "original MIPS16" category (no compact jumps, SAVE/RESTORE,
etc.). But they also had no FPU.
> These stubs are I believe not really covered in our testing, because they
> require a mixed standard-MIPS/MIPS16 environment.
What's the barrier to testing a mixed environment? The normal *-linux-gnu
configurations have no MIPS16 multilibs, so you should be able to test it
on a plain mips-linux-gnu configuration using --target_flags unix/-mips16.
FWIW I've been using the mips64-linux-gnu equivalent
(--target_flags unix/-mabi=32/-mips16) without problems.
Or if you don't want to test on GNU/Linux, you should be able to use something
like mips64-elf configured with whichever --with-arch= you like (and an
appropriate simulator). Long time since I tried that though. I prefer
testing on GNU/Linux because it also covers libgcc.so symbol visibility
and has better libgfortran support.
> * config/mips/mips16.S (DELAYf): Alias to DELAYt for the MIPS IV
> ISA and up.
OK, thanks, but please do run it through the testsuite first.