This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: MIPS R3900 'bgt' with gcc 3.0/binutils 2.11.2
- To: Jonathan Larmour <jlarmour at redhat dot com>
- Subject: Re: MIPS R3900 'bgt' with gcc 3.0/binutils 2.11.2
- From: Ian Lance Taylor <ian at zembu dot com>
- Date: 12 Aug 2001 22:12:26 -0700
- Cc: mike stump <mrs at windriver dot com>, binutils at sources dot redhat dot com, gcc at gcc dot gnu dot org
- References: <200108130102.SAA22765@kankakee.wrs.com><3B772A8D.202B6AF1@redhat.com>
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