Files

549 lines
24 KiB
ArmAsm

# runtime.c
.include "macros.inc"
.section .text, "ax"
.balign 4
glabel __cvt_fp2unsigned
/* 0C8334 800CD8D4 9421FFF0 */ stwu r1, -0x10(r1)
/* 0C8338 800CD8D8 3C80800D */ lis r4, __constants@h
/* 0C833C 800CD8DC 60843310 */ ori r4, r4, __constants@l
/* 0C8340 800CD8E0 38600000 */ li r3, 0
/* 0C8344 800CD8E4 C8040000 */ lfd f0, 0(r4)
/* 0C8348 800CD8E8 C8640008 */ lfd f3, 8(r4)
/* 0C834C 800CD8EC C8840010 */ lfd f4, 0x10(r4)
/* 0C8350 800CD8F0 FC010000 */ fcmpu cr0, f1, f0
/* 0C8354 800CD8F4 FF011800 */ fcmpu cr6, f1, f3
/* 0C8358 800CD8F8 41800030 */ blt lbl_800CD928
/* 0C835C 800CD8FC 3863FFFF */ addi r3, r3, -1
/* 0C8360 800CD900 40980028 */ bge cr6, lbl_800CD928
/* 0C8364 800CD904 FF812000 */ fcmpu cr7, f1, f4
/* 0C8368 800CD908 FC400890 */ fmr f2, f1
/* 0C836C 800CD90C 419C0008 */ blt cr7, lbl_800CD914
/* 0C8370 800CD910 FC412028 */ fsub f2, f1, f4
lbl_800CD914:
/* 0C8374 800CD914 FC40101E */ fctiwz f2, f2
/* 0C8378 800CD918 D8410008 */ stfd f2, 8(r1)
/* 0C837C 800CD91C 8061000C */ lwz r3, 0xc(r1)
/* 0C8380 800CD920 419C0008 */ blt cr7, lbl_800CD928
/* 0C8384 800CD924 3C638000 */ addis r3, r3, 0x8000
lbl_800CD928:
/* 0C8388 800CD928 38210010 */ addi r1, r1, 0x10
/* 0C838C 800CD92C 4E800020 */ blr
glabel __div2u
/* 0C8390 800CD930 2C030000 */ cmpwi r3, 0
/* 0C8394 800CD934 7C600034 */ cntlzw r0, r3
/* 0C8398 800CD938 7C890034 */ cntlzw r9, r4
/* 0C839C 800CD93C 40820008 */ bne lbl_800CD944
/* 0C83A0 800CD940 38090020 */ addi r0, r9, 0x20
lbl_800CD944:
/* 0C83A4 800CD944 2C050000 */ cmpwi r5, 0
/* 0C83A8 800CD948 7CA90034 */ cntlzw r9, r5
/* 0C83AC 800CD94C 7CCA0034 */ cntlzw r10, r6
/* 0C83B0 800CD950 40820008 */ bne lbl_800CD958
/* 0C83B4 800CD954 392A0020 */ addi r9, r10, 0x20
lbl_800CD958:
/* 0C83B8 800CD958 7C004800 */ cmpw r0, r9
/* 0C83BC 800CD95C 21400040 */ subfic r10, r0, 0x40
/* 0C83C0 800CD960 418100B0 */ bgt lbl_800CDA10
/* 0C83C4 800CD964 39290001 */ addi r9, r9, 1
/* 0C83C8 800CD968 21290040 */ subfic r9, r9, 0x40
/* 0C83CC 800CD96C 7C004A14 */ add r0, r0, r9
/* 0C83D0 800CD970 7D295050 */ subf r9, r9, r10
/* 0C83D4 800CD974 7D2903A6 */ mtctr r9
/* 0C83D8 800CD978 2C090020 */ cmpwi r9, 0x20
/* 0C83DC 800CD97C 38E9FFE0 */ addi r7, r9, -32
/* 0C83E0 800CD980 41800010 */ blt lbl_800CD990
/* 0C83E4 800CD984 7C683C30 */ srw r8, r3, r7
/* 0C83E8 800CD988 38E00000 */ li r7, 0
/* 0C83EC 800CD98C 48000018 */ b lbl_800CD9A4
lbl_800CD990:
/* 0C83F0 800CD990 7C884C30 */ srw r8, r4, r9
/* 0C83F4 800CD994 20E90020 */ subfic r7, r9, 0x20
/* 0C83F8 800CD998 7C673830 */ slw r7, r3, r7
/* 0C83FC 800CD99C 7D083B78 */ or r8, r8, r7
/* 0C8400 800CD9A0 7C674C30 */ srw r7, r3, r9
lbl_800CD9A4:
/* 0C8404 800CD9A4 2C000020 */ cmpwi r0, 0x20
/* 0C8408 800CD9A8 3120FFE0 */ addic r9, r0, -32
/* 0C840C 800CD9AC 41800010 */ blt lbl_800CD9BC
/* 0C8410 800CD9B0 7C834830 */ slw r3, r4, r9
/* 0C8414 800CD9B4 38800000 */ li r4, 0
/* 0C8418 800CD9B8 48000018 */ b lbl_800CD9D0
lbl_800CD9BC:
/* 0C841C 800CD9BC 7C630030 */ slw r3, r3, r0
/* 0C8420 800CD9C0 21200020 */ subfic r9, r0, 0x20
/* 0C8424 800CD9C4 7C894C30 */ srw r9, r4, r9
/* 0C8428 800CD9C8 7C634B78 */ or r3, r3, r9
/* 0C842C 800CD9CC 7C840030 */ slw r4, r4, r0
lbl_800CD9D0:
/* 0C8430 800CD9D0 3940FFFF */ li r10, -1
/* 0C8434 800CD9D4 30E70000 */ addic r7, r7, 0
lbl_800CD9D8:
/* 0C8438 800CD9D8 7C842114 */ adde r4, r4, r4
/* 0C843C 800CD9DC 7C631914 */ adde r3, r3, r3
/* 0C8440 800CD9E0 7D084114 */ adde r8, r8, r8
/* 0C8444 800CD9E4 7CE73914 */ adde r7, r7, r7
/* 0C8448 800CD9E8 7C064010 */ subfc r0, r6, r8
/* 0C844C 800CD9EC 7D253911 */ subfe. r9, r5, r7
/* 0C8450 800CD9F0 41800010 */ blt lbl_800CDA00
/* 0C8454 800CD9F4 7C080378 */ mr r8, r0
/* 0C8458 800CD9F8 7D274B78 */ mr r7, r9
/* 0C845C 800CD9FC 300A0001 */ addic r0, r10, 1
lbl_800CDA00:
/* 0C8460 800CDA00 4200FFD8 */ bdnz lbl_800CD9D8
/* 0C8464 800CDA04 7C842114 */ adde r4, r4, r4
/* 0C8468 800CDA08 7C631914 */ adde r3, r3, r3
/* 0C846C 800CDA0C 4E800020 */ blr
lbl_800CDA10:
/* 0C8470 800CDA10 38800000 */ li r4, 0
/* 0C8474 800CDA14 38600000 */ li r3, 0
/* 0C8478 800CDA18 4E800020 */ blr
glabel __div2i
/* 0C847C 800CDA1C 9421FFF0 */ stwu r1, -0x10(r1)
/* 0C8480 800CDA20 54690001 */ rlwinm. r9, r3, 0, 0, 0
/* 0C8484 800CDA24 4182000C */ beq lbl_800CDA30
/* 0C8488 800CDA28 20840000 */ subfic r4, r4, 0
/* 0C848C 800CDA2C 7C630190 */ subfze r3, r3
lbl_800CDA30:
/* 0C8490 800CDA30 91210008 */ stw r9, 8(r1)
/* 0C8494 800CDA34 54A90001 */ rlwinm. r9, r5, 0, 0, 0
/* 0C8498 800CDA38 4182000C */ beq lbl_800CDA44
/* 0C849C 800CDA3C 20C60000 */ subfic r6, r6, 0
/* 0C84A0 800CDA40 7CA50190 */ subfze r5, r5
lbl_800CDA44:
/* 0C84A4 800CDA44 9121000C */ stw r9, 0xc(r1)
/* 0C84A8 800CDA48 2C030000 */ cmpwi r3, 0
/* 0C84AC 800CDA4C 7C600034 */ cntlzw r0, r3
/* 0C84B0 800CDA50 7C890034 */ cntlzw r9, r4
/* 0C84B4 800CDA54 40820008 */ bne lbl_800CDA5C
/* 0C84B8 800CDA58 38090020 */ addi r0, r9, 0x20
lbl_800CDA5C:
/* 0C84BC 800CDA5C 2C050000 */ cmpwi r5, 0
/* 0C84C0 800CDA60 7CA90034 */ cntlzw r9, r5
/* 0C84C4 800CDA64 7CCA0034 */ cntlzw r10, r6
/* 0C84C8 800CDA68 40820008 */ bne lbl_800CDA70
/* 0C84CC 800CDA6C 392A0020 */ addi r9, r10, 0x20
lbl_800CDA70:
/* 0C84D0 800CDA70 7C004800 */ cmpw r0, r9
/* 0C84D4 800CDA74 21400040 */ subfic r10, r0, 0x40
/* 0C84D8 800CDA78 418100CC */ bgt lbl_800CDB44
/* 0C84DC 800CDA7C 39290001 */ addi r9, r9, 1
/* 0C84E0 800CDA80 21290040 */ subfic r9, r9, 0x40
/* 0C84E4 800CDA84 7C004A14 */ add r0, r0, r9
/* 0C84E8 800CDA88 7D295050 */ subf r9, r9, r10
/* 0C84EC 800CDA8C 7D2903A6 */ mtctr r9
/* 0C84F0 800CDA90 2C090020 */ cmpwi r9, 0x20
/* 0C84F4 800CDA94 38E9FFE0 */ addi r7, r9, -32
/* 0C84F8 800CDA98 41800010 */ blt lbl_800CDAA8
/* 0C84FC 800CDA9C 7C683C30 */ srw r8, r3, r7
/* 0C8500 800CDAA0 38E00000 */ li r7, 0
/* 0C8504 800CDAA4 48000018 */ b lbl_800CDABC
lbl_800CDAA8:
/* 0C8508 800CDAA8 7C884C30 */ srw r8, r4, r9
/* 0C850C 800CDAAC 20E90020 */ subfic r7, r9, 0x20
/* 0C8510 800CDAB0 7C673830 */ slw r7, r3, r7
/* 0C8514 800CDAB4 7D083B78 */ or r8, r8, r7
/* 0C8518 800CDAB8 7C674C30 */ srw r7, r3, r9
lbl_800CDABC:
/* 0C851C 800CDABC 2C000020 */ cmpwi r0, 0x20
/* 0C8520 800CDAC0 3120FFE0 */ addic r9, r0, -32
/* 0C8524 800CDAC4 41800010 */ blt lbl_800CDAD4
/* 0C8528 800CDAC8 7C834830 */ slw r3, r4, r9
/* 0C852C 800CDACC 38800000 */ li r4, 0
/* 0C8530 800CDAD0 48000018 */ b lbl_800CDAE8
lbl_800CDAD4:
/* 0C8534 800CDAD4 7C630030 */ slw r3, r3, r0
/* 0C8538 800CDAD8 21200020 */ subfic r9, r0, 0x20
/* 0C853C 800CDADC 7C894C30 */ srw r9, r4, r9
/* 0C8540 800CDAE0 7C634B78 */ or r3, r3, r9
/* 0C8544 800CDAE4 7C840030 */ slw r4, r4, r0
lbl_800CDAE8:
/* 0C8548 800CDAE8 3940FFFF */ li r10, -1
/* 0C854C 800CDAEC 30E70000 */ addic r7, r7, 0
lbl_800CDAF0:
/* 0C8550 800CDAF0 7C842114 */ adde r4, r4, r4
/* 0C8554 800CDAF4 7C631914 */ adde r3, r3, r3
/* 0C8558 800CDAF8 7D084114 */ adde r8, r8, r8
/* 0C855C 800CDAFC 7CE73914 */ adde r7, r7, r7
/* 0C8560 800CDB00 7C064010 */ subfc r0, r6, r8
/* 0C8564 800CDB04 7D253911 */ subfe. r9, r5, r7
/* 0C8568 800CDB08 41800010 */ blt lbl_800CDB18
/* 0C856C 800CDB0C 7C080378 */ mr r8, r0
/* 0C8570 800CDB10 7D274B78 */ mr r7, r9
/* 0C8574 800CDB14 300A0001 */ addic r0, r10, 1
lbl_800CDB18:
/* 0C8578 800CDB18 4200FFD8 */ bdnz lbl_800CDAF0
/* 0C857C 800CDB1C 7C842114 */ adde r4, r4, r4
/* 0C8580 800CDB20 7C631914 */ adde r3, r3, r3
/* 0C8584 800CDB24 81210008 */ lwz r9, 8(r1)
/* 0C8588 800CDB28 8141000C */ lwz r10, 0xc(r1)
/* 0C858C 800CDB2C 7D275279 */ xor. r7, r9, r10
/* 0C8590 800CDB30 41820010 */ beq lbl_800CDB40
/* 0C8594 800CDB34 2C090000 */ cmpwi r9, 0
/* 0C8598 800CDB38 20840000 */ subfic r4, r4, 0
/* 0C859C 800CDB3C 7C630190 */ subfze r3, r3
lbl_800CDB40:
/* 0C85A0 800CDB40 4800000C */ b lbl_800CDB4C
lbl_800CDB44:
/* 0C85A4 800CDB44 38800000 */ li r4, 0
/* 0C85A8 800CDB48 38600000 */ li r3, 0
lbl_800CDB4C:
/* 0C85AC 800CDB4C 38210010 */ addi r1, r1, 0x10
/* 0C85B0 800CDB50 4E800020 */ blr
glabel __mod2u
/* 0C85B4 800CDB54 2C030000 */ cmpwi r3, 0
/* 0C85B8 800CDB58 7C600034 */ cntlzw r0, r3
/* 0C85BC 800CDB5C 7C890034 */ cntlzw r9, r4
/* 0C85C0 800CDB60 40820008 */ bne lbl_800CDB68
/* 0C85C4 800CDB64 38090020 */ addi r0, r9, 0x20
lbl_800CDB68:
/* 0C85C8 800CDB68 2C050000 */ cmpwi r5, 0
/* 0C85CC 800CDB6C 7CA90034 */ cntlzw r9, r5
/* 0C85D0 800CDB70 7CCA0034 */ cntlzw r10, r6
/* 0C85D4 800CDB74 40820008 */ bne lbl_800CDB7C
/* 0C85D8 800CDB78 392A0020 */ addi r9, r10, 0x20
lbl_800CDB7C:
/* 0C85DC 800CDB7C 7C004800 */ cmpw r0, r9
/* 0C85E0 800CDB80 21400040 */ subfic r10, r0, 0x40
/* 0C85E4 800CDB84 418100B0 */ bgt lbl_800CDC34
/* 0C85E8 800CDB88 39290001 */ addi r9, r9, 1
/* 0C85EC 800CDB8C 21290040 */ subfic r9, r9, 0x40
/* 0C85F0 800CDB90 7C004A14 */ add r0, r0, r9
/* 0C85F4 800CDB94 7D295050 */ subf r9, r9, r10
/* 0C85F8 800CDB98 7D2903A6 */ mtctr r9
/* 0C85FC 800CDB9C 2C090020 */ cmpwi r9, 0x20
/* 0C8600 800CDBA0 38E9FFE0 */ addi r7, r9, -32
/* 0C8604 800CDBA4 41800010 */ blt lbl_800CDBB4
/* 0C8608 800CDBA8 7C683C30 */ srw r8, r3, r7
/* 0C860C 800CDBAC 38E00000 */ li r7, 0
/* 0C8610 800CDBB0 48000018 */ b lbl_800CDBC8
lbl_800CDBB4:
/* 0C8614 800CDBB4 7C884C30 */ srw r8, r4, r9
/* 0C8618 800CDBB8 20E90020 */ subfic r7, r9, 0x20
/* 0C861C 800CDBBC 7C673830 */ slw r7, r3, r7
/* 0C8620 800CDBC0 7D083B78 */ or r8, r8, r7
/* 0C8624 800CDBC4 7C674C30 */ srw r7, r3, r9
lbl_800CDBC8:
/* 0C8628 800CDBC8 2C000020 */ cmpwi r0, 0x20
/* 0C862C 800CDBCC 3120FFE0 */ addic r9, r0, -32
/* 0C8630 800CDBD0 41800010 */ blt lbl_800CDBE0
/* 0C8634 800CDBD4 7C834830 */ slw r3, r4, r9
/* 0C8638 800CDBD8 38800000 */ li r4, 0
/* 0C863C 800CDBDC 48000018 */ b lbl_800CDBF4
lbl_800CDBE0:
/* 0C8640 800CDBE0 7C630030 */ slw r3, r3, r0
/* 0C8644 800CDBE4 21200020 */ subfic r9, r0, 0x20
/* 0C8648 800CDBE8 7C894C30 */ srw r9, r4, r9
/* 0C864C 800CDBEC 7C634B78 */ or r3, r3, r9
/* 0C8650 800CDBF0 7C840030 */ slw r4, r4, r0
lbl_800CDBF4:
/* 0C8654 800CDBF4 3940FFFF */ li r10, -1
/* 0C8658 800CDBF8 30E70000 */ addic r7, r7, 0
lbl_800CDBFC:
/* 0C865C 800CDBFC 7C842114 */ adde r4, r4, r4
/* 0C8660 800CDC00 7C631914 */ adde r3, r3, r3
/* 0C8664 800CDC04 7D084114 */ adde r8, r8, r8
/* 0C8668 800CDC08 7CE73914 */ adde r7, r7, r7
/* 0C866C 800CDC0C 7C064010 */ subfc r0, r6, r8
/* 0C8670 800CDC10 7D253911 */ subfe. r9, r5, r7
/* 0C8674 800CDC14 41800010 */ blt lbl_800CDC24
/* 0C8678 800CDC18 7C080378 */ mr r8, r0
/* 0C867C 800CDC1C 7D274B78 */ mr r7, r9
/* 0C8680 800CDC20 300A0001 */ addic r0, r10, 1
lbl_800CDC24:
/* 0C8684 800CDC24 4200FFD8 */ bdnz lbl_800CDBFC
/* 0C8688 800CDC28 7D044378 */ mr r4, r8
/* 0C868C 800CDC2C 7CE33B78 */ mr r3, r7
/* 0C8690 800CDC30 4E800020 */ blr
lbl_800CDC34:
/* 0C8694 800CDC34 4E800020 */ blr
glabel __mod2i
/* 0C8698 800CDC38 2F830000 */ cmpwi cr7, r3, 0
/* 0C869C 800CDC3C 409C000C */ bge cr7, lbl_800CDC48
/* 0C86A0 800CDC40 20840000 */ subfic r4, r4, 0
/* 0C86A4 800CDC44 7C630190 */ subfze r3, r3
lbl_800CDC48:
/* 0C86A8 800CDC48 2C050000 */ cmpwi r5, 0
/* 0C86AC 800CDC4C 4080000C */ bge lbl_800CDC58
/* 0C86B0 800CDC50 20C60000 */ subfic r6, r6, 0
/* 0C86B4 800CDC54 7CA50190 */ subfze r5, r5
lbl_800CDC58:
/* 0C86B8 800CDC58 2C030000 */ cmpwi r3, 0
/* 0C86BC 800CDC5C 7C600034 */ cntlzw r0, r3
/* 0C86C0 800CDC60 7C890034 */ cntlzw r9, r4
/* 0C86C4 800CDC64 40820008 */ bne lbl_800CDC6C
/* 0C86C8 800CDC68 38090020 */ addi r0, r9, 0x20
lbl_800CDC6C:
/* 0C86CC 800CDC6C 2C050000 */ cmpwi r5, 0
/* 0C86D0 800CDC70 7CA90034 */ cntlzw r9, r5
/* 0C86D4 800CDC74 7CCA0034 */ cntlzw r10, r6
/* 0C86D8 800CDC78 40820008 */ bne lbl_800CDC80
/* 0C86DC 800CDC7C 392A0020 */ addi r9, r10, 0x20
lbl_800CDC80:
/* 0C86E0 800CDC80 7C004800 */ cmpw r0, r9
/* 0C86E4 800CDC84 21400040 */ subfic r10, r0, 0x40
/* 0C86E8 800CDC88 418100AC */ bgt lbl_800CDD34
/* 0C86EC 800CDC8C 39290001 */ addi r9, r9, 1
/* 0C86F0 800CDC90 21290040 */ subfic r9, r9, 0x40
/* 0C86F4 800CDC94 7C004A14 */ add r0, r0, r9
/* 0C86F8 800CDC98 7D295050 */ subf r9, r9, r10
/* 0C86FC 800CDC9C 7D2903A6 */ mtctr r9
/* 0C8700 800CDCA0 2C090020 */ cmpwi r9, 0x20
/* 0C8704 800CDCA4 38E9FFE0 */ addi r7, r9, -32
/* 0C8708 800CDCA8 41800010 */ blt lbl_800CDCB8
/* 0C870C 800CDCAC 7C683C30 */ srw r8, r3, r7
/* 0C8710 800CDCB0 38E00000 */ li r7, 0
/* 0C8714 800CDCB4 48000018 */ b lbl_800CDCCC
lbl_800CDCB8:
/* 0C8718 800CDCB8 7C884C30 */ srw r8, r4, r9
/* 0C871C 800CDCBC 20E90020 */ subfic r7, r9, 0x20
/* 0C8720 800CDCC0 7C673830 */ slw r7, r3, r7
/* 0C8724 800CDCC4 7D083B78 */ or r8, r8, r7
/* 0C8728 800CDCC8 7C674C30 */ srw r7, r3, r9
lbl_800CDCCC:
/* 0C872C 800CDCCC 2C000020 */ cmpwi r0, 0x20
/* 0C8730 800CDCD0 3120FFE0 */ addic r9, r0, -32
/* 0C8734 800CDCD4 41800010 */ blt lbl_800CDCE4
/* 0C8738 800CDCD8 7C834830 */ slw r3, r4, r9
/* 0C873C 800CDCDC 38800000 */ li r4, 0
/* 0C8740 800CDCE0 48000018 */ b lbl_800CDCF8
lbl_800CDCE4:
/* 0C8744 800CDCE4 7C630030 */ slw r3, r3, r0
/* 0C8748 800CDCE8 21200020 */ subfic r9, r0, 0x20
/* 0C874C 800CDCEC 7C894C30 */ srw r9, r4, r9
/* 0C8750 800CDCF0 7C634B78 */ or r3, r3, r9
/* 0C8754 800CDCF4 7C840030 */ slw r4, r4, r0
lbl_800CDCF8:
/* 0C8758 800CDCF8 3940FFFF */ li r10, -1
/* 0C875C 800CDCFC 30E70000 */ addic r7, r7, 0
lbl_800CDD00:
/* 0C8760 800CDD00 7C842114 */ adde r4, r4, r4
/* 0C8764 800CDD04 7C631914 */ adde r3, r3, r3
/* 0C8768 800CDD08 7D084114 */ adde r8, r8, r8
/* 0C876C 800CDD0C 7CE73914 */ adde r7, r7, r7
/* 0C8770 800CDD10 7C064010 */ subfc r0, r6, r8
/* 0C8774 800CDD14 7D253911 */ subfe. r9, r5, r7
/* 0C8778 800CDD18 41800010 */ blt lbl_800CDD28
/* 0C877C 800CDD1C 7C080378 */ mr r8, r0
/* 0C8780 800CDD20 7D274B78 */ mr r7, r9
/* 0C8784 800CDD24 300A0001 */ addic r0, r10, 1
lbl_800CDD28:
/* 0C8788 800CDD28 4200FFD8 */ bdnz lbl_800CDD00
/* 0C878C 800CDD2C 7D044378 */ mr r4, r8
/* 0C8790 800CDD30 7CE33B78 */ mr r3, r7
lbl_800CDD34:
/* 0C8794 800CDD34 409C000C */ bge cr7, lbl_800CDD40
/* 0C8798 800CDD38 20840000 */ subfic r4, r4, 0
/* 0C879C 800CDD3C 7C630190 */ subfze r3, r3
lbl_800CDD40:
/* 0C87A0 800CDD40 4E800020 */ blr
glabel __shl2i
/* 0C87A4 800CDD44 21050020 */ subfic r8, r5, 0x20
/* 0C87A8 800CDD48 3125FFE0 */ addic r9, r5, -32
/* 0C87AC 800CDD4C 7C632830 */ slw r3, r3, r5
/* 0C87B0 800CDD50 7C8A4430 */ srw r10, r4, r8
/* 0C87B4 800CDD54 7C635378 */ or r3, r3, r10
/* 0C87B8 800CDD58 7C8A4830 */ slw r10, r4, r9
/* 0C87BC 800CDD5C 7C635378 */ or r3, r3, r10
/* 0C87C0 800CDD60 7C842830 */ slw r4, r4, r5
/* 0C87C4 800CDD64 4E800020 */ blr
glabel __shr2u
/* 0C87C8 800CDD68 21050020 */ subfic r8, r5, 0x20
/* 0C87CC 800CDD6C 3125FFE0 */ addic r9, r5, -32
/* 0C87D0 800CDD70 7C842C30 */ srw r4, r4, r5
/* 0C87D4 800CDD74 7C6A4030 */ slw r10, r3, r8
/* 0C87D8 800CDD78 7C845378 */ or r4, r4, r10
/* 0C87DC 800CDD7C 7C6A4C30 */ srw r10, r3, r9
/* 0C87E0 800CDD80 7C845378 */ or r4, r4, r10
/* 0C87E4 800CDD84 7C632C30 */ srw r3, r3, r5
/* 0C87E8 800CDD88 4E800020 */ blr
glabel __shr2i
/* 0C87EC 800CDD8C 21050020 */ subfic r8, r5, 0x20
/* 0C87F0 800CDD90 3525FFE0 */ addic. r9, r5, -32
/* 0C87F4 800CDD94 7C842C30 */ srw r4, r4, r5
/* 0C87F8 800CDD98 7C6A4030 */ slw r10, r3, r8
/* 0C87FC 800CDD9C 7C845378 */ or r4, r4, r10
/* 0C8800 800CDDA0 7C6A4E30 */ sraw r10, r3, r9
/* 0C8804 800CDDA4 40810008 */ ble lbl_800CDDAC
/* 0C8808 800CDDA8 7C845378 */ or r4, r4, r10
lbl_800CDDAC:
/* 0C880C 800CDDAC 7C632E30 */ sraw r3, r3, r5
/* 0C8810 800CDDB0 4E800020 */ blr
glabel __cvt_sll_dbl
/* 0C8814 800CDDB4 9421FFF0 */ stwu r1, -0x10(r1)
/* 0C8818 800CDDB8 54650001 */ rlwinm. r5, r3, 0, 0, 0
/* 0C881C 800CDDBC 4182000C */ beq lbl_800CDDC8
/* 0C8820 800CDDC0 20840000 */ subfic r4, r4, 0
/* 0C8824 800CDDC4 7C630190 */ subfze r3, r3
lbl_800CDDC8:
/* 0C8828 800CDDC8 7C672379 */ or. r7, r3, r4
/* 0C882C 800CDDCC 38C00000 */ li r6, 0
/* 0C8830 800CDDD0 41820080 */ beq lbl_800CDE50
/* 0C8834 800CDDD4 7C670034 */ cntlzw r7, r3
/* 0C8838 800CDDD8 7C880034 */ cntlzw r8, r4
/* 0C883C 800CDDDC 54E9D008 */ rlwinm r9, r7, 0x1a, 0, 4
/* 0C8840 800CDDE0 7D29FE70 */ srawi r9, r9, 0x1f
/* 0C8844 800CDDE4 7D294038 */ and r9, r9, r8
/* 0C8848 800CDDE8 7CE74A14 */ add r7, r7, r9
/* 0C884C 800CDDEC 21070020 */ subfic r8, r7, 0x20
/* 0C8850 800CDDF0 3127FFE0 */ addic r9, r7, -32
/* 0C8854 800CDDF4 7C633830 */ slw r3, r3, r7
/* 0C8858 800CDDF8 7C8A4430 */ srw r10, r4, r8
/* 0C885C 800CDDFC 7C635378 */ or r3, r3, r10
/* 0C8860 800CDE00 7C8A4830 */ slw r10, r4, r9
/* 0C8864 800CDE04 7C635378 */ or r3, r3, r10
/* 0C8868 800CDE08 7C843830 */ slw r4, r4, r7
/* 0C886C 800CDE0C 7CC73050 */ subf r6, r7, r6
/* 0C8870 800CDE10 5487057E */ clrlwi r7, r4, 0x15
/* 0C8874 800CDE14 2C070400 */ cmpwi r7, 0x400
/* 0C8878 800CDE18 38C6043E */ addi r6, r6, 0x43e
/* 0C887C 800CDE1C 4180001C */ blt lbl_800CDE38
/* 0C8880 800CDE20 4181000C */ bgt lbl_800CDE2C
/* 0C8884 800CDE24 54870529 */ rlwinm. r7, r4, 0, 0x14, 0x14
/* 0C8888 800CDE28 41820010 */ beq lbl_800CDE38
lbl_800CDE2C:
/* 0C888C 800CDE2C 30840800 */ addic r4, r4, 0x800
/* 0C8890 800CDE30 7C630194 */ addze r3, r3
/* 0C8894 800CDE34 7CC60194 */ addze r6, r6
lbl_800CDE38:
/* 0C8898 800CDE38 5484A83E */ rotlwi r4, r4, 0x15
/* 0C889C 800CDE3C 5064A814 */ rlwimi r4, r3, 0x15, 0, 0xa
/* 0C88A0 800CDE40 5463AB3E */ rlwinm r3, r3, 0x15, 0xc, 0x1f
/* 0C88A4 800CDE44 54C6A016 */ slwi r6, r6, 0x14
/* 0C88A8 800CDE48 7CC31B78 */ or r3, r6, r3
/* 0C88AC 800CDE4C 7CA31B78 */ or r3, r5, r3
lbl_800CDE50:
/* 0C88B0 800CDE50 90610008 */ stw r3, 8(r1)
/* 0C88B4 800CDE54 9081000C */ stw r4, 0xc(r1)
/* 0C88B8 800CDE58 C8210008 */ lfd f1, 8(r1)
/* 0C88BC 800CDE5C 38210010 */ addi r1, r1, 0x10
/* 0C88C0 800CDE60 4E800020 */ blr
glabel __cvt_sll_flt
/* 0C88C4 800CDE64 9421FFF0 */ stwu r1, -0x10(r1)
/* 0C88C8 800CDE68 54650001 */ rlwinm. r5, r3, 0, 0, 0
/* 0C88CC 800CDE6C 4182000C */ beq lbl_800CDE78
/* 0C88D0 800CDE70 20840000 */ subfic r4, r4, 0
/* 0C88D4 800CDE74 7C630190 */ subfze r3, r3
lbl_800CDE78:
/* 0C88D8 800CDE78 7C672379 */ or. r7, r3, r4
/* 0C88DC 800CDE7C 38C00000 */ li r6, 0
/* 0C88E0 800CDE80 41820080 */ beq lbl_800CDF00
/* 0C88E4 800CDE84 7C670034 */ cntlzw r7, r3
/* 0C88E8 800CDE88 7C880034 */ cntlzw r8, r4
/* 0C88EC 800CDE8C 54E9D008 */ rlwinm r9, r7, 0x1a, 0, 4
/* 0C88F0 800CDE90 7D29FE70 */ srawi r9, r9, 0x1f
/* 0C88F4 800CDE94 7D294038 */ and r9, r9, r8
/* 0C88F8 800CDE98 7CE74A14 */ add r7, r7, r9
/* 0C88FC 800CDE9C 21070020 */ subfic r8, r7, 0x20
/* 0C8900 800CDEA0 3127FFE0 */ addic r9, r7, -32
/* 0C8904 800CDEA4 7C633830 */ slw r3, r3, r7
/* 0C8908 800CDEA8 7C8A4430 */ srw r10, r4, r8
/* 0C890C 800CDEAC 7C635378 */ or r3, r3, r10
/* 0C8910 800CDEB0 7C8A4830 */ slw r10, r4, r9
/* 0C8914 800CDEB4 7C635378 */ or r3, r3, r10
/* 0C8918 800CDEB8 7C843830 */ slw r4, r4, r7
/* 0C891C 800CDEBC 7CC73050 */ subf r6, r7, r6
/* 0C8920 800CDEC0 5487057E */ clrlwi r7, r4, 0x15
/* 0C8924 800CDEC4 2C070400 */ cmpwi r7, 0x400
/* 0C8928 800CDEC8 38C6043E */ addi r6, r6, 0x43e
/* 0C892C 800CDECC 4180001C */ blt lbl_800CDEE8
/* 0C8930 800CDED0 4181000C */ bgt lbl_800CDEDC
/* 0C8934 800CDED4 54870529 */ rlwinm. r7, r4, 0, 0x14, 0x14
/* 0C8938 800CDED8 41820010 */ beq lbl_800CDEE8
lbl_800CDEDC:
/* 0C893C 800CDEDC 30840800 */ addic r4, r4, 0x800
/* 0C8940 800CDEE0 7C630194 */ addze r3, r3
/* 0C8944 800CDEE4 7CC60194 */ addze r6, r6
lbl_800CDEE8:
/* 0C8948 800CDEE8 5484A83E */ rotlwi r4, r4, 0x15
/* 0C894C 800CDEEC 5064A814 */ rlwimi r4, r3, 0x15, 0, 0xa
/* 0C8950 800CDEF0 5463AB3E */ rlwinm r3, r3, 0x15, 0xc, 0x1f
/* 0C8954 800CDEF4 54C6A016 */ slwi r6, r6, 0x14
/* 0C8958 800CDEF8 7CC31B78 */ or r3, r6, r3
/* 0C895C 800CDEFC 7CA31B78 */ or r3, r5, r3
lbl_800CDF00:
/* 0C8960 800CDF00 90610008 */ stw r3, 8(r1)
/* 0C8964 800CDF04 9081000C */ stw r4, 0xc(r1)
/* 0C8968 800CDF08 C8210008 */ lfd f1, 8(r1)
/* 0C896C 800CDF0C FC200818 */ frsp f1, f1
/* 0C8970 800CDF10 38210010 */ addi r1, r1, 0x10
/* 0C8974 800CDF14 4E800020 */ blr
glabel __cvt_dbl_usll
/* 0C8978 800CDF18 9421FFF0 */ stwu r1, -0x10(r1)
/* 0C897C 800CDF1C D8210008 */ stfd f1, 8(r1)
/* 0C8980 800CDF20 80610008 */ lwz r3, 8(r1)
/* 0C8984 800CDF24 8081000C */ lwz r4, 0xc(r1)
/* 0C8988 800CDF28 5465657E */ rlwinm r5, r3, 0xc, 0x15, 0x1f
/* 0C898C 800CDF2C 280503FF */ cmplwi r5, 0x3ff
/* 0C8990 800CDF30 40800010 */ bge lbl_800CDF40
/* 0C8994 800CDF34 38600000 */ li r3, 0
/* 0C8998 800CDF38 38800000 */ li r4, 0
/* 0C899C 800CDF3C 480000A0 */ b lbl_800CDFDC
lbl_800CDF40:
/* 0C89A0 800CDF40 7C661B78 */ mr r6, r3
/* 0C89A4 800CDF44 5463033E */ clrlwi r3, r3, 0xc
/* 0C89A8 800CDF48 64630010 */ oris r3, r3, 0x10
/* 0C89AC 800CDF4C 38A5FBCD */ addi r5, r5, -1075
/* 0C89B0 800CDF50 2C050000 */ cmpwi r5, 0
/* 0C89B4 800CDF54 4080002C */ bge lbl_800CDF80
/* 0C89B8 800CDF58 7CA500D0 */ neg r5, r5
/* 0C89BC 800CDF5C 21050020 */ subfic r8, r5, 0x20
/* 0C89C0 800CDF60 3125FFE0 */ addic r9, r5, -32
/* 0C89C4 800CDF64 7C842C30 */ srw r4, r4, r5
/* 0C89C8 800CDF68 7C6A4030 */ slw r10, r3, r8
/* 0C89CC 800CDF6C 7C845378 */ or r4, r4, r10
/* 0C89D0 800CDF70 7C6A4C30 */ srw r10, r3, r9
/* 0C89D4 800CDF74 7C845378 */ or r4, r4, r10
/* 0C89D8 800CDF78 7C632C30 */ srw r3, r3, r5
/* 0C89DC 800CDF7C 48000050 */ b lbl_800CDFCC
lbl_800CDF80:
/* 0C89E0 800CDF80 2C05000A */ cmpwi r5, 0xa
/* 0C89E4 800CDF84 40A10028 */ ble+ lbl_800CDFAC
/* 0C89E8 800CDF88 54C60001 */ rlwinm. r6, r6, 0, 0, 0
/* 0C89EC 800CDF8C 41820010 */ beq lbl_800CDF9C
/* 0C89F0 800CDF90 3C608000 */ lis r3, 0x8000
/* 0C89F4 800CDF94 38800000 */ li r4, 0
/* 0C89F8 800CDF98 48000044 */ b lbl_800CDFDC
lbl_800CDF9C:
/* 0C89FC 800CDF9C 3C607FFF */ lis r3, 0x7fff
/* 0C8A00 800CDFA0 6063FFFF */ ori r3, r3, 0xffff
/* 0C8A04 800CDFA4 3880FFFF */ li r4, -1
/* 0C8A08 800CDFA8 48000034 */ b lbl_800CDFDC
lbl_800CDFAC:
/* 0C8A0C 800CDFAC 21050020 */ subfic r8, r5, 0x20
/* 0C8A10 800CDFB0 3125FFE0 */ addic r9, r5, -32
/* 0C8A14 800CDFB4 7C632830 */ slw r3, r3, r5
/* 0C8A18 800CDFB8 7C8A4430 */ srw r10, r4, r8
/* 0C8A1C 800CDFBC 7C635378 */ or r3, r3, r10
/* 0C8A20 800CDFC0 7C8A4830 */ slw r10, r4, r9
/* 0C8A24 800CDFC4 7C635378 */ or r3, r3, r10
/* 0C8A28 800CDFC8 7C842830 */ slw r4, r4, r5
lbl_800CDFCC:
/* 0C8A2C 800CDFCC 54C60001 */ rlwinm. r6, r6, 0, 0, 0
/* 0C8A30 800CDFD0 4182000C */ beq lbl_800CDFDC
/* 0C8A34 800CDFD4 20840000 */ subfic r4, r4, 0
/* 0C8A38 800CDFD8 7C630190 */ subfze r3, r3
lbl_800CDFDC:
/* 0C8A3C 800CDFDC 38210010 */ addi r1, r1, 0x10
/* 0C8A40 800CDFE0 4E800020 */ blr
.section .rodata, "a"
.balign 8
/* 000D0390 800D3310 0018 */
__constants:
.long 0x00000000, 0x00000000, 0x41F00000, 0x00000000, 0x41E00000, 0x00000000