Decompile osVirtualToPhysical

This commit is contained in:
Ryan Dwyer committed 2021-01-30 01:31:52 +10:00
1 parent 916af14a9e
commit c34108da8d
2 files changed
+11 -38

No files matched your search

+1
View File
@@ -98,6 +98,7 @@ $(B_DIR)/lib/ultra/os/startthread.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/stopthread.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/stoptimer.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/thread.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/virtualtophysical.o: OPT_LVL := -O1
$(B_DIR)/lib/ultra/os/yieldthread.o: OPT_LVL := -O1
CFLAGS = -DVERSION=$(VERSION) \
+10 -38
View File
@@ -1,40 +1,12 @@
#include <libultra_internal.h>
GLOBAL_ASM(
glabel osVirtualToPhysical
/* 4b480: 27bdffe8 */ addiu $sp,$sp,-24
/* 4b484: afa40018 */ sw $a0,0x18($sp)
/* 4b488: 8fae0018 */ lw $t6,0x18($sp)
/* 4b48c: 3c018000 */ lui $at,0x8000
/* 4b490: afbf0014 */ sw $ra,0x14($sp)
/* 4b494: 01c1082b */ sltu $at,$t6,$at
/* 4b498: 14200007 */ bnez $at,.L0004b4b8
/* 4b49c: 3c01a000 */ lui $at,0xa000
/* 4b4a0: 01c1082b */ sltu $at,$t6,$at
/* 4b4a4: 10200004 */ beqz $at,.L0004b4b8
/* 4b4a8: 3c011fff */ lui $at,0x1fff
/* 4b4ac: 3421ffff */ ori $at,$at,0xffff
/* 4b4b0: 1000000e */ b .L0004b4ec
/* 4b4b4: 01c11024 */ and $v0,$t6,$at
.L0004b4b8:
/* 4b4b8: 8faf0018 */ lw $t7,0x18($sp)
/* 4b4bc: 3c01a000 */ lui $at,0xa000
/* 4b4c0: 01e1082b */ sltu $at,$t7,$at
/* 4b4c4: 14200007 */ bnez $at,.L0004b4e4
/* 4b4c8: 3c01c000 */ lui $at,0xc000
/* 4b4cc: 01e1082b */ sltu $at,$t7,$at
/* 4b4d0: 10200004 */ beqz $at,.L0004b4e4
/* 4b4d4: 3c011fff */ lui $at,0x1fff
/* 4b4d8: 3421ffff */ ori $at,$at,0xffff
/* 4b4dc: 10000003 */ b .L0004b4ec
/* 4b4e0: 01e11024 */ and $v0,$t7,$at
.L0004b4e4:
/* 4b4e4: 0c014724 */ jal __osProbeTLB
/* 4b4e8: 8fa40018 */ lw $a0,0x18($sp)
.L0004b4ec:
/* 4b4ec: 8fbf0014 */ lw $ra,0x14($sp)
/* 4b4f0: 27bd0018 */ addiu $sp,$sp,0x18
/* 4b4f4: 03e00008 */ jr $ra
/* 4b4f8: 00000000 */ nop
/* 4b4fc: 00000000 */ nop
);
u32 osVirtualToPhysical(void *addr)
{
if (IS_KSEG0(addr)) {
return K0_TO_PHYS(addr);
} else if (IS_KSEG1(addr)) {
return K1_TO_PHYS(addr);
} else {
return __osProbeTLB(addr);
}
}