Files
goldeneye_src/src/libultra/setthreadpri.s
T
KholdFuzion 3858440e14 whoops
2020-11-20 14:35:54 -06:00

71 lines
3.2 KiB
ArmAsm

# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel osSetThreadPri
/* 00E400 7000D800 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 00E404 7000D804 AFBF001C */ sw $ra, 0x1c($sp)
/* 00E408 7000D808 AFA40028 */ sw $a0, 0x28($sp)
/* 00E40C 7000D80C AFA5002C */ sw $a1, 0x2c($sp)
/* 00E410 7000D810 0C00617C */ jal __osDisableInt
/* 00E414 7000D814 AFB00018 */ sw $s0, 0x18($sp)
/* 00E418 7000D818 8FAE0028 */ lw $t6, 0x28($sp)
/* 00E41C 7000D81C 00408025 */ move $s0, $v0
/* 00E420 7000D820 15C00004 */ bnez $t6, .L7000D834
/* 00E424 7000D824 00000000 */ nop
/* 00E428 7000D828 3C0F8002 */ lui $t7, %hi(__osRunningThread)
/* 00E42C 7000D82C 8DEF7730 */ lw $t7, %lo(__osRunningThread)($t7)
/* 00E430 7000D830 AFAF0028 */ sw $t7, 0x28($sp)
.L7000D834:
/* 00E434 7000D834 8FB80028 */ lw $t8, 0x28($sp)
/* 00E438 7000D838 8FA8002C */ lw $t0, 0x2c($sp)
/* 00E43C 7000D83C 8F190004 */ lw $t9, 4($t8)
/* 00E440 7000D840 13280020 */ beq $t9, $t0, .L7000D8C4
/* 00E444 7000D844 00000000 */ nop
/* 00E448 7000D848 AF080004 */ sw $t0, 4($t8)
/* 00E44C 7000D84C 3C0A8002 */ lui $t2, %hi(__osRunningThread)
/* 00E450 7000D850 8D4A7730 */ lw $t2, %lo(__osRunningThread)($t2)
/* 00E454 7000D854 8FA90028 */ lw $t1, 0x28($sp)
/* 00E458 7000D858 112A000C */ beq $t1, $t2, .L7000D88C
/* 00E45C 7000D85C 00000000 */ nop
/* 00E460 7000D860 952B0010 */ lhu $t3, 0x10($t1)
/* 00E464 7000D864 24010001 */ li $at, 1
/* 00E468 7000D868 11610008 */ beq $t3, $at, .L7000D88C
/* 00E46C 7000D86C 00000000 */ nop
/* 00E470 7000D870 8D240008 */ lw $a0, 8($t1)
/* 00E474 7000D874 0C0042A4 */ jal __osDequeueThread
/* 00E478 7000D878 01202825 */ move $a1, $t1
/* 00E47C 7000D87C 8FAC0028 */ lw $t4, 0x28($sp)
/* 00E480 7000D880 8D840008 */ lw $a0, 8($t4)
/* 00E484 7000D884 0C00422B */ jal __osEnqueueThread
/* 00E488 7000D888 01802825 */ move $a1, $t4
.L7000D88C:
/* 00E48C 7000D88C 3C0D8002 */ lui $t5, %hi(__osRunningThread)
/* 00E490 7000D890 3C0F8002 */ lui $t7, %hi(__osRunQueue)
/* 00E494 7000D894 8DEF7728 */ lw $t7, %lo(__osRunQueue)($t7)
/* 00E498 7000D898 8DAD7730 */ lw $t5, %lo(__osRunningThread)($t5)
/* 00E49C 7000D89C 8DF90004 */ lw $t9, 4($t7)
/* 00E4A0 7000D8A0 8DAE0004 */ lw $t6, 4($t5)
/* 00E4A4 7000D8A4 01D9082A */ slt $at, $t6, $t9
/* 00E4A8 7000D8A8 10200006 */ beqz $at, .L7000D8C4
/* 00E4AC 7000D8AC 00000000 */ nop
/* 00E4B0 7000D8B0 24080002 */ li $t0, 2
/* 00E4B4 7000D8B4 3C048002 */ lui $a0, %hi(__osRunQueue)
/* 00E4B8 7000D8B8 A5A80010 */ sh $t0, 0x10($t5)
/* 00E4BC 7000D8BC 0C0041EB */ jal __osEnqueueAndYield
/* 00E4C0 7000D8C0 24847728 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, 0x7728
.L7000D8C4:
/* 00E4C4 7000D8C4 0C006184 */ jal __osRestoreInt
/* 00E4C8 7000D8C8 02002025 */ move $a0, $s0
/* 00E4CC 7000D8CC 8FBF001C */ lw $ra, 0x1c($sp)
/* 00E4D0 7000D8D0 8FB00018 */ lw $s0, 0x18($sp)
/* 00E4D4 7000D8D4 27BD0028 */ addiu $sp, $sp, 0x28
/* 00E4D8 7000D8D8 03E00008 */ jr $ra
/* 00E4DC 7000D8DC 00000000 */ nop