Early card irq patch
Jump to navigation
Jump to search
0002891c: 3c018003 lui r1,0x8003 00028920: ac3f29d0 sw r31,0x29d0(r1) 00028924: 0c00880d jal 0x00022034 Enter Critical Section 00028928: 00000000 nop 0002892c: 240a00b0 addiu r10,r0,0x00b0 00028930: 0140f809 jalr r10,r31 get C0 table 00028934: 24090056 addiu r9,r0,0x0056 00028938: 8c420018 lw r2,0x0018(r2) C(06)h jump address (exception handler) 0002893c: 00000000 nop 00028940: 8c430070 lw r3,0x0070(r2) \ 00028944: 00000000 nop 00028948: 3069ffff andi r9,r3,0xffff get early card IRQ handler 0002894c: 8c430074 lw r3,0x0074(r2) 00028950: 00094c00 sll r9,r9,0x10 00028954: 306affff andi r10,r3,0xffff / IRQ 00028958: 012a1821 addu r3,r9,r10 0002895c: 3c0a8003 lui r10,0x8003 00028960: 3c098003 lui r9,0x8003 00028964: 24620028 addiu r2,r3,0x0028 00028968: 254a88c4 addiu r10,r10,0x88c4 new data = 0x800388c4 0002896c: 252988d8 addiu r9,r9,0x88d8 new data end = 0x800488d8 00028970: 8d430000 lw r3,0x0000(r10) load first byte at new data address 00028974: 254a0004 addiu r10,r10,0x0004 00028978: 24420004 addiu r2,r2,0x0004 0002897c: 1549fffc bne r10,r9,0x00028970 copy data from RAM to early IRQ handler + 0x28 00028980: ac43fffc sw r3,-0x0004(r2) store 00028984: 3c018003 lui r1,0x8003 00028988: 0c0087c9 jal 0x00021f24 FlushCache 0002898c: ac2229d4 sw r2,0x29d4(r1) 00028990: 3c1f8003 lui r31,0x8003 00028994: 8fff29d0 lw r31,0x29d0(r31) 00028998: 00000000 nop 0002899c: 03e00008 jr r31 000289a0: 00000000 nop