On 03/22/2013 02:33 PM, Stephen Checkoway wrote:> On Mar 22, 2013, at 5:06 PM, reed kotler <rkotler at mips.com> wrote:
>
>> Does anyone know if this really needs to be an immutable pass?
> [snip]
>
> I don't know the answers to your questions, but ARM allows mixed ARM
and THUMB instructions using the blx instruction. Can you not do something
similar to what the ARM backend does to handle it?
>
This is mimicking functionality that exists with gcc for mips16 and mips32.
It's very involved and is needed for various things; including some
aspects of mips16 hard float when you can mix that code with mips 32 code.
There are other ways to intermix mips16 and mips32 but this particular
scheme requires that you be able to decide on a per function basis
whether you want to generate mips16 or mips32 code.
I'm working through the problem little by little but I don't know in
detail the non target dependent parts of the compiler that are relevant
here.
Reed