papermario/ver/jp/asm/nonmatchings/main_3C910/func_80061530.s
Ethan Roseman 698cf99458
jp cod (Created the first segment's c files for jp) (#194)
* jp cod

* just have less code and it works

* oops

* removing splat cause subrepo is being dumb

* git subrepo clone https://github.com/ethteck/splat.git tools/splat

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

* move jp stuff + revert configure

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "c56195a9c5"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "c56195a9c5"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"
2021-02-27 00:36:33 +09:00

84 lines
3.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80061530
/* 3C930 80061530 44841000 */ mtc1 $a0, $f2
/* 3C934 80061534 00000000 */ nop
/* 3C938 80061538 468010A1 */ cvt.d.w $f2, $f2
/* 3C93C 8006153C 3C018009 */ lui $at, %hi(D_80095888)
/* 3C940 80061540 C4245888 */ lwc1 $f4, %lo(D_80095888)($at)
/* 3C944 80061544 46802120 */ cvt.s.w $f4, $f4
/* 3C948 80061548 04830005 */ bgezl $a0, .L80061560
/* 3C94C 8006154C 46201020 */ cvt.s.d $f0, $f2
/* 3C950 80061550 3C01800A */ lui $at, %hi(D_80099B20)
/* 3C954 80061554 D4209B20 */ ldc1 $f0, %lo(D_80099B20)($at)
/* 3C958 80061558 46201080 */ add.d $f2, $f2, $f0
/* 3C95C 8006155C 46201020 */ cvt.s.d $f0, $f2
.L80061560:
/* 3C960 80061560 46002003 */ div.s $f0, $f4, $f0
/* 3C964 80061564 3C013F00 */ lui $at, 0x3f00
/* 3C968 80061568 44811000 */ mtc1 $at, $f2
/* 3C96C 8006156C 00000000 */ nop
/* 3C970 80061570 46020080 */ add.s $f2, $f0, $f2
/* 3C974 80061574 3C014F00 */ lui $at, 0x4f00
/* 3C978 80061578 44810000 */ mtc1 $at, $f0
/* 3C97C 8006157C 00000000 */ nop
/* 3C980 80061580 4602003E */ c.le.s $f0, $f2
/* 3C984 80061584 00000000 */ nop
/* 3C988 80061588 00000000 */ nop
/* 3C98C 8006158C 45030006 */ bc1tl .L800615A8
/* 3C990 80061590 46001001 */ sub.s $f0, $f2, $f0
/* 3C994 80061594 4600100D */ trunc.w.s $f0, $f2
/* 3C998 80061598 44050000 */ mfc1 $a1, $f0
/* 3C99C 8006159C 00000000 */ nop
/* 3C9A0 800615A0 0801856F */ j .L800615BC
/* 3C9A4 800615A4 2CA20084 */ sltiu $v0, $a1, 0x84
.L800615A8:
/* 3C9A8 800615A8 4600008D */ trunc.w.s $f2, $f0
/* 3C9AC 800615AC 44051000 */ mfc1 $a1, $f2
/* 3C9B0 800615B0 3C028000 */ lui $v0, 0x8000
/* 3C9B4 800615B4 00A22825 */ or $a1, $a1, $v0
/* 3C9B8 800615B8 2CA20084 */ sltiu $v0, $a1, 0x84
.L800615BC:
/* 3C9BC 800615BC 14400020 */ bnez $v0, .L80061640
/* 3C9C0 800615C0 2402FFFF */ addiu $v0, $zero, -1
/* 3C9C4 800615C4 3C023E0F */ lui $v0, 0x3e0f
/* 3C9C8 800615C8 344283E1 */ ori $v0, $v0, 0x83e1
/* 3C9CC 800615CC 00A20019 */ multu $a1, $v0
/* 3C9D0 800615D0 00003810 */ mfhi $a3
/* 3C9D4 800615D4 00073102 */ srl $a2, $a3, 4
/* 3C9D8 800615D8 30C200FF */ andi $v0, $a2, 0xff
/* 3C9DC 800615DC 2C420011 */ sltiu $v0, $v0, 0x11
/* 3C9E0 800615E0 50400001 */ beql $v0, $zero, .L800615E8
/* 3C9E4 800615E4 24060010 */ addiu $a2, $zero, 0x10
.L800615E8:
/* 3C9E8 800615E8 3C03A450 */ lui $v1, 0xa450
/* 3C9EC 800615EC 34630010 */ ori $v1, $v1, 0x10
/* 3C9F0 800615F0 3C04A450 */ lui $a0, 0xa450
/* 3C9F4 800615F4 34840014 */ ori $a0, $a0, 0x14
/* 3C9F8 800615F8 24A2FFFF */ addiu $v0, $a1, -1
/* 3C9FC 800615FC AC620000 */ sw $v0, ($v1)
/* 3CA00 80061600 3C028009 */ lui $v0, %hi(D_80095888)
/* 3CA04 80061604 8C425888 */ lw $v0, %lo(D_80095888)($v0)
/* 3CA08 80061608 30C300FF */ andi $v1, $a2, 0xff
/* 3CA0C 8006160C 2463FFFF */ addiu $v1, $v1, -1
/* 3CA10 80061610 AC830000 */ sw $v1, ($a0)
/* 3CA14 80061614 0045001A */ div $zero, $v0, $a1
/* 3CA18 80061618 14A00002 */ bnez $a1, .L80061624
/* 3CA1C 8006161C 00000000 */ nop
/* 3CA20 80061620 0007000D */ break 7
.L80061624:
/* 3CA24 80061624 2401FFFF */ addiu $at, $zero, -1
/* 3CA28 80061628 14A10004 */ bne $a1, $at, .L8006163C
/* 3CA2C 8006162C 3C018000 */ lui $at, 0x8000
/* 3CA30 80061630 14410002 */ bne $v0, $at, .L8006163C
/* 3CA34 80061634 00000000 */ nop
/* 3CA38 80061638 0006000D */ break 6
.L8006163C:
/* 3CA3C 8006163C 00001012 */ mflo $v0
.L80061640:
/* 3CA40 80061640 03E00008 */ jr $ra
/* 3CA44 80061644 00000000 */ nop
/* 3CA48 80061648 00000000 */ nop
/* 3CA4C 8006164C 00000000 */ nop