On 12/5/07, Shaddy Baddah <[EMAIL PROTECTED]> wrote: > 0x1e958 <main+13992>: ld [ %l6 + 0x8c ], %l1 > 0x1e95c <main+13996>: call 0xa90b4 <cpu_x86_exec> > 0x1e960 <main+14000>: mov %l1, %o0
Maybe you missed the effect of the delay slot. The first argument is prepared in %l1 and moved to %o0 in the delay slot of the call instruction. > 0x240a4 <main_loop+152>: sethi %hi(0x258800), %g4 > 0x240a8 <main_loop+156>: or %g4, 0x4c, %g4 ! 0x25884c > 0x240ac <main_loop+160>: ld [ %g4 ], %g4 > 0x240b0 <main_loop+164>: st %g4, [ %fp + -20 ] > 0x240b4 <main_loop+168>: ld [ %fp + -20 ], %o0 > 0x240b8 <main_loop+172>: call 0x14fa64 <cpu_x86_exec> > 0x240bc <main_loop+176>: nop This looks like equivalent code, only dumber version using an intermediate store and not using the delay slot.