This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: MIPS gas relaxation still doesn't work
- From: "H. J. Lu" <hjl at lucon dot org>
- To: aoliva at redhat dot com
- Cc: binutils at sources dot redhat dot com
- Date: Sun, 13 Oct 2002 14:54:23 -0700
- Subject: Re: MIPS gas relaxation still doesn't work
- References: <20021012113423.A27894@lucon.org>
On Sat, Oct 12, 2002 at 11:34:23AM -0700, H. J. Lu wrote:
> Hi Alexandre,
>
> I don't think your MIPS gas relaxation works. I got
>
> # mipsel-linux-gcc /export/gnu/src/gcc-3.2/gcc/gcc/testsuite/g++.dg/opt/longbranch1.C
> /tmp/cc0rrnMz.s: Assembler messages:
> /tmp/cc0rrnMz.s:33733: Error: Branch out of range
> /tmp/cc0rrnMz.s:33740: Error: Branch out of range
>
> Could you please verify it?
>
Here is a small testcase extracted from gcc. I got
# mipsel-linux-gcc -c foo.s
foo.s: Assembler messages:
foo.s:7: Error: Branch out of range
You may say it is a gcc bug. But I don't remember to see SGI assmebler
have any problem with g++.dg/opt/longbranch1.C. Does gcc generate
different code for Irix from Linux? Is it really unsafe to do branch
relaxation when macro is off.
H.J.
---foo.s---
foo:
.space 0x20000
.set noreorder
.set nomacro
bne $2,$0,.+16
nop
j foo
nop