This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Why does -g turn off filling the delat slot?
- From: "H . J . Lu" <hjl at lucon dot org>
- To: Ralf Baechle <ralf at oss dot sgi dot com>
- Cc: Dominic Sweetman <dom at algor dot co dot uk>,GNU C Library <libc-alpha at sources dot redhat dot com>,linux-mips at oss dot sgi dot com, binutils at sources dot redhat dot com
- Date: Wed, 6 Feb 2002 12:45:38 -0800
- Subject: Why does -g turn off filling the delat slot?
- References: <mailpost.1012680250.7159@news-sj1-1> <yov5ofj65elj.fsf@broadcom.com> <15454.22661.855423.532827@gladsmuir.algor.co.uk> <20020204083115.C13384@lucon.org> <15454.47823.837119.847975@gladsmuir.algor.co.uk> <20020204172857.A22337@lucon.org> <20020204215804.A2095@nevyn.them.org> <20020205113017.A6144@lucon.org> <20020205135407.A8309@lucon.org> <20020206113259.A15431@dea.linux-mips.net>
On Wed, Feb 06, 2002 at 11:32:59AM +0100, Ralf Baechle wrote:
> >
> > There is an extra "nop" in the delay slot. I don't think gas is smart
> > enough to fill the delay slot. I will put back those ".set noredor".
>
> The solution is to move the move instruction in front of the branch
> instruction. The assembler will then move it into the delay slot:
>
I found out why it didn't work for me. The problem is -g turns off
filling the delay slot. The mips as has
case 'g':
if (arg == NULL)
mips_debug = 2;
else
mips_debug = atoi (arg);
/* When the MIPS assembler sees -g or -g2, it does not do
optimizations which limit full symbolic debugging. We take
that to be equivalent to -O0. */
if (mips_debug == 2)
mips_optimize = 1;
break;
It doesn't matter of you pass -O to as or not. I'd like to override it
if -O is seen.
H.J.