mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-28 15:56:51 +00:00
21750d5aee
* osgetactivequeue ok * osspdevicebusy ok * osGetCurrFaultedThread ok * osSpRawStartDma OK * __osSpSetPc and osViGetCurrentFramebuffer OK * sinf, sins, and sptask OK * coss OK * cosf OK * ran format.sh * Updated PR to use ultratypes * osContStartQuery OK * ran format.sh * Updated PR to fix issues * Made suggested changes
100 lines
No EOL
4.7 KiB
ArmAsm
100 lines
No EOL
4.7 KiB
ArmAsm
glabel osSpTaskLoad
|
|
/* B7776C 801005CC 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* B77770 801005D0 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* B77774 801005D4 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* B77778 801005D8 00808025 */ move $s0, $a0
|
|
/* B7777C 801005DC AFB30020 */ sw $s3, 0x20($sp)
|
|
/* B77780 801005E0 AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* B77784 801005E4 0C040130 */ jal _VirtualToPhysicalTask
|
|
/* B77788 801005E8 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* B7778C 801005EC 8C4E0004 */ lw $t6, 4($v0)
|
|
/* B77790 801005F0 00409025 */ move $s2, $v0
|
|
/* B77794 801005F4 02402025 */ move $a0, $s2
|
|
/* B77798 801005F8 31CF0001 */ andi $t7, $t6, 1
|
|
/* B7779C 801005FC 11E00013 */ beqz $t7, .L8010064C
|
|
/* B777A0 80100600 00000000 */ nop
|
|
/* B777A4 80100604 8C580038 */ lw $t8, 0x38($v0)
|
|
/* B777A8 80100608 8C59003C */ lw $t9, 0x3c($v0)
|
|
/* B777AC 8010060C 2401FFFE */ li $at, -2
|
|
/* B777B0 80100610 AC580018 */ sw $t8, 0x18($v0)
|
|
/* B777B4 80100614 AC59001C */ sw $t9, 0x1c($v0)
|
|
/* B777B8 80100618 8E080004 */ lw $t0, 4($s0)
|
|
/* B777BC 8010061C 01014824 */ and $t1, $t0, $at
|
|
/* B777C0 80100620 AE090004 */ sw $t1, 4($s0)
|
|
/* B777C4 80100624 8C4A0004 */ lw $t2, 4($v0)
|
|
/* B777C8 80100628 314B0004 */ andi $t3, $t2, 4
|
|
/* B777CC 8010062C 11600007 */ beqz $t3, .L8010064C
|
|
/* B777D0 80100630 00000000 */ nop
|
|
/* B777D4 80100634 8E0C0038 */ lw $t4, 0x38($s0)
|
|
/* B777D8 80100638 3C01A000 */ lui $at, 0xa000
|
|
/* B777DC 8010063C 258D0BFC */ addiu $t5, $t4, 0xbfc
|
|
/* B777E0 80100640 01A17025 */ or $t6, $t5, $at
|
|
/* B777E4 80100644 8DCF0000 */ lw $t7, ($t6)
|
|
/* B777E8 80100648 AC4F0010 */ sw $t7, 0x10($v0)
|
|
.L8010064C:
|
|
/* B777EC 8010064C 0C0011B0 */ jal osWritebackDCache
|
|
/* B777F0 80100650 24050040 */ li $a1, 64
|
|
/* B777F4 80100654 0C041920 */ jal __osSpSetStatus
|
|
/* B777F8 80100658 24042B00 */ li $a0, 11008
|
|
/* B777FC 8010065C 3C130400 */ lui $s3, (0x04001000 >> 16) # lui $s3, 0x400
|
|
/* B77800 80100660 36731000 */ ori $s3, (0x04001000 & 0xFFFF) # ori $s3, $s3, 0x1000
|
|
/* B77804 80100664 0C0419E8 */ jal __osSpSetPc
|
|
/* B77808 80100668 02602025 */ move $a0, $s3
|
|
/* B7780C 8010066C 2411FFFF */ li $s1, -1
|
|
/* B77810 80100670 54510006 */ bnel $v0, $s1, .L8010068C
|
|
/* B77814 80100674 3C100400 */ lui $s0, 0x400
|
|
.L80100678:
|
|
/* B77818 80100678 0C0419E8 */ jal __osSpSetPc
|
|
/* B7781C 8010067C 02602025 */ move $a0, $s3
|
|
/* B77820 80100680 1051FFFD */ beq $v0, $s1, .L80100678
|
|
/* B77824 80100684 00000000 */ nop
|
|
/* B77828 80100688 3C100400 */ lui $s0, (0x04000FC0 >> 16) # lui $s0, 0x400
|
|
.L8010068C:
|
|
/* B7782C 8010068C 36100FC0 */ ori $s0, (0x04000FC0 & 0xFFFF) # ori $s0, $s0, 0xfc0
|
|
/* B77830 80100690 02002825 */ move $a1, $s0
|
|
/* B77834 80100694 24040001 */ li $a0, 1
|
|
/* B77838 80100698 02403025 */ move $a2, $s2
|
|
/* B7783C 8010069C 0C0404D8 */ jal __osSpRawStartDma
|
|
/* B77840 801006A0 24070040 */ li $a3, 64
|
|
/* B77844 801006A4 14510007 */ bne $v0, $s1, .L801006C4
|
|
/* B77848 801006A8 24040001 */ li $a0, 1
|
|
.L801006AC:
|
|
/* B7784C 801006AC 02002825 */ move $a1, $s0
|
|
/* B77850 801006B0 02403025 */ move $a2, $s2
|
|
/* B77854 801006B4 0C0404D8 */ jal __osSpRawStartDma
|
|
/* B77858 801006B8 24070040 */ li $a3, 64
|
|
/* B7785C 801006BC 5051FFFB */ beql $v0, $s1, .L801006AC
|
|
/* B77860 801006C0 24040001 */ li $a0, 1
|
|
.L801006C4:
|
|
/* B77864 801006C4 0C040ECC */ jal __osSpDeviceBusy
|
|
/* B77868 801006C8 00000000 */ nop
|
|
/* B7786C 801006CC 50400006 */ beql $v0, $zero, .L801006E8
|
|
/* B77870 801006D0 24040001 */ li $a0, 1
|
|
.L801006D4:
|
|
/* B77874 801006D4 0C040ECC */ jal __osSpDeviceBusy
|
|
/* B77878 801006D8 00000000 */ nop
|
|
/* B7787C 801006DC 1440FFFD */ bnez $v0, .L801006D4
|
|
/* B77880 801006E0 00000000 */ nop
|
|
/* B77884 801006E4 24040001 */ li $a0, 1
|
|
.L801006E8:
|
|
/* B77888 801006E8 02602825 */ move $a1, $s3
|
|
/* B7788C 801006EC 8E460008 */ lw $a2, 8($s2)
|
|
/* B77890 801006F0 0C0404D8 */ jal __osSpRawStartDma
|
|
/* B77894 801006F4 8E47000C */ lw $a3, 0xc($s2)
|
|
/* B77898 801006F8 14510007 */ bne $v0, $s1, .L80100718
|
|
/* B7789C 801006FC 24040001 */ li $a0, 1
|
|
.L80100700:
|
|
/* B778A0 80100700 02602825 */ move $a1, $s3
|
|
/* B778A4 80100704 8E460008 */ lw $a2, 8($s2)
|
|
/* B778A8 80100708 0C0404D8 */ jal __osSpRawStartDma
|
|
/* B778AC 8010070C 8E47000C */ lw $a3, 0xc($s2)
|
|
/* B778B0 80100710 5051FFFB */ beql $v0, $s1, .L80100700
|
|
/* B778B4 80100714 24040001 */ li $a0, 1
|
|
.L80100718:
|
|
/* B778B8 80100718 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* B778BC 8010071C 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* B778C0 80100720 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* B778C4 80100724 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* B778C8 80100728 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* B778CC 8010072C 03E00008 */ jr $ra
|
|
/* B778D0 80100730 27BD0028 */ addiu $sp, $sp, 0x28 |