This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch] MIPS: mips16e machine patterns - zeb/zeh seb/seh
Daniel Jacobowitz <drow@false.org> writes:
> On Fri, Jun 10, 2005 at 10:43:30AM -0700, Eric Christopher wrote:
>> > That's because to be MIPS32/32R2/64/64R2 ASE compliant, the full MIPS16e
>> > set is required, not a subset (MIPS16). I've simply made that if the
>> > user gave -mips16 option for mips_isa>=32, they really mean -mips16e.
>> > As in Ian's previous reply, -march=mips32 -mips16 will imply -mips16e.
>>
>> Gah. No.
>>
>> The compiler should not "infer" or "guess" what the user meant. Richard
>> and I spent a lot of time removing that kind of code from the compiler,
>> I don't want to put more in there.
>>
>> If they say -mips16 they get -mips16. If they say -mips16e they get -
>> mips16e.
>
> This I don't get. Why not think of it this way (which I thought was
> what Richard was suggesting):
>
> A MIPS processor with MIPS16 support has two modes, 16-bit and 32-bit
> instructions.
>
> When you say -mips16 you get all of the instructions in the selected
> processor's 16-bit mode. If -march implies a processor which
> supports MIPS16e, then enable MIPS16e.
To clear up any confusion, this was indeed what I was suggesting,
but I didn't word it as well.
I just think that -mips16* flags should be _either_ a 16-bit mode
selector _or_ an ISA flag. David's third option is a bit of a hybrid.
At the moment, -mips16 could be interpreted either way, because gcc
only knows about one 16-bit ISA.
Richard