Unexpected instruction sequence on MIPS
Ryan Mansfield
rmansfield@qnx.com
Tue Nov 14 12:19:00 GMT 2006
Aaron W. LaFramboise wrote:
> On a GCC 4.1.1 cross targeted to mips-mips-elf, this C input file:
>
> int sum(int a, int b) {
> return a + b + 42;
> }
>
> produces this output with -O3:
>
> addiu v0,a0,42
> jr ra
> addu v0,a1,v0
>
> Why does the compiler place "jr" before "addu"?
The compiler reorders the instructions to take advantage of the branch
delay slot. Take a look at the output with -fno-delayed-branch.
Regards,
Ryan Mansfield
More information about the Gcc-help
mailing list