Re: -mips16e and -mips32r2 usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Johan Schuld" <Johan.Schuld@xxxxxxxxxxxxxxxxxxxxx> writes:

> My first post in this group, so I hope it's the correct one. 
> I'm using a MIPS32 base processor (4KSd) which also has the MIPS16e extensions. 
>
> First of all, some of the default compiler flags I have use the
> -mips16e compiler flag, even though I can only find the -mips16
> (so without the 'e') flag in the GNU GCC documentation
> online. (http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/MIPS-Options.html#MIPS-Options). I can
> not find any -mips16e specific documentation.) 
>
> So for my project, I use both the -mips23r2 and -mips16e
> compiler flags. Some of my files (startup files) contain assembly
> code, and do not get compiled with the above settings (it does not
> recognize 'di' 'sync' and 'ei' as valid opcodes). These opcodes
> exist in the MIPS32r2 instruction set, but not in the MIPS16e
> extensions. 
>
> My assumption was that using the -mips16e compiler flag, would
> only enable the use of the mips16e specific extensions, but it seems
> like it will only use the compact instruction set? Can I use
> -mips16e and -mips32r2 simultaneously, or does it force the compiler
> to ONLY use the compact instruction set? 

gcc will generate MIPS16e code if you use the -mips16 option in
combination with the -mips32 or -mips32r2 option.  So you should
indeed get MIPS16e code with the options you are using.

However, you are correct that using -mips16 will cause the compiler to
only use the compact instruction set.  There is no way to flip back
and forth in a single source file.  Files which contain non-MIPS16e
assembler code must be compiled without the -mips16 option.

Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux