...

Text file src/math/erfc_s390x.s

Documentation: math

     1// Copyright 2017 The Go Authors. All rights reserved.
     2// Use of this source code is governed by a BSD-style
     3// license that can be found in the LICENSE file.
     4
     5#include "textflag.h"
     6
     7#define Neg2p11 0xC000E147AE147AE1
     8#define Pos15   0x402E
     9
    10// Minimax polynomial coefficients and other constants
    11DATA ·erfcrodataL38<> + 0(SB)/8, $.234875460637085087E-01
    12DATA ·erfcrodataL38<> + 8(SB)/8, $.234469449299256284E-01
    13DATA ·erfcrodataL38<> + 16(SB)/8, $-.606918710392844955E-04
    14DATA ·erfcrodataL38<> + 24(SB)/8, $-.198827088077636213E-04
    15DATA ·erfcrodataL38<> + 32(SB)/8, $.257805645845475331E-06
    16DATA ·erfcrodataL38<> + 40(SB)/8, $-.184427218110620284E-09
    17DATA ·erfcrodataL38<> + 48(SB)/8, $.122408098288933181E-10
    18DATA ·erfcrodataL38<> + 56(SB)/8, $.484691106751495392E-07
    19DATA ·erfcrodataL38<> + 64(SB)/8, $-.150147637632890281E-08
    20DATA ·erfcrodataL38<> + 72(SB)/8, $23.999999999973521625
    21DATA ·erfcrodataL38<> + 80(SB)/8, $27.226017111108365754
    22DATA ·erfcrodataL38<> + 88(SB)/8, $-2.0
    23DATA ·erfcrodataL38<> + 96(SB)/8, $0.100108802034478228E+00
    24DATA ·erfcrodataL38<> + 104(SB)/8, $0.244588413746558125E+00
    25DATA ·erfcrodataL38<> + 112(SB)/8, $-.669188879646637174E-01
    26DATA ·erfcrodataL38<> + 120(SB)/8, $0.151311447000953551E-01
    27DATA ·erfcrodataL38<> + 128(SB)/8, $-.284720833493302061E-02
    28DATA ·erfcrodataL38<> + 136(SB)/8, $0.455491239358743212E-03
    29DATA ·erfcrodataL38<> + 144(SB)/8, $-.631850539280720949E-04
    30DATA ·erfcrodataL38<> + 152(SB)/8, $0.772532660726086679E-05
    31DATA ·erfcrodataL38<> + 160(SB)/8, $-.843706007150936940E-06
    32DATA ·erfcrodataL38<> + 168(SB)/8, $-.735330214904227472E-08
    33DATA ·erfcrodataL38<> + 176(SB)/8, $0.753002008837084967E-09
    34DATA ·erfcrodataL38<> + 184(SB)/8, $0.832482036660624637E-07
    35DATA ·erfcrodataL38<> + 192(SB)/8, $-0.75
    36DATA ·erfcrodataL38<> + 200(SB)/8, $.927765678007128609E-01
    37DATA ·erfcrodataL38<> + 208(SB)/8, $.903621209344751506E-01
    38DATA ·erfcrodataL38<> + 216(SB)/8, $-.344203375025257265E-02
    39DATA ·erfcrodataL38<> + 224(SB)/8, $-.869243428221791329E-03
    40DATA ·erfcrodataL38<> + 232(SB)/8, $.174699813107105603E-03
    41DATA ·erfcrodataL38<> + 240(SB)/8, $.649481036316130000E-05
    42DATA ·erfcrodataL38<> + 248(SB)/8, $-.895265844897118382E-05
    43DATA ·erfcrodataL38<> + 256(SB)/8, $.135970046909529513E-05
    44DATA ·erfcrodataL38<> + 264(SB)/8, $.277617717014748015E-06
    45DATA ·erfcrodataL38<> + 272(SB)/8, $.810628018408232910E-08
    46DATA ·erfcrodataL38<> + 280(SB)/8, $.210430084693497985E-07
    47DATA ·erfcrodataL38<> + 288(SB)/8, $-.342138077525615091E-08
    48DATA ·erfcrodataL38<> + 296(SB)/8, $-.165467946798610800E-06
    49DATA ·erfcrodataL38<> + 304(SB)/8, $5.999999999988412824
    50DATA ·erfcrodataL38<> + 312(SB)/8, $.468542210149072159E-01
    51DATA ·erfcrodataL38<> + 320(SB)/8, $.465343528567604256E-01
    52DATA ·erfcrodataL38<> + 328(SB)/8, $-.473338083650201733E-03
    53DATA ·erfcrodataL38<> + 336(SB)/8, $-.147220659069079156E-03
    54DATA ·erfcrodataL38<> + 344(SB)/8, $.755284723554388339E-05
    55DATA ·erfcrodataL38<> + 352(SB)/8, $.116158570631428789E-05
    56DATA ·erfcrodataL38<> + 360(SB)/8, $-.155445501551602389E-06
    57DATA ·erfcrodataL38<> + 368(SB)/8, $-.616940119847805046E-10
    58DATA ·erfcrodataL38<> + 376(SB)/8, $-.728705590727563158E-10
    59DATA ·erfcrodataL38<> + 384(SB)/8, $-.983452460354586779E-08
    60DATA ·erfcrodataL38<> + 392(SB)/8, $.365156164194346316E-08
    61DATA ·erfcrodataL38<> + 400(SB)/8, $11.999999999996530775
    62DATA ·erfcrodataL38<> + 408(SB)/8, $0.467773498104726584E-02
    63DATA ·erfcrodataL38<> + 416(SB)/8, $0.206669853540920535E-01
    64DATA ·erfcrodataL38<> + 424(SB)/8, $0.413339707081841473E-01
    65DATA ·erfcrodataL38<> + 432(SB)/8, $0.482229658262131320E-01
    66DATA ·erfcrodataL38<> + 440(SB)/8, $0.344449755901841897E-01
    67DATA ·erfcrodataL38<> + 448(SB)/8, $0.130890907240765465E-01
    68DATA ·erfcrodataL38<> + 456(SB)/8, $-.459266344100642687E-03
    69DATA ·erfcrodataL38<> + 464(SB)/8, $-.337888800856913728E-02
    70DATA ·erfcrodataL38<> + 472(SB)/8, $-.159103061687062373E-02
    71DATA ·erfcrodataL38<> + 480(SB)/8, $-.501128905515922644E-04
    72DATA ·erfcrodataL38<> + 488(SB)/8, $0.262775855852903132E-03
    73DATA ·erfcrodataL38<> + 496(SB)/8, $0.103860982197462436E-03
    74DATA ·erfcrodataL38<> + 504(SB)/8, $-.548835785414200775E-05
    75DATA ·erfcrodataL38<> + 512(SB)/8, $-.157075054646618214E-04
    76DATA ·erfcrodataL38<> + 520(SB)/8, $-.480056366276045110E-05
    77DATA ·erfcrodataL38<> + 528(SB)/8, $0.198263013759701555E-05
    78DATA ·erfcrodataL38<> + 536(SB)/8, $-.224394262958888780E-06
    79DATA ·erfcrodataL38<> + 544(SB)/8, $-.321853693146683428E-06
    80DATA ·erfcrodataL38<> + 552(SB)/8, $0.445073894984683537E-07
    81DATA ·erfcrodataL38<> + 560(SB)/8, $0.660425940000555729E-06
    82DATA ·erfcrodataL38<> + 568(SB)/8, $2.0
    83DATA ·erfcrodataL38<> + 576(SB)/8, $8.63616855509444462538e-78
    84DATA ·erfcrodataL38<> + 584(SB)/8, $1.00000000000000222044
    85DATA ·erfcrodataL38<> + 592(SB)/8, $0.500000000000004237e+00
    86DATA ·erfcrodataL38<> + 600(SB)/8, $0.416666664838056960e-01
    87DATA ·erfcrodataL38<> + 608(SB)/8, $0.166666666630345592e+00
    88DATA ·erfcrodataL38<> + 616(SB)/8, $0.138926439368309441e-02
    89DATA ·erfcrodataL38<> + 624(SB)/8, $0.833349307718286047e-02
    90DATA ·erfcrodataL38<> + 632(SB)/8, $-.693147180558298714e+00
    91DATA ·erfcrodataL38<> + 640(SB)/8, $-.164659495826017651e-11
    92DATA ·erfcrodataL38<> + 648(SB)/8, $.179001151181866548E+00
    93DATA ·erfcrodataL38<> + 656(SB)/8, $-.144269504088896339e+01
    94DATA ·erfcrodataL38<> + 664(SB)/8, $+281475245147134.9375
    95DATA ·erfcrodataL38<> + 672(SB)/8, $.163116780021877404E+00
    96DATA ·erfcrodataL38<> + 680(SB)/8, $-.201574395828120710E-01
    97DATA ·erfcrodataL38<> + 688(SB)/8, $-.185726336009394125E-02
    98DATA ·erfcrodataL38<> + 696(SB)/8, $.199349204957273749E-02
    99DATA ·erfcrodataL38<> + 704(SB)/8, $-.554902415532606242E-03
   100DATA ·erfcrodataL38<> + 712(SB)/8, $-.638914789660242846E-05
   101DATA ·erfcrodataL38<> + 720(SB)/8, $-.424441522653742898E-04
   102DATA ·erfcrodataL38<> + 728(SB)/8, $.827967511921486190E-04
   103DATA ·erfcrodataL38<> + 736(SB)/8, $.913965446284062654E-05
   104DATA ·erfcrodataL38<> + 744(SB)/8, $.277344791076320853E-05
   105DATA ·erfcrodataL38<> + 752(SB)/8, $-.467239678927239526E-06
   106DATA ·erfcrodataL38<> + 760(SB)/8, $.344814065920419986E-07
   107DATA ·erfcrodataL38<> + 768(SB)/8, $-.366013491552527132E-05
   108DATA ·erfcrodataL38<> + 776(SB)/8, $.181242810023783439E-05
   109DATA ·erfcrodataL38<> + 784(SB)/8, $2.999999999991234567
   110DATA ·erfcrodataL38<> + 792(SB)/8, $1.0
   111GLOBL ·erfcrodataL38<> + 0(SB), RODATA, $800
   112
   113// Table of log correction terms
   114DATA ·erfctab2069<> + 0(SB)/8, $0.442737824274138381e-01
   115DATA ·erfctab2069<> + 8(SB)/8, $0.263602189790660309e-01
   116DATA ·erfctab2069<> + 16(SB)/8, $0.122565642281703586e-01
   117DATA ·erfctab2069<> + 24(SB)/8, $0.143757052860721398e-02
   118DATA ·erfctab2069<> + 32(SB)/8, $-.651375034121276075e-02
   119DATA ·erfctab2069<> + 40(SB)/8, $-.119317678849450159e-01
   120DATA ·erfctab2069<> + 48(SB)/8, $-.150868749549871069e-01
   121DATA ·erfctab2069<> + 56(SB)/8, $-.161992609578469234e-01
   122DATA ·erfctab2069<> + 64(SB)/8, $-.154492360403337917e-01
   123DATA ·erfctab2069<> + 72(SB)/8, $-.129850717389178721e-01
   124DATA ·erfctab2069<> + 80(SB)/8, $-.892902649276657891e-02
   125DATA ·erfctab2069<> + 88(SB)/8, $-.338202636596794887e-02
   126DATA ·erfctab2069<> + 96(SB)/8, $0.357266307045684762e-02
   127DATA ·erfctab2069<> + 104(SB)/8, $0.118665304327406698e-01
   128DATA ·erfctab2069<> + 112(SB)/8, $0.214434994118118914e-01
   129DATA ·erfctab2069<> + 120(SB)/8, $0.322580645161290314e-01
   130GLOBL ·erfctab2069<> + 0(SB), RODATA, $128
   131
   132// Erfc returns the complementary error function of the argument.
   133//
   134// Special cases are:
   135//      Erfc(+Inf) = 0
   136//      Erfc(-Inf) = 2
   137//      Erfc(NaN) = NaN
   138// The algorithm used is minimax polynomial approximation
   139// with coefficients determined with a Remez exchange algorithm.
   140// This assembly implementation handles inputs in the range [-2.11, +15].
   141// For all other inputs we call the generic Go implementation.
   142
   143TEXT	·erfcAsm(SB), NOSPLIT|NOFRAME, $0-16
   144	MOVD	x+0(FP), R1
   145	MOVD	$Neg2p11, R2
   146	CMPUBGT	R1, R2, usego
   147
   148	FMOVD	x+0(FP), F0
   149	MOVD	$·erfcrodataL38<>+0(SB), R9
   150	FMOVD	F0, F2
   151	SRAD	$48, R1
   152	MOVH	R1, R2
   153	ANDW	$0x7FFF, R1
   154	MOVH	$Pos15, R3
   155	CMPW	R1, R3
   156	BGT	usego
   157	MOVH	$0x3FFF, R3
   158	MOVW	R1, R6
   159	MOVW	R3, R7
   160	CMPBGT	R6, R7, L2
   161	MOVH	$0x3FEF, R3
   162	MOVW	R3, R7
   163	CMPBGT	R6, R7, L3
   164	MOVH	$0x2FFF, R2
   165	MOVW	R2, R7
   166	CMPBGT	R6, R7, L4
   167	FMOVD	792(R9), F0
   168	WFSDB	V2, V0, V2
   169	FMOVD	F2, ret+8(FP)
   170	RET
   171
   172L2:
   173	LTDBR	F0, F0
   174	MOVH	$0x0, R4
   175	BLTU	L3
   176	FMOVD	F0, F1
   177L9:
   178	MOVH	$0x400F, R3
   179	MOVW	R1, R6
   180	MOVW	R3, R7
   181	CMPBGT	R6, R7, L10
   182	FMOVD	784(R9), F3
   183	FSUB	F1, F3
   184	VLEG	$0, 776(R9), V20
   185	WFDDB	V1, V3, V6
   186	VLEG	$0, 768(R9), V18
   187	FMOVD	760(R9), F7
   188	FMOVD	752(R9), F5
   189	VLEG	$0, 744(R9), V16
   190	FMOVD	736(R9), F3
   191	FMOVD	728(R9), F2
   192	FMOVD	720(R9), F4
   193	WFMDB	V6, V6, V1
   194	FMUL	F0, F0
   195	MOVH	$0x0, R3
   196	WFMADB	V1, V7, V20, V7
   197	WFMADB	V1, V5, V18, V5
   198	WFMADB	V1, V7, V16, V7
   199	WFMADB	V1, V5, V3, V5
   200	WFMADB	V1, V7, V4, V7
   201	WFMADB	V1, V5, V2, V5
   202	FMOVD	712(R9), F2
   203	WFMADB	V1, V7, V2, V7
   204	FMOVD	704(R9), F2
   205	WFMADB	V1, V5, V2, V5
   206	FMOVD	696(R9), F2
   207	WFMADB	V1, V7, V2, V7
   208	FMOVD	688(R9), F2
   209	MOVH	$0x0, R1
   210	WFMADB	V1, V5, V2, V5
   211	FMOVD	680(R9), F2
   212	WFMADB	V1, V7, V2, V7
   213	FMOVD	672(R9), F2
   214	WFMADB	V1, V5, V2, V1
   215	FMOVD	664(R9), F3
   216	WFMADB	V6, V7, V1, V7
   217	FMOVD	656(R9), F5
   218	FMOVD	648(R9), F2
   219	WFMADB	V0, V5, V3, V5
   220	WFMADB	V6, V7, V2, V7
   221L11:
   222	LGDR	F5, R6
   223	WFSDB	V0, V0, V2
   224	WORD	$0xED509298	//sdb	%f5,.L55-.L38(%r9)
   225	BYTE	$0x00
   226	BYTE	$0x1B
   227	FMOVD	640(R9), F6
   228	FMOVD	632(R9), F4
   229	WFMSDB	V5, V6, V2, V6
   230	WFMSDB	V5, V4, V0, V4
   231	FMOVD	624(R9), F2
   232	FADD	F6, F4
   233	FMOVD	616(R9), F0
   234	FMOVD	608(R9), F6
   235	WFMADB	V4, V0, V2, V0
   236	FMOVD	600(R9), F3
   237	WFMDB	V4, V4, V2
   238	MOVH	R6,R6
   239	ADD	R6, R3
   240	WFMADB	V4, V3, V6, V3
   241	FMOVD	592(R9), F6
   242	WFMADB	V0, V2, V3, V0
   243	FMOVD	584(R9), F3
   244	WFMADB	V4, V6, V3, V6
   245	RISBGZ	$57, $60, $3, R3, R12
   246	WFMADB	V2, V0, V6, V0
   247	MOVD	$·erfctab2069<>+0(SB), R5
   248	WORD	$0x682C5000	//ld	%f2,0(%r12,%r5)
   249	FMADD	F2, F4, F4
   250	RISBGN	$0, $15, $48, R3, R4
   251	WFMADB	V4, V0, V2, V4
   252	LDGR	R4, F2
   253	FMADD	F4, F2, F2
   254	MOVW	R2, R6
   255	CMPBLE	R6, $0, L20
   256	MOVW	R1, R6
   257	CMPBEQ	R6, $0, L21
   258	WORD	$0xED709240	//mdb	%f7,.L66-.L38(%r9)
   259	BYTE	$0x00
   260	BYTE	$0x1C
   261L21:
   262	FMUL	F7, F2
   263L1:
   264	FMOVD	F2, ret+8(FP)
   265	RET
   266L3:
   267	LTDBR	F0, F0
   268	BLTU	L30
   269	FMOVD	568(R9), F2
   270	WFSDB	V0, V2, V0
   271L8:
   272	WFMDB	V0, V0, V4
   273	FMOVD	560(R9), F2
   274	FMOVD	552(R9), F6
   275	FMOVD	544(R9), F1
   276	WFMADB	V4, V6, V2, V6
   277	FMOVD	536(R9), F2
   278	WFMADB	V4, V1, V2, V1
   279	FMOVD	528(R9), F3
   280	FMOVD	520(R9), F2
   281	WFMADB	V4, V6, V3, V6
   282	WFMADB	V4, V1, V2, V1
   283	FMOVD	512(R9), F3
   284	FMOVD	504(R9), F2
   285	WFMADB	V4, V6, V3, V6
   286	WFMADB	V4, V1, V2, V1
   287	FMOVD	496(R9), F3
   288	FMOVD	488(R9), F2
   289	WFMADB	V4, V6, V3, V6
   290	WFMADB	V4, V1, V2, V1
   291	FMOVD	480(R9), F3
   292	FMOVD	472(R9), F2
   293	WFMADB	V4, V6, V3, V6
   294	WFMADB	V4, V1, V2, V1
   295	FMOVD	464(R9), F3
   296	FMOVD	456(R9), F2
   297	WFMADB	V4, V6, V3, V6
   298	WFMADB	V4, V1, V2, V1
   299	FMOVD	448(R9), F3
   300	FMOVD	440(R9), F2
   301	WFMADB	V4, V6, V3, V6
   302	WFMADB	V4, V1, V2, V1
   303	FMOVD	432(R9), F3
   304	FMOVD	424(R9), F2
   305	WFMADB	V4, V6, V3, V6
   306	WFMADB	V4, V1, V2, V1
   307	FMOVD	416(R9), F3
   308	FMOVD	408(R9), F2
   309	WFMADB	V4, V6, V3, V6
   310	FMADD	F1, F4, F2
   311	FMADD	F6, F0, F2
   312	MOVW	R2, R6
   313	CMPBGE	R6, $0, L1
   314	FMOVD	568(R9), F0
   315	WFSDB	V2, V0, V2
   316	BR	L1
   317L10:
   318	MOVH	$0x401F, R3
   319	MOVW	R1, R6
   320	MOVW	R3, R7
   321	CMPBLE	R6, R7, L36
   322	MOVH	$0x402F, R3
   323	MOVW	R3, R7
   324	CMPBGT	R6, R7, L13
   325	FMOVD	400(R9), F3
   326	FSUB	F1, F3
   327	VLEG	$0, 392(R9), V20
   328	WFDDB	V1, V3, V6
   329	VLEG	$0, 384(R9), V18
   330	FMOVD	376(R9), F2
   331	FMOVD	368(R9), F4
   332	VLEG	$0, 360(R9), V16
   333	FMOVD	352(R9), F7
   334	FMOVD	344(R9), F3
   335	FMUL	F0, F0
   336	WFMDB	V6, V6, V1
   337	FMOVD	656(R9), F5
   338	MOVH	$0x0, R3
   339	WFMADB	V1, V2, V20, V2
   340	WFMADB	V1, V4, V18, V4
   341	WFMADB	V1, V2, V16, V2
   342	WFMADB	V1, V4, V7, V4
   343	WFMADB	V1, V2, V3, V2
   344	FMOVD	336(R9), F3
   345	WFMADB	V1, V4, V3, V4
   346	FMOVD	328(R9), F3
   347	WFMADB	V1, V2, V3, V2
   348	FMOVD	320(R9), F3
   349	WFMADB	V1, V4, V3, V1
   350	FMOVD	312(R9), F7
   351	WFMADB	V6, V2, V1, V2
   352	MOVH	$0x0, R1
   353	FMOVD	664(R9), F3
   354	FMADD	F2, F6, F7
   355	WFMADB	V0, V5, V3, V5
   356	BR	L11
   357L35:
   358	WORD	$0xB3130010	//lcdbr	%f1,%f0
   359	BR	L9
   360L36:
   361	FMOVD	304(R9), F3
   362	FSUB	F1, F3
   363	VLEG	$0, 296(R9), V20
   364	WFDDB	V1, V3, V6
   365	FMOVD	288(R9), F5
   366	FMOVD	280(R9), F1
   367	FMOVD	272(R9), F2
   368	VLEG	$0, 264(R9), V18
   369	VLEG	$0, 256(R9), V16
   370	FMOVD	248(R9), F3
   371	FMOVD	240(R9), F4
   372	WFMDB	V6, V6, V7
   373	FMUL	F0, F0
   374	MOVH	$0x0, R3
   375	FMADD	F5, F7, F1
   376	WFMADB	V7, V2, V20, V2
   377	WFMADB	V7, V1, V18, V1
   378	WFMADB	V7, V2, V16, V2
   379	WFMADB	V7, V1, V3, V1
   380	WFMADB	V7, V2, V4, V2
   381	FMOVD	232(R9), F4
   382	WFMADB	V7, V1, V4, V1
   383	FMOVD	224(R9), F4
   384	WFMADB	V7, V2, V4, V2
   385	FMOVD	216(R9), F4
   386	WFMADB	V7, V1, V4, V1
   387	FMOVD	208(R9), F4
   388	MOVH	$0x0, R1
   389	WFMADB	V7, V2, V4, V7
   390	FMOVD	656(R9), F5
   391	WFMADB	V6, V1, V7, V1
   392	FMOVD	664(R9), F3
   393	FMOVD	200(R9), F7
   394	WFMADB	V0, V5, V3, V5
   395	FMADD	F1, F6, F7
   396	BR	L11
   397L4:
   398	FMOVD	192(R9), F1
   399	FMADD	F0, F0, F1
   400	FMOVD	184(R9), F3
   401	WFMDB	V1, V1, V0
   402	FMOVD	176(R9), F4
   403	FMOVD	168(R9), F6
   404	WFMADB	V0, V4, V3, V4
   405	FMOVD	160(R9), F3
   406	WFMADB	V0, V6, V3, V6
   407	FMOVD	152(R9), F5
   408	FMOVD	144(R9), F3
   409	WFMADB	V0, V4, V5, V4
   410	WFMADB	V0, V6, V3, V6
   411	FMOVD	136(R9), F5
   412	FMOVD	128(R9), F3
   413	WFMADB	V0, V4, V5, V4
   414	WFMADB	V0, V6, V3, V6
   415	FMOVD	120(R9), F5
   416	FMOVD	112(R9), F3
   417	WFMADB	V0, V4, V5, V4
   418	WFMADB	V0, V6, V3, V6
   419	FMOVD	104(R9), F5
   420	FMOVD	96(R9), F3
   421	WFMADB	V0, V4, V5, V4
   422	WFMADB	V0, V6, V3, V0
   423	FMOVD	F2, F6
   424	FMADD	F4, F1, F0
   425	WORD	$0xED609318	//sdb	%f6,.L39-.L38(%r9)
   426	BYTE	$0x00
   427	BYTE	$0x1B
   428	WFMSDB	V2, V0, V6, V2
   429	FMOVD	F2, ret+8(FP)
   430	RET
   431L30:
   432	WORD	$0xED009238	//adb	%f0,.L67-.L38(%r9)
   433	BYTE	$0x00
   434	BYTE	$0x1A
   435	BR	L8
   436L20:
   437	FMOVD	88(R9), F0
   438	WFMADB	V7, V2, V0, V2
   439	WORD	$0xB3130022	//lcdbr	%f2,%f2
   440	FMOVD	F2, ret+8(FP)
   441	RET
   442L13:
   443	MOVH	$0x403A, R3
   444	MOVW	R1, R6
   445	MOVW	R3, R7
   446	CMPBLE	R6, R7, L4
   447	WORD	$0xED109050	//cdb	%f1,.L128-.L38(%r9)
   448	BYTE	$0x00
   449	BYTE	$0x19
   450	BGE	L37
   451	BVS	L37
   452	FMOVD	72(R9), F6
   453	FSUB	F1, F6
   454	MOVH	$0x1000, R3
   455	FDIV	F1, F6
   456	MOVH	$0x1000, R1
   457L17:
   458	WFMDB	V6, V6, V1
   459	FMOVD	64(R9), F2
   460	FMOVD	56(R9), F4
   461	FMOVD	48(R9), F3
   462	WFMADB	V1, V3, V2, V3
   463	FMOVD	40(R9), F2
   464	WFMADB	V1, V2, V4, V2
   465	FMOVD	32(R9), F4
   466	WFMADB	V1, V3, V4, V3
   467	FMOVD	24(R9), F4
   468	WFMADB	V1, V2, V4, V2
   469	FMOVD	16(R9), F4
   470	WFMADB	V1, V3, V4, V3
   471	FMOVD	8(R9), F4
   472	WFMADB	V1, V2, V4, V1
   473	FMUL	F0, F0
   474	WFMADB	V3, V6, V1, V3
   475	FMOVD	656(R9), F5
   476	FMOVD	664(R9), F4
   477	FMOVD	0(R9), F7
   478	WFMADB	V0, V5, V4, V5
   479	FMADD	F6, F3, F7
   480	BR	L11
   481L14:
   482	FMOVD	72(R9), F6
   483	FSUB	F1, F6
   484	MOVH	$0x403A, R3
   485	FDIV	F1, F6
   486	MOVW	R1, R6
   487	MOVW	R3, R7
   488	CMPBEQ	R6, R7, L23
   489	MOVH	$0x0, R3
   490	MOVH	$0x0, R1
   491	BR	L17
   492L37:
   493	WFCEDBS	V0, V0, V0
   494	BVS	L1
   495	MOVW	R2, R6
   496	CMPBLE	R6, $0, L18
   497	MOVH	$0x7FEF, R2
   498	MOVW	R1, R6
   499	MOVW	R2, R7
   500	CMPBGT	R6, R7, L24
   501
   502	WORD	$0xA5400010	//iihh	%r4,16
   503	LDGR	R4, F2
   504	FMUL	F2, F2
   505	BR	L1
   506L23:
   507	MOVH	$0x1000, R3
   508	MOVH	$0x1000, R1
   509	BR	L17
   510L24:
   511	FMOVD	$0, F2
   512	BR	L1
   513L18:
   514	MOVH	$0x7FEF, R2
   515	MOVW	R1, R6
   516	MOVW	R2, R7
   517	CMPBGT	R6, R7, L25
   518	WORD	$0xA5408010	//iihh	%r4,32784
   519	FMOVD	568(R9), F2
   520	LDGR	R4, F0
   521	FMADD	F2, F0, F2
   522	BR	L1
   523L25:
   524	FMOVD	568(R9), F2
   525	BR	L1
   526usego:
   527	BR	·erfc(SB)

View as plain text