VSyncCallback: addiu sp,sp,-24 lui v0,_hi(data_10E0) lw v0,_lo(data_10E0)(v0) move a1,a0 sw ra,16(sp) lw v0,20(v0) nop jalr ra,v0 li a0,4 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 VSyncCallback(void (*callback)()) { intrCB->setIntrVSync(4, callback); } |
VSyncCallback: subu $sp,$sp,24 lw $2,intrCB move $5,$4 sw $31,16($sp) lw $2,20($2) nop jal $31,$2 li $4,0x00000004 lw $31,16($sp) addu $sp,$sp,24 j $31 nop |