papermario/ver/us/asm/nonmatchings/os/41540_len_c0/osStopThread.s
Ethan Roseman 3315d6010f
Splat refactor (#257)
* all non-world rodata migrated

* data disasm

* kinda working

* updated yaml

* bloop

* linker header

* configure 2.0

* bin

* mass rename to remove code_

* pause rename

* battle partner stuff

* whew

* more renames

* more renames

* more renaming

* it builds!

* updates

* remove main prefix

* one more thing

* crc, yay0

* .data, .rodata, .bss

* img

* dead_atan2

* it buildsgit add -A

* split battle/partner/6FAD10

* rm &s on sleepy_sheep syms

* sha1sum ninja rule description

* OK but commented out PaperMarioMapFS and PaperMarioNpcSprites

* uncomment

* fix mapfs

* match func_8003CFB4

* .

* clean up and name npc_iter_no_op

* npc.c

* enable cc warnings

* name npc_find_near

* use singular options.asset_path

* smores

* cc_dsl only when needed

* kinda fix configure for splat refactor2

* ok!

* new msg format

* remove old msg format docs

* slight bug fixes, splat adjustment

* git subrepo pull (merge) --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "cfc140bb76"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "cfc140bb76"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* git subrepo pull (merge) --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "85349befcd"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "85349befcd"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* Update symbol addrs

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "a44631e194"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "a44631e194"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

Co-authored-by: Alex Bates <hi@imalex.xyz>
2021-04-13 16:47:52 +09:00

58 lines
2.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osStopThread
/* 41540 80066140 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 41544 80066144 AFB00010 */ sw $s0, 0x10($sp)
/* 41548 80066148 00808021 */ addu $s0, $a0, $zero
/* 4154C 8006614C AFBF0018 */ sw $ra, 0x18($sp)
/* 41550 80066150 0C01ACD8 */ jal __osDisableInt
/* 41554 80066154 AFB10014 */ sw $s1, 0x14($sp)
/* 41558 80066158 24030004 */ addiu $v1, $zero, 4
/* 4155C 8006615C 12000002 */ beqz $s0, .L80066168
/* 41560 80066160 00408821 */ addu $s1, $v0, $zero
/* 41564 80066164 96030010 */ lhu $v1, 0x10($s0)
.L80066168:
/* 41568 80066168 3063FFFF */ andi $v1, $v1, 0xffff
/* 4156C 8006616C 24020004 */ addiu $v0, $zero, 4
/* 41570 80066170 1062000C */ beq $v1, $v0, .L800661A4
/* 41574 80066174 28620005 */ slti $v0, $v1, 5
/* 41578 80066178 10400005 */ beqz $v0, .L80066190
/* 4157C 8006617C 24020002 */ addiu $v0, $zero, 2
/* 41580 80066180 10620010 */ beq $v1, $v0, .L800661C4
/* 41584 80066184 00000000 */ nop
/* 41588 80066188 08019876 */ j .L800661D8
/* 4158C 8006618C 00000000 */ nop
.L80066190:
/* 41590 80066190 24020008 */ addiu $v0, $zero, 8
/* 41594 80066194 1062000B */ beq $v1, $v0, .L800661C4
/* 41598 80066198 00000000 */ nop
/* 4159C 8006619C 08019876 */ j .L800661D8
/* 415A0 800661A0 00000000 */ nop
.L800661A4:
/* 415A4 800661A4 3C038009 */ lui $v1, %hi(__osRunningThread)
/* 415A8 800661A8 8C634660 */ lw $v1, %lo(__osRunningThread)($v1)
/* 415AC 800661AC 00002021 */ addu $a0, $zero, $zero
/* 415B0 800661B0 24020001 */ addiu $v0, $zero, 1
/* 415B4 800661B4 0C01AC1B */ jal __osEnqueueAndYield
/* 415B8 800661B8 A4620010 */ sh $v0, 0x10($v1)
/* 415BC 800661BC 08019876 */ j .L800661D8
/* 415C0 800661C0 00000000 */ nop
.L800661C4:
/* 415C4 800661C4 8E040008 */ lw $a0, 8($s0)
/* 415C8 800661C8 24020001 */ addiu $v0, $zero, 1
/* 415CC 800661CC 02002821 */ addu $a1, $s0, $zero
/* 415D0 800661D0 0C019880 */ jal __osDequeueThread
/* 415D4 800661D4 A6020010 */ sh $v0, 0x10($s0)
.L800661D8:
/* 415D8 800661D8 0C01ACF4 */ jal __osRestoreInt
/* 415DC 800661DC 02202021 */ addu $a0, $s1, $zero
/* 415E0 800661E0 8FBF0018 */ lw $ra, 0x18($sp)
/* 415E4 800661E4 8FB10014 */ lw $s1, 0x14($sp)
/* 415E8 800661E8 8FB00010 */ lw $s0, 0x10($sp)
/* 415EC 800661EC 03E00008 */ jr $ra
/* 415F0 800661F0 27BD0020 */ addiu $sp, $sp, 0x20
/* 415F4 800661F4 00000000 */ nop
/* 415F8 800661F8 00000000 */ nop
/* 415FC 800661FC 00000000 */ nop