This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch for mips offs > 16bit, *kludge* for egcs-1.1.2 release
- Subject: Re: Patch for mips offs > 16bit, *kludge* for egcs-1.1.2 release
- From: Jonathan Stone <jonathan at DSG dot Stanford dot EDU>
- Date: Tue, 02 Mar 1999 02:46:32 -0800
- cc: Hans-Peter Nilsson <hp at bitrange dot com>, egcs-patches at egcs dot cygnus dot com, pefo at opsycon dot se, jonathan at DSG dot Stanford dot EDU
- qTo: law@cygnus.com
In message <4805.920361158@hurl.cygnus.com>Jeffrey A Law writes
>It may be the case that GO_IF_LEGITIMATE_ADDRESS on the mips should stop
>accepting these large offsets. In fact, accepting them when they're not
>really valid on the target hardware is probably actually causing us to
>generate suboptimal code.
Thats exactly what the DEBUGA patch I'm using does.
The impact on code quality is more complex.
>Most other ports expose the true offsets allowed in a load/store instrution;
>and by doing so, the right things should happen automatically.
But MIPS assemblers have traditionally optimized this, playing tricks
with the register reserved for loading assembler temporaries to do
constant-folding on the high-order bits of addreses. Or some such.
Plus, not emitting the lui/ori instructions in pairs (but doing the
folding in the compiler) is reported to have nasty interactions with
some versions of some assemblers.
Isnt that one of the reasons Haifa isn't/wasn't enabled on mips?