This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MIPS: comparison modes in conditional branches


Adam Nemet wrote:
Now if I am correct and this last thing is really a bug then the
obvious question is whether it has anything to do with the more
restrictive form for conditional branches on MIPS64?  And of course if
I fix it then whether it would be OK to lift the mode restrictions in
the conditional branch patterns.

Yes, the last bit looks like it could be a bug; a missing use of TRULY_NOOP_TRUNCATION somewhere.


This isn't directly related to the current situation though. The MIPS port was converted from using CC0 to using a register for condition codes on April 27, 1992. The mistaken use of modes in branch tests occured at that time. This happened between the gcc-2.1 and gcc-2.2 releases. This was long before the 64-bit support was added. When the 64-bit support was added later, the mistaken branch modes were expanded to include SImode and DImode variants. Since this occured long ago, it would be difficult to determine exactly why it was done this way. It was perhaps just done that way because it looked obviously correct.

Yes, it looks like fixing the combiner problem would make it possible to remove the mistaken mode checks.
--
Jim Wilson, GNU Tools Support, http://www.specifix.com



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]