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 |