Daniel Jacobowitz wrote: > _mcount was doing awful things to its caller's stack frame. Maybe I'm missing something, but both the old and the new code add 8 byte more to sp than they subtracted before. How is this supposed to work? [snip] > I think this is close enough; it only adds > one instruction. Is this OK? Why do you save and restore $6, $7, seemingly without using them? > Do I need a "nop" after the subu? It works here since it is expanded in an addiu $29,$29,-40 which is executed in one cycle. The usual suspects for hazards to be NOPed are load/store insns and branches. [snip] > + "sw $31,20($29);" \ > "move $5,$31;" \ > "jal __mcount;" \ > "move $4,$1;" \ ^ Some stylistic issue: In ".set noreorder" assembly it helps to indent the insns in a branch delay slot by one blank to avoid confusion about their non-sequential nature. Thiemo