Decompile __scHandleRetraceViaPri

This commit is contained in:
Ryan Dwyer 2021-01-25 22:49:48 +10:00
parent 6f4e920fc7
commit 6cdb540312
4 changed files with 27 additions and 61 deletions

View File

@ -1630,63 +1630,29 @@ void __scMain(void *arg)
}
}
GLOBAL_ASM(
glabel func00001fa8
/* 1fa8: 27bdffd0 */ addiu $sp,$sp,-48
/* 1fac: afb00018 */ sw $s0,0x18($sp)
/* 1fb0: 00808025 */ or $s0,$a0,$zero
/* 1fb4: afbf001c */ sw $ra,0x1c($sp)
/* 1fb8: afa50034 */ sw $a1,0x34($sp)
/* 1fbc: afa00028 */ sw $zero,0x28($sp)
/* 1fc0: afa00024 */ sw $zero,0x24($sp)
/* 1fc4: 0c012230 */ jal osGetThreadPri
/* 1fc8: 00002025 */ or $a0,$zero,$zero
/* 1fcc: afa20020 */ sw $v0,0x20($sp)
/* 1fd0: 00002025 */ or $a0,$zero,$zero
/* 1fd4: 0c01210c */ jal osSetThreadPri
/* 1fd8: 2405001f */ addiu $a1,$zero,0x1f
/* 1fdc: 02002025 */ or $a0,$s0,$zero
/* 1fe0: 0c000a87 */ jal __scAppendList
/* 1fe4: 8fa50034 */ lw $a1,0x34($sp)
/* 1fe8: 8e0e00d4 */ lw $t6,0xd4($s0)
/* 1fec: 02002025 */ or $a0,$s0,$zero
/* 1ff0: 27a50028 */ addiu $a1,$sp,0x28
/* 1ff4: 51c00009 */ beqzl $t6,.L0000201c
/* 1ff8: 8e1800c8 */ lw $t8,0xc8($s0)
/* 1ffc: 8e0f00c8 */ lw $t7,0xc8($s0)
/* 2000: 51e00006 */ beqzl $t7,.L0000201c
/* 2004: 8e1800c8 */ lw $t8,0xc8($s0)
/* 2008: 0c000adc */ jal __scYield
/* 200c: 02002025 */ or $a0,$s0,$zero
/* 2010: 10000012 */ b .L0000205c
/* 2014: 00002025 */ or $a0,$zero,$zero
/* 2018: 8e1800c8 */ lw $t8,0xc8($s0)
.L0000201c:
/* 201c: 8e0900cc */ lw $t1,0xcc($s0)
/* 2020: 27a60024 */ addiu $a2,$sp,0x24
/* 2024: 2f190001 */ sltiu $t9,$t8,0x1
/* 2028: 00194040 */ sll $t0,$t9,0x1
/* 202c: 2d2a0001 */ sltiu $t2,$t1,0x1
/* 2030: 010a3825 */ or $a3,$t0,$t2
/* 2034: 0c000aeb */ jal __scSchedule
/* 2038: afa7002c */ sw $a3,0x2c($sp)
/* 203c: 8fa7002c */ lw $a3,0x2c($sp)
/* 2040: 02002025 */ or $a0,$s0,$zero
/* 2044: 8fa50028 */ lw $a1,0x28($sp)
/* 2048: 50470004 */ beql $v0,$a3,.L0000205c
/* 204c: 00002025 */ or $a0,$zero,$zero
/* 2050: 0c000aa1 */ jal __scExec
/* 2054: 8fa60024 */ lw $a2,0x24($sp)
/* 2058: 00002025 */ or $a0,$zero,$zero
.L0000205c:
/* 205c: 0c01210c */ jal osSetThreadPri
/* 2060: 8fa50020 */ lw $a1,0x20($sp)
/* 2064: 8fbf001c */ lw $ra,0x1c($sp)
/* 2068: 8fb00018 */ lw $s0,0x18($sp)
/* 206c: 27bd0030 */ addiu $sp,$sp,0x30
/* 2070: 03e00008 */ jr $ra
/* 2074: 00000000 */ nop
);
void __scHandleRetraceViaPri(OSSched *sc, OSScTask *t)
{
s32 state;
OSScTask *sp = 0;
OSScTask *dp = 0;
OSPri prevpri = osGetThreadPri(0);
osSetThreadPri(0, 31);
__scAppendList(sc, t);
if (sc->doAudio && sc->curRSPTask) {
__scYield(sc);
} else {
state = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0);
if (__scSchedule(sc, &sp, &dp, state) != state) {
__scExec(sc, sp, dp);
}
}
osSetThreadPri(0, prevpri);
}
GLOBAL_ASM(
glabel func00002078
@ -1767,7 +1733,7 @@ void __scHandleRetrace(OSSched *sc)
} else {
state = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0);
if ( __scSchedule (sc, &sp, &dp, state) != state) {
if (__scSchedule(sc, &sp, &dp, state) != state) {
__scExec(sc, sp, dp);
}
}

View File

@ -9,7 +9,7 @@ s32 func000016cc(void);
s32 osGetMemSize(void);
void *allocateStack(s32 threadid, s32 size);
void func00001b28(u32 arg0);
s32 func00001fa8(void);
void __scHandleRetraceViaPri(OSSched *sc, OSScTask *t);
s32 func00002078(OSSched *sc);
void __scHandleRSP(OSSched *sc);
void __scHandleRDP(OSSched *sc);

View File

@ -724,7 +724,7 @@ glabel func00009448
/* 946c: 3c018009 */ lui $at,%hi(var800918f4)
/* 9470: ac2618f4 */ sw $a2,%lo(var800918f4)($at)
/* 9474: 2484dbd0 */ addiu $a0,$a0,%lo(var8008dbd0)
/* 9478: 0c0007ea */ jal func00001fa8
/* 9478: 0c0007ea */ jal __scHandleRetraceViaPri
/* 947c: 00c02825 */ or $a1,$a2,$zero
.L00009480:
/* 9480: 0c00264f */ jal func0000993c

View File

@ -375,7 +375,7 @@ glabel func0002f8f4
/* 2f9b0: afa6001c */ sw $a2,0x1c($sp)
/* 2f9b4: 3c048009 */ lui $a0,%hi(var8008dbd0)
/* 2f9b8: 8fa5001c */ lw $a1,0x1c($sp)
/* 2f9bc: 0c0007ea */ jal func00001fa8
/* 2f9bc: 0c0007ea */ jal __scHandleRetraceViaPri
/* 2f9c0: 2484dbd0 */ addiu $a0,$a0,%lo(var8008dbd0)
/* 2f9c4: 3c028006 */ lui $v0,%hi(var8005f108)
/* 2f9c8: 2442f108 */ addiu $v0,$v0,%lo(var8005f108)