> I must have been blind -- there's a matching ".set pop" elsewhere. Is a
> "nop" really missing in the output? I've assembled the file and I can't
> see any problem:
>
> 000000000000022c <handle_daddi_ov_int>:
> 22c: 0c000000 jal 0 <except_vec0_generic>
> 22c: R_MIPS_26 do_daddi_ov
> 22c: R_MIPS_NONE *ABS*
> 22c: R_MIPS_NONE *ABS*
> 230: 03a0202d move a0,sp
> 234: 08000000 j 0 <except_vec0_generic>
> 234: R_MIPS_26 ret_from_exception
> 234: R_MIPS_NONE *ABS*
> 234: R_MIPS_NONE *ABS*
> 238: 00000000 nop
> 23c: 00000000 nop
Oooh, it's SOOO strange!
For me, it is:
...
228: 03a0202d move a0,sp
22c: 0c000000 jal 0 <except_vec0_generic>
22c: R_MIPS_26 do_daddi_ov
22c: R_MIPS_NONE *ABS*
22c: R_MIPS_NONE *ABS*
230: 08000000 j 0 <except_vec0_generic>
230: R_MIPS_26 ret_from_exception
230: R_MIPS_NONE *ABS*
230: R_MIPS_NONE *ABS*
because the last '.set *reorder' before is in 'nmi_handler', and it is a
'.set noreorder'. I will get a newer kernel (I did 2.6.1 because it worked
for me, and 2.6.3 crashed on my PC with astonishing frequency, so I didn't
want to take a chance) and check.
Anyway, the procedure is 'handle_daddi_ov' and not 'handle_daddi_ov_int'
in my genex.S, and it's substantially longer than your code. Do you have
the SAVE_ALL there? I don't see it.
Yours,
Stanislaw Skowronek
|