setIntrVSync:
lui v0,_hi(sectbase(.data))
addiu v0,v0,_lo(sectbase(.data))
sll a0,a0,2
addu a0,a0,v0
lw v0,0(a0)
nop
beq a1,v0,text_E8
nop
sw a1,0(a0)
text_E8:
jr ra
nop
|
static void (*cbIntrVSync[8])();
static void *setIntrVSync(int index, void (*callback)())
{
void (*old)() = cbIntrVSync[index];
if(callback != old)
cbIntrVSync[index] = callback;
return old;
}
|
setIntrVSync:
la $2,cbIntrVSync
sll $4,$4,2
addu $4,$4,$2
lw $2,0($4)
nop
beq $5,$2,$L10
nop
sw $5,0($4)
$L10:
j $31
nop
|