Why does -g turn off filling the delat slot?
From: H . J . Lu <hidden>
Date: 2002-02-06 20:45:48
On Wed, Feb 06, 2002 at 11:32:59AM +0100, Ralf Baechle wrote:
quoted
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.