linux-mips
[Top] [All Lists]

Re: Mips16 toolchain?

To: "Kevin D. Kissell" <kevink@mips.com>
Subject: Re: Mips16 toolchain?
From: Carsten Langgaard <carstenl@mips.com>
Date: Tue, 26 Mar 2002 09:10:57 +0100
Cc: Johannes Stezenbach <js@convergence.de>, linux-mips@oss.sgi.com
References: <20020325135834.GA1736@convergence.de> <00e901c1d40d$a257a200$0deca8c0@Ulysses>
Sender: owner-linux-mips@oss.sgi.com
"Kevin D. Kissell" wrote:

> > I saw that the algorithmics toolchain (which Dominic Sweetman
> > offered to the Linux/MIPS community here a month ago) claims
> > to have full support for the mips16 instruction set.
> >
> > My questions:
> > Does anyone here have experiences with mips16 and/or with the
> > algorithmics toolchain?
>
> Yes.  Both Algorithmics and Green Hills embedded
> tool chains support it reasonably well.  GHS has no
> Linux target, though.  Algorithmics has been working
> on one, but I'm not sure what it's current status is.
>
> > Is there working support for mips16 in any other gcc-version?
>
> Cygnus (now part of Red Hat) did the very first MIPS16
> support for gcc, most of which found its way into the
> main development/maintence stream.  But apparently
> not enough of it, based on your experience.
>
> > How about gcc-3.x from CVS?
>
> No data there.
>
> > Any other comments or recommendations regarding mips16?
>
> MIPS16 requires more than just gcc support.
> One needs a binutils that can distinguish a MIPS16
> binary module (or function if you want to be fancy and
> mix/match within modules)  from a MIPS32/64 module
> and perform fixups so that the right selections are made
> between JAL and JALX on function invocations.
> If you've got that, you should not need a seperate
> MIPS16 libc.
>
> To correctly support MIPS16, the Linux kernel does
> need to be tweaked in those cases where user-mode
> instructions are decoded and interpreted, as in
> arch/mips/kernel/branch.c and unaligned.c.
> I believe that code has been prototyped somewhere,
> but it's not yet in any commonly used repository to
> the best of my knowledge.  If you avoid throwing
> executing non-instructions, performing unaligned
> accesses, etc, you should be able to tiptoe around
> that deficiency.

I don't think you need to tiptoe to get it working :-;
It should be easy to avoid non-instructions, unaligned accesses and co.
We have a few MIPS16 applications running using Algorithmics compiler
and a static non-PIC libc.

>
>             Regards,
>
>             Kevin K.

--
_    _ ____  ___   Carsten Langgaard   Mailto:carstenl@mips.com
|\  /|||___)(___   MIPS Denmark        Direct: +45 4486 5527
| \/ |||    ____)  Lautrupvang 4B      Switch: +45 4486 5555
  TECHNOLOGIES     2750 Ballerup       Fax...: +45 4486 5556
                   Denmark             http://www.mips.com




<Prev in Thread] Current Thread [Next in Thread>