summaryrefslogtreecommitdiff
path: root/asm/libstdc++/e_asin.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/libstdc++/e_asin.s')
-rw-r--r--asm/libstdc++/e_asin.s181
1 files changed, 181 insertions, 0 deletions
diff --git a/asm/libstdc++/e_asin.s b/asm/libstdc++/e_asin.s
new file mode 100644
index 0000000..9737cd4
--- /dev/null
+++ b/asm/libstdc++/e_asin.s
@@ -0,0 +1,181 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __ieee754_asin
+__ieee754_asin:
+/* 801D0EC0 001CCB20 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 801D0EC4 001CCB24 7C 08 02 A6 */ mflr r0
+/* 801D0EC8 001CCB28 90 01 00 54 */ stw r0, 0x54(r1)
+/* 801D0ECC 001CCB2C DB E1 00 40 */ stfd f31, 0x40(r1)
+/* 801D0ED0 001CCB30 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
+/* 801D0ED4 001CCB34 DB C1 00 30 */ stfd f30, 0x30(r1)
+/* 801D0ED8 001CCB38 F3 C1 00 38 */ psq_st f30, 56(r1), 0, qr0
+/* 801D0EDC 001CCB3C DB A1 00 20 */ stfd f29, 0x20(r1)
+/* 801D0EE0 001CCB40 F3 A1 00 28 */ psq_st f29, 40(r1), 0, qr0
+/* 801D0EE4 001CCB44 3C 00 3F F0 */ lis r0, 0x3ff0
+/* 801D0EE8 001CCB48 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801D0EEC 001CCB4C D8 21 00 08 */ stfd f1, 8(r1)
+/* 801D0EF0 001CCB50 83 E1 00 08 */ lwz r31, 8(r1)
+/* 801D0EF4 001CCB54 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801D0EF8 001CCB58 57 FE 00 7E */ clrlwi r30, r31, 1
+/* 801D0EFC 001CCB5C 7C 1E 00 00 */ cmpw r30, r0
+/* 801D0F00 001CCB60 41 80 00 38 */ blt lbl_801D0F38
+/* 801D0F04 001CCB64 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 801D0F08 001CCB68 3C 7E C0 10 */ addis r3, r30, 0xc010
+/* 801D0F0C 001CCB6C 7C 60 03 79 */ or. r0, r3, r0
+/* 801D0F10 001CCB70 40 82 00 1C */ bne lbl_801D0F2C
+/* 801D0F14 001CCB74 C8 42 92 18 */ lfd f2, lbl_80641818-_SDA2_BASE_(r2)
+/* 801D0F18 001CCB78 C8 02 92 20 */ lfd f0, lbl_80641820-_SDA2_BASE_(r2)
+/* 801D0F1C 001CCB7C FC 42 00 72 */ fmul f2, f2, f1
+/* 801D0F20 001CCB80 FC 00 00 72 */ fmul f0, f0, f1
+/* 801D0F24 001CCB84 FC 22 00 2A */ fadd f1, f2, f0
+/* 801D0F28 001CCB88 48 00 02 00 */ b lbl_801D1128
+lbl_801D0F2C:
+/* 801D0F2C 001CCB8C 3C 60 80 64 */ lis r3, lbl_8063D6B8@ha
+/* 801D0F30 001CCB90 C0 23 D6 B8 */ lfs f1, lbl_8063D6B8@l(r3)
+/* 801D0F34 001CCB94 48 00 01 F4 */ b lbl_801D1128
+lbl_801D0F38:
+/* 801D0F38 001CCB98 3C 00 3F E0 */ lis r0, 0x3fe0
+/* 801D0F3C 001CCB9C 7C 1E 00 00 */ cmpw r30, r0
+/* 801D0F40 001CCBA0 40 80 00 B8 */ bge lbl_801D0FF8
+/* 801D0F44 001CCBA4 3C 00 3E 40 */ lis r0, 0x3e40
+/* 801D0F48 001CCBA8 7C 1E 00 00 */ cmpw r30, r0
+/* 801D0F4C 001CCBAC 40 80 00 1C */ bge lbl_801D0F68
+/* 801D0F50 001CCBB0 C8 42 92 28 */ lfd f2, lbl_80641828-_SDA2_BASE_(r2)
+/* 801D0F54 001CCBB4 C8 02 92 30 */ lfd f0, lbl_80641830-_SDA2_BASE_(r2)
+/* 801D0F58 001CCBB8 FC 42 08 2A */ fadd f2, f2, f1
+/* 801D0F5C 001CCBBC FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 801D0F60 001CCBC0 40 81 00 0C */ ble lbl_801D0F6C
+/* 801D0F64 001CCBC4 48 00 01 C4 */ b lbl_801D1128
+lbl_801D0F68:
+/* 801D0F68 001CCBC8 FF E1 00 72 */ fmul f31, f1, f1
+lbl_801D0F6C:
+/* 801D0F6C 001CCBCC C8 42 92 60 */ lfd f2, lbl_80641860-_SDA2_BASE_(r2)
+/* 801D0F70 001CCBD0 C8 02 92 80 */ lfd f0, lbl_80641880-_SDA2_BASE_(r2)
+/* 801D0F74 001CCBD4 FC 82 07 F2 */ fmul f4, f2, f31
+/* 801D0F78 001CCBD8 C8 62 92 58 */ lfd f3, lbl_80641858-_SDA2_BASE_(r2)
+/* 801D0F7C 001CCBDC C9 02 92 50 */ lfd f8, lbl_80641850-_SDA2_BASE_(r2)
+/* 801D0F80 001CCBE0 FC 40 07 F2 */ fmul f2, f0, f31
+/* 801D0F84 001CCBE4 C8 02 92 78 */ lfd f0, lbl_80641878-_SDA2_BASE_(r2)
+/* 801D0F88 001CCBE8 C8 E2 92 48 */ lfd f7, lbl_80641848-_SDA2_BASE_(r2)
+/* 801D0F8C 001CCBEC FC 83 20 2A */ fadd f4, f3, f4
+/* 801D0F90 001CCBF0 C8 62 92 70 */ lfd f3, lbl_80641870-_SDA2_BASE_(r2)
+/* 801D0F94 001CCBF4 FC 00 10 2A */ fadd f0, f0, f2
+/* 801D0F98 001CCBF8 C8 42 92 68 */ lfd f2, lbl_80641868-_SDA2_BASE_(r2)
+/* 801D0F9C 001CCBFC FD 3F 01 32 */ fmul f9, f31, f4
+/* 801D0FA0 001CCC00 C8 C2 92 40 */ lfd f6, lbl_80641840-_SDA2_BASE_(r2)
+/* 801D0FA4 001CCC04 C8 A2 92 38 */ lfd f5, lbl_80641838-_SDA2_BASE_(r2)
+/* 801D0FA8 001CCC08 FC 9F 00 32 */ fmul f4, f31, f0
+/* 801D0FAC 001CCC0C C8 02 92 30 */ lfd f0, lbl_80641830-_SDA2_BASE_(r2)
+/* 801D0FB0 001CCC10 FD 08 48 2A */ fadd f8, f8, f9
+/* 801D0FB4 001CCC14 FC 63 20 2A */ fadd f3, f3, f4
+/* 801D0FB8 001CCC18 FC 9F 02 32 */ fmul f4, f31, f8
+/* 801D0FBC 001CCC1C FC 7F 00 F2 */ fmul f3, f31, f3
+/* 801D0FC0 001CCC20 FC 87 20 2A */ fadd f4, f7, f4
+/* 801D0FC4 001CCC24 FC 42 18 2A */ fadd f2, f2, f3
+/* 801D0FC8 001CCC28 FC 7F 01 32 */ fmul f3, f31, f4
+/* 801D0FCC 001CCC2C FC 5F 00 B2 */ fmul f2, f31, f2
+/* 801D0FD0 001CCC30 FC 66 18 2A */ fadd f3, f6, f3
+/* 801D0FD4 001CCC34 FC 40 10 2A */ fadd f2, f0, f2
+/* 801D0FD8 001CCC38 FC 1F 00 F2 */ fmul f0, f31, f3
+/* 801D0FDC 001CCC3C FC 05 00 2A */ fadd f0, f5, f0
+/* 801D0FE0 001CCC40 FC 1F 00 32 */ fmul f0, f31, f0
+/* 801D0FE4 001CCC44 FC 40 10 24 */ fdiv f2, f0, f2
+/* 801D0FE8 001CCC48 FC 01 00 B2 */ fmul f0, f1, f2
+/* 801D0FEC 001CCC4C D8 41 00 10 */ stfd f2, 0x10(r1)
+/* 801D0FF0 001CCC50 FC 21 00 2A */ fadd f1, f1, f0
+/* 801D0FF4 001CCC54 48 00 01 34 */ b lbl_801D1128
+lbl_801D0FF8:
+/* 801D0FF8 001CCC58 FC 20 0A 10 */ fabs f1, f1
+/* 801D0FFC 001CCC5C C9 62 92 30 */ lfd f11, lbl_80641830-_SDA2_BASE_(r2)
+/* 801D1000 001CCC60 C8 42 92 88 */ lfd f2, lbl_80641888-_SDA2_BASE_(r2)
+/* 801D1004 001CCC64 C8 02 92 60 */ lfd f0, lbl_80641860-_SDA2_BASE_(r2)
+/* 801D1008 001CCC68 FC 6B 08 28 */ fsub f3, f11, f1
+/* 801D100C 001CCC6C C8 22 92 80 */ lfd f1, lbl_80641880-_SDA2_BASE_(r2)
+/* 801D1010 001CCC70 C9 22 92 58 */ lfd f9, lbl_80641858-_SDA2_BASE_(r2)
+/* 801D1014 001CCC74 C9 02 92 50 */ lfd f8, lbl_80641850-_SDA2_BASE_(r2)
+/* 801D1018 001CCC78 FF E2 00 F2 */ fmul f31, f2, f3
+/* 801D101C 001CCC7C C8 62 92 78 */ lfd f3, lbl_80641878-_SDA2_BASE_(r2)
+/* 801D1020 001CCC80 C8 42 92 70 */ lfd f2, lbl_80641870-_SDA2_BASE_(r2)
+/* 801D1024 001CCC84 C8 E2 92 48 */ lfd f7, lbl_80641848-_SDA2_BASE_(r2)
+/* 801D1028 001CCC88 C8 C2 92 40 */ lfd f6, lbl_80641840-_SDA2_BASE_(r2)
+/* 801D102C 001CCC8C FD 40 07 F2 */ fmul f10, f0, f31
+/* 801D1030 001CCC90 C8 02 92 68 */ lfd f0, lbl_80641868-_SDA2_BASE_(r2)
+/* 801D1034 001CCC94 FC 81 07 F2 */ fmul f4, f1, f31
+/* 801D1038 001CCC98 C8 A2 92 38 */ lfd f5, lbl_80641838-_SDA2_BASE_(r2)
+/* 801D103C 001CCC9C FD 29 50 2A */ fadd f9, f9, f10
+/* 801D1040 001CCCA0 FC 20 F8 90 */ fmr f1, f31
+/* 801D1044 001CCCA4 FC 63 20 2A */ fadd f3, f3, f4
+/* 801D1048 001CCCA8 FC 9F 02 72 */ fmul f4, f31, f9
+/* 801D104C 001CCCAC FC 7F 00 F2 */ fmul f3, f31, f3
+/* 801D1050 001CCCB0 FC 88 20 2A */ fadd f4, f8, f4
+/* 801D1054 001CCCB4 FC 42 18 2A */ fadd f2, f2, f3
+/* 801D1058 001CCCB8 FC 7F 01 32 */ fmul f3, f31, f4
+/* 801D105C 001CCCBC FC 5F 00 B2 */ fmul f2, f31, f2
+/* 801D1060 001CCCC0 FC 67 18 2A */ fadd f3, f7, f3
+/* 801D1064 001CCCC4 FC 00 10 2A */ fadd f0, f0, f2
+/* 801D1068 001CCCC8 FC 5F 00 F2 */ fmul f2, f31, f3
+/* 801D106C 001CCCCC FC 1F 00 32 */ fmul f0, f31, f0
+/* 801D1070 001CCCD0 FC 46 10 2A */ fadd f2, f6, f2
+/* 801D1074 001CCCD4 FF AB 00 2A */ fadd f29, f11, f0
+/* 801D1078 001CCCD8 FC 1F 00 B2 */ fmul f0, f31, f2
+/* 801D107C 001CCCDC FC 05 00 2A */ fadd f0, f5, f0
+/* 801D1080 001CCCE0 FF DF 00 32 */ fmul f30, f31, f0
+/* 801D1084 001CCCE4 48 00 37 B1 */ bl sqrt
+/* 801D1088 001CCCE8 3C 60 3F EF */ lis r3, 0x3FEF3333@ha
+/* 801D108C 001CCCEC 38 03 33 33 */ addi r0, r3, 0x3FEF3333@l
+/* 801D1090 001CCCF0 7C 1E 00 00 */ cmpw r30, r0
+/* 801D1094 001CCCF4 41 80 00 30 */ blt lbl_801D10C4
+/* 801D1098 001CCCF8 FC BE E8 24 */ fdiv f5, f30, f29
+/* 801D109C 001CCCFC C8 62 92 90 */ lfd f3, lbl_80641890-_SDA2_BASE_(r2)
+/* 801D10A0 001CCD00 C8 42 92 20 */ lfd f2, lbl_80641820-_SDA2_BASE_(r2)
+/* 801D10A4 001CCD04 C8 02 92 18 */ lfd f0, lbl_80641818-_SDA2_BASE_(r2)
+/* 801D10A8 001CCD08 FC 81 01 72 */ fmul f4, f1, f5
+/* 801D10AC 001CCD0C D8 A1 00 10 */ stfd f5, 0x10(r1)
+/* 801D10B0 001CCD10 FC 21 20 2A */ fadd f1, f1, f4
+/* 801D10B4 001CCD14 FC 23 00 72 */ fmul f1, f3, f1
+/* 801D10B8 001CCD18 FC 21 10 28 */ fsub f1, f1, f2
+/* 801D10BC 001CCD1C FC 20 08 28 */ fsub f1, f0, f1
+/* 801D10C0 001CCD20 48 00 00 58 */ b lbl_801D1118
+lbl_801D10C4:
+/* 801D10C4 001CCD24 D8 21 00 10 */ stfd f1, 0x10(r1)
+/* 801D10C8 001CCD28 38 00 00 00 */ li r0, 0
+/* 801D10CC 001CCD2C C8 A2 92 90 */ lfd f5, lbl_80641890-_SDA2_BASE_(r2)
+/* 801D10D0 001CCD30 FD 1E E8 24 */ fdiv f8, f30, f29
+/* 801D10D4 001CCD34 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801D10D8 001CCD38 C8 62 92 20 */ lfd f3, lbl_80641820-_SDA2_BASE_(r2)
+/* 801D10DC 001CCD3C C8 E1 00 10 */ lfd f7, 0x10(r1)
+/* 801D10E0 001CCD40 C8 42 92 98 */ lfd f2, lbl_80641898-_SDA2_BASE_(r2)
+/* 801D10E4 001CCD44 FC 85 00 72 */ fmul f4, f5, f1
+/* 801D10E8 001CCD48 FC 07 01 F2 */ fmul f0, f7, f7
+/* 801D10EC 001CCD4C FC C1 38 2A */ fadd f6, f1, f7
+/* 801D10F0 001CCD50 FC 84 02 32 */ fmul f4, f4, f8
+/* 801D10F4 001CCD54 FC 3F 00 28 */ fsub f1, f31, f0
+/* 801D10F8 001CCD58 FC 05 01 F2 */ fmul f0, f5, f7
+/* 801D10FC 001CCD5C FC 21 30 24 */ fdiv f1, f1, f6
+/* 801D1100 001CCD60 FC 25 00 72 */ fmul f1, f5, f1
+/* 801D1104 001CCD64 FC 23 08 28 */ fsub f1, f3, f1
+/* 801D1108 001CCD68 FC 62 00 28 */ fsub f3, f2, f0
+/* 801D110C 001CCD6C FC 04 08 28 */ fsub f0, f4, f1
+/* 801D1110 001CCD70 FC 00 18 28 */ fsub f0, f0, f3
+/* 801D1114 001CCD74 FC 22 00 28 */ fsub f1, f2, f0
+lbl_801D1118:
+/* 801D1118 001CCD78 2C 1F 00 00 */ cmpwi r31, 0
+/* 801D111C 001CCD7C 40 81 00 08 */ ble lbl_801D1124
+/* 801D1120 001CCD80 48 00 00 08 */ b lbl_801D1128
+lbl_801D1124:
+/* 801D1124 001CCD84 FC 20 08 50 */ fneg f1, f1
+lbl_801D1128:
+/* 801D1128 001CCD88 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
+/* 801D112C 001CCD8C CB E1 00 40 */ lfd f31, 0x40(r1)
+/* 801D1130 001CCD90 E3 C1 00 38 */ psq_l f30, 56(r1), 0, qr0
+/* 801D1134 001CCD94 CB C1 00 30 */ lfd f30, 0x30(r1)
+/* 801D1138 001CCD98 E3 A1 00 28 */ psq_l f29, 40(r1), 0, qr0
+/* 801D113C 001CCD9C CB A1 00 20 */ lfd f29, 0x20(r1)
+/* 801D1140 001CCDA0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801D1144 001CCDA4 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801D1148 001CCDA8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801D114C 001CCDAC 7C 08 03 A6 */ mtlr r0
+/* 801D1150 001CCDB0 38 21 00 50 */ addi r1, r1, 0x50
+/* 801D1154 001CCDB4 4E 80 00 20 */ blr