void *startIntrDMA();


disassembled listing :
startIntrDMA:
    addiu   sp,sp,-24
    lui     a0,_hi(data_4)
    addiu   a0,a0,_lo(data_4)
    sw      ra,16(sp)
    jal     memclr
    li      a1,8
    li      a0,3
    lui     v0,_hi(sectbase(.data))
    lw      v0,_lo(sectbase(.data))(v0)
    lui     a1,_hi(trapIntrDMA)
    addiu   a1,a1,_lo(trapIntrDMA)
    jal     InterruptCallback
    sw      zero,0(v0)
    lui     v0,_hi(setIntrDMA)
    addiu   v0,v0,_lo(setIntrDMA)
    lw      ra,16(sp)
    addiu   sp,sp,24
    jr      ra
    nop
source code :
static u_long *dicr = (void *)0x1f8010f4;

static void (*cbIntrDMA[8])();

void *startIntrDMA()
{
    memclr(cbIntrDMA, 8);
    *dicr = 0;
    InterruptCallback(3, trapIntrDMA);
    return setIntrDMA;
}
reversed listing :
startIntrDMA:
    subu    $sp,$sp,24
    la      $4,cbIntrDMA
    sw      $31,16($sp)
    jal     memclr
    li      $5,0x00000008
    li      $4,0x00000003
    lw      $2,dicr
    la      $5,trapIntrDMA
    jal     InterruptCallback
    sw      $0,0($2)
    la      $2,setIntrDMA
    lw      $31,16($sp)
    addu    $sp,$sp,24
    j       $31
    nop
coincidence: 100%

STATUS: COMPLETE
12 Apr 2003
Hosted by uCoz