static void trapIntrVSync();


disassembled listing :
trapIntrVSync:
    lui     v0,_hi(Vcount)
    lw      v0,_lo(Vcount)(v0)
    addiu   sp,sp,-32
    sw      s1,20(sp)
    move    s1,zero
    sw      s0,16(sp)
    lui     s0,_hi(sectbase(.data))
    addiu   s0,s0,_lo(sectbase(.data))
    sw      ra,24(sp)
    addiu   v0,v0,1
    lui     at,_hi(Vcount)
    sw      v0,_lo(Vcount)(at)
text_88:
    lw      v0,0(s0)
    nop
    beqz    v0,text_A0
    nop
    jalr    ra,v0
    nop
text_A0:
    addiu   s1,s1,1
    slti    v0,s1,8
    bnez    v0,text_88
    addiu   s0,s0,4
    lw      ra,24(sp)
    lw      s1,20(sp)
    lw      s0,16(sp)
    jr      ra
    addiu   sp,sp,32
source code :
static void (*cbIntrVSync[8])();

int Vcount;

static void trapIntrVSync()
{
    int i;

    Vcount++;

    for(i=0; i<8; i++)
    {
        if(cbIntrVSync[i])
            cbIntrVSync[i]();
    }
}
reversed listing :
trapIntrVSync:
    lw      $2,Vcount
    subu    $sp,$sp,32
    sw      $17,20($sp)
    move    $17,$0
    sw      $16,16($sp)
    la      $16,cbIntrVSync
    sw      $31,24($sp)
    addu    $2,$2,1
    sw      $2,Vcount
$L6:
    lw      $2,0($16)
    nop
    beq     $2,$0,$L5
    jal     $31,$2
    nop
$L5:
    addu    $17,$17,1
    slt     $2,$17,8
    bne     $2,$0,$L6
    addu    $16,$16,4
    lw      $31,24($sp)
    lw      $17,20($sp)
    lw      $16,16($sp)
    j       $31
    addu    $sp,$sp,32
coincidence: 100%

STATUS: COMPLETE
15 Apr 2003
Hosted by uCoz