DMACallback: lui v0,_hi(data_10E0) lw v0,_lo(data_10E0)(v0) addiu sp,sp,-24 sw ra,16(sp) lw v0,4(v0) nop jalr ra,v0 nop lw ra,16(sp) addiu sp,sp,24 jr ra nop |
typedef struct { char *id; void *(*setIntrDMA)(int, void (*)()); void *(*setIntr)(int, void (*)()); void *(*startIntr)(); void *(*stopIntr)(); void *(*setIntrVSync)(int, void (*)()); void *(*resetIntr)(); } INTRCB; static INTRCB _intrCB_ = { "$Id: intr.c,v 1.75 1997/02/07 09:00:36 makoto Exp $", 0, setIntr, startIntr, stopIntr, 0, 0 }; static INTRCB *intrCB = &_intrCB_; void DMACallback(int index, void (*callback)()) { intrCB->setIntrDMA(index, callback); } |
DMACallback: lw $2,intrCB subu $sp,$sp,24 sw $31,16($sp) lw $2,4($2) nop jal $31,$2 nop lw $31,16($sp) addu $sp,$sp,24 j $31 nop |