mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
123 lines
5.8 KiB
ArmAsm
123 lines
5.8 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel test_ray_zones
|
|
/* 038524 8005D124 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 038528 8005D128 C7A00048 */ lwc1 $f0, 0x48($sp)
|
|
/* 03852C 8005D12C C7A2004C */ lwc1 $f2, 0x4c($sp)
|
|
/* 038530 8005D130 AFBE0030 */ sw $fp, 0x30($sp)
|
|
/* 038534 8005D134 8FBE005C */ lw $fp, 0x5c($sp)
|
|
/* 038538 8005D138 AFB50024 */ sw $s5, 0x24($sp)
|
|
/* 03853C 8005D13C 3C15800E */ lui $s5, 0x800e
|
|
/* 038540 8005D140 26B591D0 */ addiu $s5, $s5, -0x6e30
|
|
/* 038544 8005D144 AFBF0034 */ sw $ra, 0x34($sp)
|
|
/* 038548 8005D148 AFB7002C */ sw $s7, 0x2c($sp)
|
|
/* 03854C 8005D14C AFB60028 */ sw $s6, 0x28($sp)
|
|
/* 038550 8005D150 AFB40020 */ sw $s4, 0x20($sp)
|
|
/* 038554 8005D154 AFB3001C */ sw $s3, 0x1c($sp)
|
|
/* 038558 8005D158 AFB20018 */ sw $s2, 0x18($sp)
|
|
/* 03855C 8005D15C AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 038560 8005D160 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 038564 8005D164 86A2000C */ lh $v0, 0xc($s5)
|
|
/* 038568 8005D168 2416FFFF */ addiu $s6, $zero, -1
|
|
/* 03856C 8005D16C 3C01800A */ lui $at, 0x800a
|
|
/* 038570 8005D170 AC27423C */ sw $a3, 0x423c($at)
|
|
/* 038574 8005D174 3C01800A */ lui $at, 0x800a
|
|
/* 038578 8005D178 E42C4230 */ swc1 $f12, 0x4230($at)
|
|
/* 03857C 8005D17C 3C01800A */ lui $at, 0x800a
|
|
/* 038580 8005D180 E42E4234 */ swc1 $f14, 0x4234($at)
|
|
/* 038584 8005D184 3C01800A */ lui $at, 0x800a
|
|
/* 038588 8005D188 AC264238 */ sw $a2, 0x4238($at)
|
|
/* 03858C 8005D18C 3C01800A */ lui $at, 0x800a
|
|
/* 038590 8005D190 E4204240 */ swc1 $f0, 0x4240($at)
|
|
/* 038594 8005D194 3C01800A */ lui $at, 0x800a
|
|
/* 038598 8005D198 E4224244 */ swc1 $f2, 0x4244($at)
|
|
/* 03859C 8005D19C C7C00000 */ lwc1 $f0, ($fp)
|
|
/* 0385A0 8005D1A0 3C01800A */ lui $at, 0x800a
|
|
/* 0385A4 8005D1A4 E4204254 */ swc1 $f0, 0x4254($at)
|
|
/* 0385A8 8005D1A8 18400022 */ blez $v0, .L8005D234
|
|
/* 0385AC 8005D1AC 0000982D */ daddu $s3, $zero, $zero
|
|
/* 0385B0 8005D1B0 3C170001 */ lui $s7, 1
|
|
/* 0385B4 8005D1B4 0260A02D */ daddu $s4, $s3, $zero
|
|
.L8005D1B8:
|
|
/* 0385B8 8005D1B8 8EA20004 */ lw $v0, 4($s5)
|
|
/* 0385BC 8005D1BC 00549021 */ addu $s2, $v0, $s4
|
|
/* 0385C0 8005D1C0 8E420000 */ lw $v0, ($s2)
|
|
/* 0385C4 8005D1C4 00571024 */ and $v0, $v0, $s7
|
|
/* 0385C8 8005D1C8 14400015 */ bnez $v0, .L8005D220
|
|
/* 0385CC 8005D1CC 00000000 */ nop
|
|
/* 0385D0 8005D1D0 8643000A */ lh $v1, 0xa($s2)
|
|
/* 0385D4 8005D1D4 10600012 */ beqz $v1, .L8005D220
|
|
/* 0385D8 8005D1D8 00000000 */ nop
|
|
/* 0385DC 8005D1DC 8E420010 */ lw $v0, 0x10($s2)
|
|
/* 0385E0 8005D1E0 1040000F */ beqz $v0, .L8005D220
|
|
/* 0385E4 8005D1E4 00000000 */ nop
|
|
/* 0385E8 8005D1E8 8E51000C */ lw $s1, 0xc($s2)
|
|
/* 0385EC 8005D1EC 1860000C */ blez $v1, .L8005D220
|
|
/* 0385F0 8005D1F0 0000802D */ daddu $s0, $zero, $zero
|
|
/* 0385F4 8005D1F4 0220202D */ daddu $a0, $s1, $zero
|
|
.L8005D1F8:
|
|
/* 0385F8 8005D1F8 8EA50000 */ lw $a1, ($s5)
|
|
/* 0385FC 8005D1FC 0C017127 */ jal test_down_ray_triangle
|
|
/* 038600 8005D200 26310040 */ addiu $s1, $s1, 0x40
|
|
/* 038604 8005D204 54400001 */ bnel $v0, $zero, .L8005D20C
|
|
/* 038608 8005D208 0260B02D */ daddu $s6, $s3, $zero
|
|
.L8005D20C:
|
|
/* 03860C 8005D20C 8642000A */ lh $v0, 0xa($s2)
|
|
/* 038610 8005D210 26100001 */ addiu $s0, $s0, 1
|
|
/* 038614 8005D214 0202102A */ slt $v0, $s0, $v0
|
|
/* 038618 8005D218 1440FFF7 */ bnez $v0, .L8005D1F8
|
|
/* 03861C 8005D21C 0220202D */ daddu $a0, $s1, $zero
|
|
.L8005D220:
|
|
/* 038620 8005D220 86A2000C */ lh $v0, 0xc($s5)
|
|
/* 038624 8005D224 26730001 */ addiu $s3, $s3, 1
|
|
/* 038628 8005D228 0262102A */ slt $v0, $s3, $v0
|
|
/* 03862C 8005D22C 1440FFE2 */ bnez $v0, .L8005D1B8
|
|
/* 038630 8005D230 2694001C */ addiu $s4, $s4, 0x1c
|
|
.L8005D234:
|
|
/* 038634 8005D234 06C0001D */ bltz $s6, .L8005D2AC
|
|
/* 038638 8005D238 02C0102D */ daddu $v0, $s6, $zero
|
|
/* 03863C 8005D23C 3C01800A */ lui $at, 0x800a
|
|
/* 038640 8005D240 C4204248 */ lwc1 $f0, 0x4248($at)
|
|
/* 038644 8005D244 8FA20050 */ lw $v0, 0x50($sp)
|
|
/* 038648 8005D248 E4400000 */ swc1 $f0, ($v0)
|
|
/* 03864C 8005D24C 3C01800A */ lui $at, 0x800a
|
|
/* 038650 8005D250 C420424C */ lwc1 $f0, 0x424c($at)
|
|
/* 038654 8005D254 8FA20054 */ lw $v0, 0x54($sp)
|
|
/* 038658 8005D258 E4400000 */ swc1 $f0, ($v0)
|
|
/* 03865C 8005D25C 3C01800A */ lui $at, 0x800a
|
|
/* 038660 8005D260 C4204250 */ lwc1 $f0, 0x4250($at)
|
|
/* 038664 8005D264 8FA20058 */ lw $v0, 0x58($sp)
|
|
/* 038668 8005D268 E4400000 */ swc1 $f0, ($v0)
|
|
/* 03866C 8005D26C 3C01800A */ lui $at, 0x800a
|
|
/* 038670 8005D270 C4204254 */ lwc1 $f0, 0x4254($at)
|
|
/* 038674 8005D274 E7C00000 */ swc1 $f0, ($fp)
|
|
/* 038678 8005D278 3C01800A */ lui $at, 0x800a
|
|
/* 03867C 8005D27C C4204258 */ lwc1 $f0, 0x4258($at)
|
|
/* 038680 8005D280 8FA20060 */ lw $v0, 0x60($sp)
|
|
/* 038684 8005D284 E4400000 */ swc1 $f0, ($v0)
|
|
/* 038688 8005D288 3C01800A */ lui $at, 0x800a
|
|
/* 03868C 8005D28C C420425C */ lwc1 $f0, 0x425c($at)
|
|
/* 038690 8005D290 8FA20064 */ lw $v0, 0x64($sp)
|
|
/* 038694 8005D294 E4400000 */ swc1 $f0, ($v0)
|
|
/* 038698 8005D298 3C01800A */ lui $at, 0x800a
|
|
/* 03869C 8005D29C C4204260 */ lwc1 $f0, 0x4260($at)
|
|
/* 0386A0 8005D2A0 8FA30068 */ lw $v1, 0x68($sp)
|
|
/* 0386A4 8005D2A4 02C0102D */ daddu $v0, $s6, $zero
|
|
/* 0386A8 8005D2A8 E4600000 */ swc1 $f0, ($v1)
|
|
.L8005D2AC:
|
|
/* 0386AC 8005D2AC 8FBF0034 */ lw $ra, 0x34($sp)
|
|
/* 0386B0 8005D2B0 8FBE0030 */ lw $fp, 0x30($sp)
|
|
/* 0386B4 8005D2B4 8FB7002C */ lw $s7, 0x2c($sp)
|
|
/* 0386B8 8005D2B8 8FB60028 */ lw $s6, 0x28($sp)
|
|
/* 0386BC 8005D2BC 8FB50024 */ lw $s5, 0x24($sp)
|
|
/* 0386C0 8005D2C0 8FB40020 */ lw $s4, 0x20($sp)
|
|
/* 0386C4 8005D2C4 8FB3001C */ lw $s3, 0x1c($sp)
|
|
/* 0386C8 8005D2C8 8FB20018 */ lw $s2, 0x18($sp)
|
|
/* 0386CC 8005D2CC 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 0386D0 8005D2D0 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 0386D4 8005D2D4 03E00008 */ jr $ra
|
|
/* 0386D8 8005D2D8 27BD0038 */ addiu $sp, $sp, 0x38
|
|
|