tp/asm/Z2AudioLib/Z2Calc.s

278 lines
13 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 802a968c
.global Z2Calc_NS_linearTransform
Z2Calc_NS_linearTransform:
/* 802A968C 002A65CC EC C1 10 28 */ fsubs f6, f1, f2
/* 802A9690 002A65D0 EC 25 20 28 */ fsubs f1, f5, f4
/* 802A9694 002A65D4 EC 03 10 28 */ fsubs f0, f3, f2
/* 802A9698 002A65D8 EC 01 00 24 */ fdivs f0, f1, f0
/* 802A969C 002A65DC EC 06 00 32 */ fmuls f0, f6, f0
/* 802A96A0 002A65E0 EC 24 00 2A */ fadds f1, f4, f0
/* 802A96A4 002A65E4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802A96A8 002A65E8 4C 82 00 20 */ bnelr
/* 802A96AC 002A65EC FC 04 28 40 */ fcmpo cr0, f4, f5
/* 802A96B0 002A65F0 40 80 00 24 */ bge lbl_802A96D4
/* 802A96B4 002A65F4 FC 01 28 40 */ fcmpo cr0, f1, f5
/* 802A96B8 002A65F8 40 81 00 0C */ ble lbl_802A96C4
/* 802A96BC 002A65FC FC 20 28 90 */ fmr f1, f5
/* 802A96C0 002A6600 4E 80 00 20 */ blr
lbl_802A96C4:
/* 802A96C4 002A6604 FC 01 20 40 */ fcmpo cr0, f1, f4
/* 802A96C8 002A6608 4C 80 00 20 */ bgelr
/* 802A96CC 002A660C FC 20 20 90 */ fmr f1, f4
/* 802A96D0 002A6610 4E 80 00 20 */ blr
lbl_802A96D4:
/* 802A96D4 002A6614 FC 01 20 40 */ fcmpo cr0, f1, f4
/* 802A96D8 002A6618 40 81 00 0C */ ble lbl_802A96E4
/* 802A96DC 002A661C FC 20 20 90 */ fmr f1, f4
/* 802A96E0 002A6620 4E 80 00 20 */ blr
lbl_802A96E4:
/* 802A96E4 002A6624 FC 01 28 40 */ fcmpo cr0, f1, f5
/* 802A96E8 002A6628 4C 80 00 20 */ bgelr
/* 802A96EC 002A662C FC 20 28 90 */ fmr f1, f5
/* 802A96F0 002A6630 4E 80 00 20 */ blr
.global Z2Calc_NS_getParamByExp
Z2Calc_NS_getParamByExp:
/* 802A96F4 002A6634 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802A96F8 002A6638 7C 08 02 A6 */ mflr r0
/* 802A96FC 002A663C 90 01 00 54 */ stw r0, 0x54(r1)
/* 802A9700 002A6640 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 802A9704 002A6644 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 802A9708 002A6648 DB C1 00 30 */ stfd f30, 0x30(r1)
/* 802A970C 002A664C F3 C1 00 38 */ psq_st f30, 56(r1), 0, qr0
/* 802A9710 002A6650 DB A1 00 20 */ stfd f29, 0x20(r1)
/* 802A9714 002A6654 F3 A1 00 28 */ psq_st f29, 40(r1), 0, qr0
/* 802A9718 002A6658 DB 81 00 10 */ stfd f28, 0x10(r1)
/* 802A971C 002A665C F3 81 00 18 */ psq_st f28, 24(r1), 0, qr0
/* 802A9720 002A6660 FF 80 20 90 */ fmr f28, f4
/* 802A9724 002A6664 FF A0 28 90 */ fmr f29, f5
/* 802A9728 002A6668 FF C0 30 90 */ fmr f30, f6
/* 802A972C 002A666C 2C 03 00 01 */ cmpwi r3, 1
/* 802A9730 002A6670 40 82 00 44 */ bne lbl_802A9774
/* 802A9734 002A6674 C0 82 BE 28 */ lfs f4, lbl_80455828-_SDA2_BASE_(r2)
/* 802A9738 002A6678 FC A0 E0 90 */ fmr f5, f28
/* 802A973C 002A667C 38 60 00 01 */ li r3, 1
/* 802A9740 002A6680 4B FF FF 4D */ bl Z2Calc_NS_linearTransform
/* 802A9744 002A6684 48 0C 2F FD */ bl func_8036C740
/* 802A9748 002A6688 FF E0 08 18 */ frsp f31, f1
/* 802A974C 002A668C FC 20 E0 90 */ fmr f1, f28
/* 802A9750 002A6690 48 0C 2F F1 */ bl func_8036C740
/* 802A9754 002A6694 FC 60 08 18 */ frsp f3, f1
/* 802A9758 002A6698 FC 20 F8 90 */ fmr f1, f31
/* 802A975C 002A669C C0 42 BE 2C */ lfs f2, lbl_8045582C-_SDA2_BASE_(r2)
/* 802A9760 002A66A0 FC 80 E8 90 */ fmr f4, f29
/* 802A9764 002A66A4 FC A0 F0 90 */ fmr f5, f30
/* 802A9768 002A66A8 38 60 00 01 */ li r3, 1
/* 802A976C 002A66AC 4B FF FF 21 */ bl Z2Calc_NS_linearTransform
/* 802A9770 002A66B0 48 00 00 58 */ b lbl_802A97C8
lbl_802A9774:
/* 802A9774 002A66B4 2C 03 00 00 */ cmpwi r3, 0
/* 802A9778 002A66B8 40 82 00 40 */ bne lbl_802A97B8
/* 802A977C 002A66BC C0 A2 BE 28 */ lfs f5, lbl_80455828-_SDA2_BASE_(r2)
/* 802A9780 002A66C0 38 60 00 01 */ li r3, 1
/* 802A9784 002A66C4 4B FF FF 09 */ bl Z2Calc_NS_linearTransform
/* 802A9788 002A66C8 48 0C 2F B9 */ bl func_8036C740
/* 802A978C 002A66CC FF E0 08 18 */ frsp f31, f1
/* 802A9790 002A66D0 FC 20 E0 90 */ fmr f1, f28
/* 802A9794 002A66D4 48 0C 2F AD */ bl func_8036C740
/* 802A9798 002A66D8 FC 40 08 18 */ frsp f2, f1
/* 802A979C 002A66DC FC 20 F8 90 */ fmr f1, f31
/* 802A97A0 002A66E0 C0 62 BE 2C */ lfs f3, lbl_8045582C-_SDA2_BASE_(r2)
/* 802A97A4 002A66E4 FC 80 E8 90 */ fmr f4, f29
/* 802A97A8 002A66E8 FC A0 F0 90 */ fmr f5, f30
/* 802A97AC 002A66EC 38 60 00 01 */ li r3, 1
/* 802A97B0 002A66F0 4B FF FE DD */ bl Z2Calc_NS_linearTransform
/* 802A97B4 002A66F4 48 00 00 14 */ b lbl_802A97C8
lbl_802A97B8:
/* 802A97B8 002A66F8 FC 80 E8 90 */ fmr f4, f29
/* 802A97BC 002A66FC FC A0 F0 90 */ fmr f5, f30
/* 802A97C0 002A6700 38 60 00 00 */ li r3, 0
/* 802A97C4 002A6704 4B FF FE C9 */ bl Z2Calc_NS_linearTransform
lbl_802A97C8:
/* 802A97C8 002A6708 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 802A97CC 002A670C 40 81 00 0C */ ble lbl_802A97D8
/* 802A97D0 002A6710 FC 20 F0 90 */ fmr f1, f30
/* 802A97D4 002A6714 48 00 00 10 */ b lbl_802A97E4
lbl_802A97D8:
/* 802A97D8 002A6718 FC 01 E8 40 */ fcmpo cr0, f1, f29
/* 802A97DC 002A671C 40 80 00 08 */ bge lbl_802A97E4
/* 802A97E0 002A6720 FC 20 E8 90 */ fmr f1, f29
lbl_802A97E4:
/* 802A97E4 002A6724 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 802A97E8 002A6728 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 802A97EC 002A672C E3 C1 00 38 */ psq_l f30, 56(r1), 0, qr0
/* 802A97F0 002A6730 CB C1 00 30 */ lfd f30, 0x30(r1)
/* 802A97F4 002A6734 E3 A1 00 28 */ psq_l f29, 40(r1), 0, qr0
/* 802A97F8 002A6738 CB A1 00 20 */ lfd f29, 0x20(r1)
/* 802A97FC 002A673C E3 81 00 18 */ psq_l f28, 24(r1), 0, qr0
/* 802A9800 002A6740 CB 81 00 10 */ lfd f28, 0x10(r1)
/* 802A9804 002A6744 80 01 00 54 */ lwz r0, 0x54(r1)
/* 802A9808 002A6748 7C 08 03 A6 */ mtlr r0
/* 802A980C 002A674C 38 21 00 50 */ addi r1, r1, 0x50
/* 802A9810 002A6750 4E 80 00 20 */ blr
.global Z2Calc_NS_getRandom
Z2Calc_NS_getRandom:
/* 802A9814 002A6754 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 802A9818 002A6758 7C 08 02 A6 */ mflr r0
/* 802A981C 002A675C 90 01 00 64 */ stw r0, 0x64(r1)
/* 802A9820 002A6760 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 802A9824 002A6764 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0
/* 802A9828 002A6768 DB C1 00 40 */ stfd f30, 0x40(r1)
/* 802A982C 002A676C F3 C1 00 48 */ psq_st f30, 72(r1), 0, qr0
/* 802A9830 002A6770 DB A1 00 30 */ stfd f29, 0x30(r1)
/* 802A9834 002A6774 F3 A1 00 38 */ psq_st f29, 56(r1), 0, qr0
/* 802A9838 002A6778 DB 81 00 20 */ stfd f28, 0x20(r1)
/* 802A983C 002A677C F3 81 00 28 */ psq_st f28, 40(r1), 0, qr0
/* 802A9840 002A6780 DB 61 00 10 */ stfd f27, 0x10(r1)
/* 802A9844 002A6784 F3 61 00 18 */ psq_st f27, 24(r1), 0, qr0
/* 802A9848 002A6788 FF 60 08 90 */ fmr f27, f1
/* 802A984C 002A678C FF 80 10 90 */ fmr f28, f2
/* 802A9850 002A6790 FF A0 18 90 */ fmr f29, f3
/* 802A9854 002A6794 C0 02 BE 30 */ lfs f0, lbl_80455830-_SDA2_BASE_(r2)
/* 802A9858 002A6798 EF E0 07 72 */ fmuls f31, f0, f29
/* 802A985C 002A679C C0 22 BE 34 */ lfs f1, lbl_80455834-_SDA2_BASE_(r2)
/* 802A9860 002A67A0 C0 02 BE 2C */ lfs f0, lbl_8045582C-_SDA2_BASE_(r2)
/* 802A9864 002A67A4 EC 00 E8 28 */ fsubs f0, f0, f29
/* 802A9868 002A67A8 EF C1 00 32 */ fmuls f30, f1, f0
/* 802A986C 002A67AC 48 00 00 69 */ bl Z2Calc_NS_getRandom_0_1
/* 802A9870 002A67B0 FC 01 E8 40 */ fcmpo cr0, f1, f29
/* 802A9874 002A67B4 40 80 00 0C */ bge lbl_802A9880
/* 802A9878 002A67B8 FC 00 F8 90 */ fmr f0, f31
/* 802A987C 002A67BC 48 00 00 08 */ b lbl_802A9884
lbl_802A9880:
/* 802A9880 002A67C0 FC 00 F0 90 */ fmr f0, f30
lbl_802A9884:
/* 802A9884 002A67C4 EF 7B 00 32 */ fmuls f27, f27, f0
/* 802A9888 002A67C8 48 00 00 4D */ bl Z2Calc_NS_getRandom_0_1
/* 802A988C 002A67CC FC 40 E0 90 */ fmr f2, f28
/* 802A9890 002A67D0 48 0C 2E F1 */ bl func_8036C780
/* 802A9894 002A67D4 FC 00 08 18 */ frsp f0, f1
/* 802A9898 002A67D8 EC 20 06 F2 */ fmuls f1, f0, f27
/* 802A989C 002A67DC E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0
/* 802A98A0 002A67E0 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 802A98A4 002A67E4 E3 C1 00 48 */ psq_l f30, 72(r1), 0, qr0
/* 802A98A8 002A67E8 CB C1 00 40 */ lfd f30, 0x40(r1)
/* 802A98AC 002A67EC E3 A1 00 38 */ psq_l f29, 56(r1), 0, qr0
/* 802A98B0 002A67F0 CB A1 00 30 */ lfd f29, 0x30(r1)
/* 802A98B4 002A67F4 E3 81 00 28 */ psq_l f28, 40(r1), 0, qr0
/* 802A98B8 002A67F8 CB 81 00 20 */ lfd f28, 0x20(r1)
/* 802A98BC 002A67FC E3 61 00 18 */ psq_l f27, 24(r1), 0, qr0
/* 802A98C0 002A6800 CB 61 00 10 */ lfd f27, 0x10(r1)
/* 802A98C4 002A6804 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802A98C8 002A6808 7C 08 03 A6 */ mtlr r0
/* 802A98CC 002A680C 38 21 00 60 */ addi r1, r1, 0x60
/* 802A98D0 002A6810 4E 80 00 20 */ blr
.global Z2Calc_NS_getRandom_0_1
Z2Calc_NS_getRandom_0_1:
/* 802A98D4 002A6814 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A98D8 002A6818 7C 08 02 A6 */ mflr r0
/* 802A98DC 002A681C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A98E0 002A6820 88 0D 8D B0 */ lbz r0, lbl_80451330-_SDA_BASE_(r13)
/* 802A98E4 002A6824 7C 00 07 75 */ extsb. r0, r0
/* 802A98E8 002A6828 40 82 00 18 */ bne lbl_802A9900
/* 802A98EC 002A682C 38 6D 8D B4 */ addi r3, r13, lbl_80451334-_SDA_BASE_
/* 802A98F0 002A6830 38 80 00 00 */ li r4, 0
/* 802A98F4 002A6834 48 09 01 F1 */ bl JMath_NS_TRandom_fast_
/* 802A98F8 002A6838 38 00 00 01 */ li r0, 1
/* 802A98FC 002A683C 98 0D 8D B0 */ stb r0, lbl_80451330-_SDA_BASE_(r13)
lbl_802A9900:
/* 802A9900 002A6840 80 8D 8D B4 */ lwz r4, lbl_80451334-_SDA_BASE_(r13)
/* 802A9904 002A6844 3C 60 00 19 */ lis r3, 0x0019660D@ha
/* 802A9908 002A6848 38 03 66 0D */ addi r0, r3, 0x0019660D@l
/* 802A990C 002A684C 7C 64 01 D6 */ mullw r3, r4, r0
/* 802A9910 002A6850 3C 63 3C 6F */ addis r3, r3, 0x3c6f
/* 802A9914 002A6854 38 03 F3 5F */ addi r0, r3, -3233
/* 802A9918 002A6858 90 0D 8D B4 */ stw r0, lbl_80451334-_SDA_BASE_(r13)
/* 802A991C 002A685C 54 00 BA 7E */ srwi r0, r0, 9
/* 802A9920 002A6860 64 00 3F 80 */ oris r0, r0, 0x3f80
/* 802A9924 002A6864 90 01 00 08 */ stw r0, 8(r1)
/* 802A9928 002A6868 C0 21 00 08 */ lfs f1, 8(r1)
/* 802A992C 002A686C C0 02 BE 2C */ lfs f0, lbl_8045582C-_SDA2_BASE_(r2)
/* 802A9930 002A6870 EC 21 00 28 */ fsubs f1, f1, f0
/* 802A9934 002A6874 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A9938 002A6878 7C 08 03 A6 */ mtlr r0
/* 802A993C 002A687C 38 21 00 10 */ addi r1, r1, 0x10
/* 802A9940 002A6880 4E 80 00 20 */ blr
.global Z2Calc_NS_FNoise1f_NS_setParam
Z2Calc_NS_FNoise1f_NS_setParam:
/* 802A9944 002A6884 D0 23 00 00 */ stfs f1, 0(r3)
/* 802A9948 002A6888 D0 23 00 04 */ stfs f1, 4(r3)
/* 802A994C 002A688C D0 43 00 0C */ stfs f2, 0xc(r3)
/* 802A9950 002A6890 D0 63 00 08 */ stfs f3, 8(r3)
/* 802A9954 002A6894 4E 80 00 20 */ blr
.global Z2Calc_NS_FNoise1f_NS_tau
Z2Calc_NS_FNoise1f_NS_tau:
/* 802A9958 002A6898 EC 01 00 72 */ fmuls f0, f1, f1
/* 802A995C 002A689C EC 41 00 2A */ fadds f2, f1, f0
/* 802A9960 002A68A0 C0 02 BE 2C */ lfs f0, lbl_8045582C-_SDA2_BASE_(r2)
/* 802A9964 002A68A4 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 802A9968 002A68A8 40 81 00 20 */ ble lbl_802A9988
/* 802A996C 002A68AC EC 42 00 28 */ fsubs f2, f2, f0
/* 802A9970 002A68B0 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 802A9974 002A68B4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802A9978 002A68B8 40 80 00 08 */ bge lbl_802A9980
/* 802A997C 002A68BC EC 42 00 2A */ fadds f2, f2, f0
lbl_802A9980:
/* 802A9980 002A68C0 FC 20 10 90 */ fmr f1, f2
/* 802A9984 002A68C4 4E 80 00 20 */ blr
lbl_802A9988:
/* 802A9988 002A68C8 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 802A998C 002A68CC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802A9990 002A68D0 40 80 00 08 */ bge lbl_802A9998
/* 802A9994 002A68D4 EC 42 00 2A */ fadds f2, f2, f0
lbl_802A9998:
/* 802A9998 002A68D8 FC 20 10 90 */ fmr f1, f2
/* 802A999C 002A68DC 4E 80 00 20 */ blr
.global Z2Calc_NS_FNoise1f_NS_calcNoise1f
Z2Calc_NS_FNoise1f_NS_calcNoise1f:
/* 802A99A0 002A68E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A99A4 002A68E4 7C 08 02 A6 */ mflr r0
/* 802A99A8 002A68E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A99AC 002A68EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802A99B0 002A68F0 7C 7F 1B 78 */ mr r31, r3
/* 802A99B4 002A68F4 C0 23 00 00 */ lfs f1, 0(r3)
/* 802A99B8 002A68F8 C0 03 00 04 */ lfs f0, 4(r3)
/* 802A99BC 002A68FC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802A99C0 002A6900 40 80 00 24 */ bge lbl_802A99E4
/* 802A99C4 002A6904 C0 1F 00 08 */ lfs f0, 8(r31)
/* 802A99C8 002A6908 EC 01 00 2A */ fadds f0, f1, f0
/* 802A99CC 002A690C D0 1F 00 00 */ stfs f0, 0(r31)
/* 802A99D0 002A6910 C0 3F 00 00 */ lfs f1, 0(r31)
/* 802A99D4 002A6914 C0 1F 00 04 */ lfs f0, 4(r31)
/* 802A99D8 002A6918 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802A99DC 002A691C 40 80 00 28 */ bge lbl_802A9A04
/* 802A99E0 002A6920 48 00 00 40 */ b lbl_802A9A20
lbl_802A99E4:
/* 802A99E4 002A6924 C0 1F 00 08 */ lfs f0, 8(r31)
/* 802A99E8 002A6928 EC 01 00 28 */ fsubs f0, f1, f0
/* 802A99EC 002A692C D0 1F 00 00 */ stfs f0, 0(r31)
/* 802A99F0 002A6930 C0 3F 00 00 */ lfs f1, 0(r31)
/* 802A99F4 002A6934 C0 1F 00 04 */ lfs f0, 4(r31)
/* 802A99F8 002A6938 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802A99FC 002A693C 40 81 00 08 */ ble lbl_802A9A04
/* 802A9A00 002A6940 48 00 00 20 */ b lbl_802A9A20
lbl_802A9A04:
/* 802A9A04 002A6944 C0 1F 00 04 */ lfs f0, 4(r31)
/* 802A9A08 002A6948 D0 1F 00 00 */ stfs f0, 0(r31)
/* 802A9A0C 002A694C 7F E3 FB 78 */ mr r3, r31
/* 802A9A10 002A6950 C0 3F 00 00 */ lfs f1, 0(r31)
/* 802A9A14 002A6954 4B FF FF 45 */ bl Z2Calc_NS_FNoise1f_NS_tau
/* 802A9A18 002A6958 D0 3F 00 04 */ stfs f1, 4(r31)
/* 802A9A1C 002A695C C0 3F 00 00 */ lfs f1, 0(r31)
lbl_802A9A20:
/* 802A9A20 002A6960 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802A9A24 002A6964 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A9A28 002A6968 7C 08 03 A6 */ mtlr r0
/* 802A9A2C 002A696C 38 21 00 10 */ addi r1, r1, 0x10
/* 802A9A30 002A6970 4E 80 00 20 */ blr