Difference between revisions of "Call Finish data transfer to SPU"
Jump to navigation
Jump to search
(Created page with "<font face='Courier New'> 0001af64: 27bdffe8 addiu r29,r29,0xffe8 0001af68: afb00010 sw r16,0x0010(r29) 0001af6c: 00a08021 addu r16,r5,r0 0001af70: 3c020007 lui r2,0x000...") |
m (Talcall moved page 0001af64 - 0001afc0 to Call Finish data transfer to SPU) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
<font face='Courier New'> | <font face='Courier New'> | ||
− | + | p1 = DMA address to write from(?) might be ram address of original location. | |
+ | p2 = size of data being transferred | ||
+ | |||
0001af64: 27bdffe8 addiu r29,r29,0xffe8 | 0001af64: 27bdffe8 addiu r29,r29,0xffe8 | ||
0001af68: afb00010 sw r16,0x0010(r29) | 0001af68: afb00010 sw r16,0x0010(r29) | ||
Line 7: | Line 9: | ||
0001af74: 3442eff0 ori r2,r2,0xeff0 | 0001af74: 3442eff0 ori r2,r2,0xeff0 | ||
0001af78: 0050102b sltu r2,r2,r16 | 0001af78: 0050102b sltu r2,r2,r16 | ||
− | 0001af7c: 10400003 beq r2,r0,0x0001af8c | + | 0001af7c: 10400003 beq r2,r0,0x0001af8c if p2 > 0x7eff0, request p2 |
0001af80: afbf0014 sw r31,0x0014(r29) | 0001af80: afbf0014 sw r31,0x0014(r29) | ||
0001af84: 3c100007 lui r16,0x0007 | 0001af84: 3c100007 lui r16,0x0007 | ||
− | 0001af88: 3610eff0 ori r16,r16,0xeff0 | + | 0001af88: 3610eff0 ori r16,r16,0xeff0 if p2 < 0x7eff0, request transfer 0x7eff0 |
− | 0001af8c: 0c006435 jal 0x000190d4 | + | 0001af8c: 0c006435 jal 0x000190d4 [[Finish data transfer to SPU]] |
0001af90: 02002821 addu r5,r16,r0 | 0001af90: 02002821 addu r5,r16,r0 | ||
0001af94: 3c028003 lui r2,0x8003 | 0001af94: 3c028003 lui r2,0x8003 | ||
− | 0001af98: 8c42ad7c lw r2,-0x5284(r2) | + | 0001af98: 8c42ad7c lw r2,-0x5284(r2) spu dma callback |
0001af9c: 00000000 nop | 0001af9c: 00000000 nop | ||
− | 0001afa0: 14400003 bne r2,r0,0x0001afb0 | + | 0001afa0: 14400003 bne r2,r0,0x0001afb0 branch if it exists |
− | 0001afa4: 02001021 addu r2,r16,r0 | + | 0001afa4: 02001021 addu r2,r16,r0 return final requested size of transferred data |
0001afa8: 3c018003 lui r1,0x8003 | 0001afa8: 3c018003 lui r1,0x8003 | ||
− | 0001afac: ac20ad78 sw r0,-0x5288(r1) | + | 0001afac: ac20ad78 sw r0,-0x5288(r1) if no callback store 0? |
0001afb0: 8fbf0014 lw r31,0x0014(r29) | 0001afb0: 8fbf0014 lw r31,0x0014(r29) | ||
0001afb4: 8fb00010 lw r16,0x0010(r29) | 0001afb4: 8fb00010 lw r16,0x0010(r29) |
Latest revision as of 04:33, 22 January 2025
p1 = DMA address to write from(?) might be ram address of original location. p2 = size of data being transferred
0001af64: 27bdffe8 addiu r29,r29,0xffe8 0001af68: afb00010 sw r16,0x0010(r29) 0001af6c: 00a08021 addu r16,r5,r0 0001af70: 3c020007 lui r2,0x0007 0001af74: 3442eff0 ori r2,r2,0xeff0 0001af78: 0050102b sltu r2,r2,r16 0001af7c: 10400003 beq r2,r0,0x0001af8c if p2 > 0x7eff0, request p2 0001af80: afbf0014 sw r31,0x0014(r29) 0001af84: 3c100007 lui r16,0x0007 0001af88: 3610eff0 ori r16,r16,0xeff0 if p2 < 0x7eff0, request transfer 0x7eff0 0001af8c: 0c006435 jal 0x000190d4 Finish data transfer to SPU 0001af90: 02002821 addu r5,r16,r0 0001af94: 3c028003 lui r2,0x8003 0001af98: 8c42ad7c lw r2,-0x5284(r2) spu dma callback 0001af9c: 00000000 nop 0001afa0: 14400003 bne r2,r0,0x0001afb0 branch if it exists 0001afa4: 02001021 addu r2,r16,r0 return final requested size of transferred data 0001afa8: 3c018003 lui r1,0x8003 0001afac: ac20ad78 sw r0,-0x5288(r1) if no callback store 0? 0001afb0: 8fbf0014 lw r31,0x0014(r29) 0001afb4: 8fb00010 lw r16,0x0010(r29) 0001afb8: 27bd0018 addiu r29,r29,0x0018 0001afbc: 03e00008 jr r31 0001afc0: 00000000 nop