Mips-rtems build of GCC 3.4.1 has changed mips3!

Bruce Robinson bndrobinson at cox.net
Fri Aug 13 05:47:29 UTC 2004

Hello Joel and Greg,

I've been working on the RTEMS BSP for the Toshiba TX4925 and have run into
some new issues. First I discovered GCC 3.2.3 doesn't generate proper code
for the va_start function when using -mips3. So as a work around I tried to
move to GCC 3.4.1. In that version of GCC the va_start function works, but I
discovered that both -mips1 and -mips3 options now produce code that assumes
all registers are 32 bits. In previous versions -mips3 produced code that
assumed 64 bit registers. If you want to build RTEMS so that the MIPS
processor uses 64 bit register, GCC and newlib will have to be built with
the -mgp64, -mfp64, and -mabi=o64 options.

For my applications, having GCC defaulting to 32 bit registers for mips3 is
preferred. Maybe GCC and RTEMS can add support for a "mips64-rtems" target
that assumes 64 bit registers. In that case, the code in RTEMS that must
change for 64 bit registers will test for the __mips64 flag.

Does this sound reasonable, or do you foresee changing GCC back to its'
previous implementation of mips3?

Best Regards,

More information about the users mailing list