Decompile osSpTaskYeilded
This commit is contained in:
parent
a15686b075
commit
cc9df2b186
1
Makefile
1
Makefile
|
|
@ -68,6 +68,7 @@ $(B_DIR)/lib/libc/llcvt.o: OPT_LVL := -O1
|
|||
$(B_DIR)/lib/ultra/io/dpctr.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/sp.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/spsetpc.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/sptaskyielded.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/vigetcurrframebuf.o: OPT_LVL := -O1
|
||||
$(B_DIR)/lib/ultra/io/vigetnextframebuf.o: OPT_LVL := -O1
|
||||
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@
|
|||
build/ROMID/lib/ultra/os/sendmesg.o (section); \
|
||||
build/ROMID/lib/ultra/os/stoptimer.o (section); \
|
||||
build/ROMID/lib/ultra/os/settimer.o (section); \
|
||||
build/ROMID/lib/lib_48c00.o (section); \
|
||||
build/ROMID/lib/ultra/io/sptaskyielded.o (section); \
|
||||
build/ROMID/lib/ultra/io/dpctr.o (section); \
|
||||
build/ROMID/lib/lib_48cd0.o (section); \
|
||||
build/ROMID/lib/lib_48dc0.o (section); \
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#include "lib/lib_48150.h"
|
||||
#include "lib/lib_481d0.h"
|
||||
#include "lib/lib_485e0.h"
|
||||
#include "lib/lib_48c00.h"
|
||||
#include "lib/lib_48cd0.h"
|
||||
#include "lib/lib_48dc0.h"
|
||||
#include "lib/lib_48ef0.h"
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
#include "lib/lib_48150.h"
|
||||
#include "lib/lib_481d0.h"
|
||||
#include "lib/lib_485e0.h"
|
||||
#include "lib/lib_48c00.h"
|
||||
#include "lib/lib_48cd0.h"
|
||||
#include "lib/lib_48dc0.h"
|
||||
#include "lib/lib_48ef0.h"
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
#include "lib/lib_48150.h"
|
||||
#include "lib/lib_481d0.h"
|
||||
#include "lib/lib_485e0.h"
|
||||
#include "lib/lib_48c00.h"
|
||||
#include "lib/lib_48cd0.h"
|
||||
#include "lib/lib_48dc0.h"
|
||||
#include "lib/lib_48ef0.h"
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
#ifndef _IN_LIB_LIB_48C00_H
|
||||
#define _IN_LIB_LIB_48C00_H
|
||||
#include <ultra64.h>
|
||||
#include "types.h"
|
||||
|
||||
#endif
|
||||
|
|
@ -3,6 +3,6 @@
|
|||
#include <ultra64.h>
|
||||
#include "types.h"
|
||||
|
||||
u32 func00051890(void);
|
||||
u32 __osSpGetStatus(void);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
#include <ultra64.h>
|
||||
#include "constants.h"
|
||||
#include "game/data/data_000000.h"
|
||||
#include "game/data/data_0083d0.h"
|
||||
#include "game/data/data_00e460.h"
|
||||
#include "game/data/data_0160b0.h"
|
||||
#include "game/data/data_01a3a0.h"
|
||||
#include "game/data/data_020df0.h"
|
||||
#include "game/data/data_02da90.h"
|
||||
#include "gvars/gvars.h"
|
||||
#include "lib/lib_51890.h"
|
||||
#include "types.h"
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel osSpTaskYielded
|
||||
/* 48c00: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* 48c04: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* 48c08: 0c014624 */ jal func00051890
|
||||
/* 48c0c: afa40020 */ sw $a0,0x20($sp)
|
||||
/* 48c10: afa2001c */ sw $v0,0x1c($sp)
|
||||
/* 48c14: 8fae001c */ lw $t6,0x1c($sp)
|
||||
/* 48c18: 31cf0100 */ andi $t7,$t6,0x100
|
||||
/* 48c1c: 11e00004 */ beqz $t7,.L00048c30
|
||||
/* 48c20: 00000000 */ nop
|
||||
/* 48c24: 24180001 */ addiu $t8,$zero,0x1
|
||||
/* 48c28: 10000002 */ b .L00048c34
|
||||
/* 48c2c: afb80018 */ sw $t8,0x18($sp)
|
||||
.L00048c30:
|
||||
/* 48c30: afa00018 */ sw $zero,0x18($sp)
|
||||
.L00048c34:
|
||||
/* 48c34: 8fb9001c */ lw $t9,0x1c($sp)
|
||||
/* 48c38: 33280080 */ andi $t0,$t9,0x80
|
||||
/* 48c3c: 1100000b */ beqz $t0,.L00048c6c
|
||||
/* 48c40: 00000000 */ nop
|
||||
/* 48c44: 8fa90020 */ lw $t1,0x20($sp)
|
||||
/* 48c48: 8fab0018 */ lw $t3,0x18($sp)
|
||||
/* 48c4c: 2401fffd */ addiu $at,$zero,-3
|
||||
/* 48c50: 8d2a0004 */ lw $t2,0x4($t1)
|
||||
/* 48c54: 014b6025 */ or $t4,$t2,$t3
|
||||
/* 48c58: ad2c0004 */ sw $t4,0x4($t1)
|
||||
/* 48c5c: 8fad0020 */ lw $t5,0x20($sp)
|
||||
/* 48c60: 8dae0004 */ lw $t6,0x4($t5)
|
||||
/* 48c64: 01c17824 */ and $t7,$t6,$at
|
||||
/* 48c68: adaf0004 */ sw $t7,0x4($t5)
|
||||
.L00048c6c:
|
||||
/* 48c6c: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* 48c70: 8fa20018 */ lw $v0,0x18($sp)
|
||||
/* 48c74: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
/* 48c78: 03e00008 */ jr $ra
|
||||
/* 48c7c: 00000000 */ nop
|
||||
);
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
#include "types.h"
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func00051890
|
||||
glabel __osSpGetStatus
|
||||
/* 51890: 3c0ea404 */ lui $t6,0xa404
|
||||
/* 51894: 03e00008 */ jr $ra
|
||||
/* 51898: 8dc20010 */ lw $v0,0x10($t6)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
#include "libultra_internal.h"
|
||||
|
||||
OSYieldResult osSpTaskYielded(OSTask *tp)
|
||||
{
|
||||
u32 status;
|
||||
OSYieldResult result;
|
||||
|
||||
status = __osSpGetStatus();
|
||||
|
||||
if (status & SP_STATUS_YIELDED) {
|
||||
result = OS_TASK_YIELDED;
|
||||
} else {
|
||||
result = 0;
|
||||
}
|
||||
|
||||
if (status & SP_STATUS_YIELD) {
|
||||
tp->t.flags |= result;
|
||||
tp->t.flags &= ~(OS_TASK_DP_WAIT);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
Loading…
Reference in New Issue