MIPS R3900 'bgt' with gcc 3.0/binutils 2.11.2

Ian Lance Taylor ian@zembu.com
Sun Aug 12 22:12:00 GMT 2001


Jonathan Larmour <jlarmour@redhat.com> writes:

> No, but in that case, why is (for example) bgtu okay in MIPS 1, but bgtul
> is only in MIPS 2? Perhaps opcodes should allow bgtul for the R3900 after
> all. I'm not a compiler person, and don't know (read: try to avoid knowing)
> the complexities of MIPS ISAs and their relevance to particular CPUs :-).

bgtu is a macro.  The assembler converts
    bgtu $2,5,label
into something like
    sltiu $1,$2,6
    beq $1,$0,label

bgtu is OK in MIPS 1 because the above instructions are OK in MIPS I.
bgtul is only OK in MIPS II because the macro expansion requires beql,
which is only available in MIPS II.

Actually, I see that in opcodes/mips-opc.c, beql with two register
arguments is listed as supported on the 3900.  That implies that bgtul
with two register arguments should also be supported on the 3900, but
it is not so marked.  In fact, none of branch likely macros are listed
as supported on the 3900.  That appears to be a longstanding bug in
the MIPS opcode table.

Ian



More information about the Binutils mailing list