...
Run Format

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 NegInf 0xFFF0000000000000
     8	
     9	// Minimax polynomial coefficients and other constants
    10	DATA ·erfcrodataL38<> + 0(SB)/8, $.234875460637085087E-01
    11	DATA ·erfcrodataL38<> + 8(SB)/8, $.234469449299256284E-01
    12	DATA ·erfcrodataL38<> + 16(SB)/8, $-.606918710392844955E-04
    13	DATA ·erfcrodataL38<> + 24(SB)/8, $-.198827088077636213E-04
    14	DATA ·erfcrodataL38<> + 32(SB)/8, $.257805645845475331E-06
    15	DATA ·erfcrodataL38<> + 40(SB)/8, $-.184427218110620284E-09
    16	DATA ·erfcrodataL38<> + 48(SB)/8, $.122408098288933181E-10
    17	DATA ·erfcrodataL38<> + 56(SB)/8, $.484691106751495392E-07
    18	DATA ·erfcrodataL38<> + 64(SB)/8, $-.150147637632890281E-08
    19	DATA ·erfcrodataL38<> + 72(SB)/8, $23.999999999973521625
    20	DATA ·erfcrodataL38<> + 80(SB)/8, $27.226017111108365754
    21	DATA ·erfcrodataL38<> + 88(SB)/8, $-2.0
    22	DATA ·erfcrodataL38<> + 96(SB)/8, $0.100108802034478228E+00
    23	DATA ·erfcrodataL38<> + 104(SB)/8, $0.244588413746558125E+00
    24	DATA ·erfcrodataL38<> + 112(SB)/8, $-.669188879646637174E-01
    25	DATA ·erfcrodataL38<> + 120(SB)/8, $0.151311447000953551E-01
    26	DATA ·erfcrodataL38<> + 128(SB)/8, $-.284720833493302061E-02
    27	DATA ·erfcrodataL38<> + 136(SB)/8, $0.455491239358743212E-03
    28	DATA ·erfcrodataL38<> + 144(SB)/8, $-.631850539280720949E-04
    29	DATA ·erfcrodataL38<> + 152(SB)/8, $0.772532660726086679E-05
    30	DATA ·erfcrodataL38<> + 160(SB)/8, $-.843706007150936940E-06
    31	DATA ·erfcrodataL38<> + 168(SB)/8, $-.735330214904227472E-08
    32	DATA ·erfcrodataL38<> + 176(SB)/8, $0.753002008837084967E-09
    33	DATA ·erfcrodataL38<> + 184(SB)/8, $0.832482036660624637E-07
    34	DATA ·erfcrodataL38<> + 192(SB)/8, $-0.75
    35	DATA ·erfcrodataL38<> + 200(SB)/8, $.927765678007128609E-01
    36	DATA ·erfcrodataL38<> + 208(SB)/8, $.903621209344751506E-01
    37	DATA ·erfcrodataL38<> + 216(SB)/8, $-.344203375025257265E-02
    38	DATA ·erfcrodataL38<> + 224(SB)/8, $-.869243428221791329E-03
    39	DATA ·erfcrodataL38<> + 232(SB)/8, $.174699813107105603E-03
    40	DATA ·erfcrodataL38<> + 240(SB)/8, $.649481036316130000E-05
    41	DATA ·erfcrodataL38<> + 248(SB)/8, $-.895265844897118382E-05
    42	DATA ·erfcrodataL38<> + 256(SB)/8, $.135970046909529513E-05
    43	DATA ·erfcrodataL38<> + 264(SB)/8, $.277617717014748015E-06
    44	DATA ·erfcrodataL38<> + 272(SB)/8, $.810628018408232910E-08
    45	DATA ·erfcrodataL38<> + 280(SB)/8, $.210430084693497985E-07
    46	DATA ·erfcrodataL38<> + 288(SB)/8, $-.342138077525615091E-08
    47	DATA ·erfcrodataL38<> + 296(SB)/8, $-.165467946798610800E-06
    48	DATA ·erfcrodataL38<> + 304(SB)/8, $5.999999999988412824
    49	DATA ·erfcrodataL38<> + 312(SB)/8, $.468542210149072159E-01
    50	DATA ·erfcrodataL38<> + 320(SB)/8, $.465343528567604256E-01
    51	DATA ·erfcrodataL38<> + 328(SB)/8, $-.473338083650201733E-03
    52	DATA ·erfcrodataL38<> + 336(SB)/8, $-.147220659069079156E-03
    53	DATA ·erfcrodataL38<> + 344(SB)/8, $.755284723554388339E-05
    54	DATA ·erfcrodataL38<> + 352(SB)/8, $.116158570631428789E-05
    55	DATA ·erfcrodataL38<> + 360(SB)/8, $-.155445501551602389E-06
    56	DATA ·erfcrodataL38<> + 368(SB)/8, $-.616940119847805046E-10
    57	DATA ·erfcrodataL38<> + 376(SB)/8, $-.728705590727563158E-10
    58	DATA ·erfcrodataL38<> + 384(SB)/8, $-.983452460354586779E-08
    59	DATA ·erfcrodataL38<> + 392(SB)/8, $.365156164194346316E-08
    60	DATA ·erfcrodataL38<> + 400(SB)/8, $11.999999999996530775
    61	DATA ·erfcrodataL38<> + 408(SB)/8, $0.467773498104726584E-02
    62	DATA ·erfcrodataL38<> + 416(SB)/8, $0.206669853540920535E-01
    63	DATA ·erfcrodataL38<> + 424(SB)/8, $0.413339707081841473E-01
    64	DATA ·erfcrodataL38<> + 432(SB)/8, $0.482229658262131320E-01
    65	DATA ·erfcrodataL38<> + 440(SB)/8, $0.344449755901841897E-01
    66	DATA ·erfcrodataL38<> + 448(SB)/8, $0.130890907240765465E-01
    67	DATA ·erfcrodataL38<> + 456(SB)/8, $-.459266344100642687E-03
    68	DATA ·erfcrodataL38<> + 464(SB)/8, $-.337888800856913728E-02
    69	DATA ·erfcrodataL38<> + 472(SB)/8, $-.159103061687062373E-02
    70	DATA ·erfcrodataL38<> + 480(SB)/8, $-.501128905515922644E-04
    71	DATA ·erfcrodataL38<> + 488(SB)/8, $0.262775855852903132E-03
    72	DATA ·erfcrodataL38<> + 496(SB)/8, $0.103860982197462436E-03
    73	DATA ·erfcrodataL38<> + 504(SB)/8, $-.548835785414200775E-05
    74	DATA ·erfcrodataL38<> + 512(SB)/8, $-.157075054646618214E-04
    75	DATA ·erfcrodataL38<> + 520(SB)/8, $-.480056366276045110E-05
    76	DATA ·erfcrodataL38<> + 528(SB)/8, $0.198263013759701555E-05
    77	DATA ·erfcrodataL38<> + 536(SB)/8, $-.224394262958888780E-06
    78	DATA ·erfcrodataL38<> + 544(SB)/8, $-.321853693146683428E-06
    79	DATA ·erfcrodataL38<> + 552(SB)/8, $0.445073894984683537E-07
    80	DATA ·erfcrodataL38<> + 560(SB)/8, $0.660425940000555729E-06
    81	DATA ·erfcrodataL38<> + 568(SB)/8, $2.0
    82	DATA ·erfcrodataL38<> + 576(SB)/8, $8.63616855509444462538e-78
    83	DATA ·erfcrodataL38<> + 584(SB)/8, $1.00000000000000222044
    84	DATA ·erfcrodataL38<> + 592(SB)/8, $0.500000000000004237e+00
    85	DATA ·erfcrodataL38<> + 600(SB)/8, $0.416666664838056960e-01
    86	DATA ·erfcrodataL38<> + 608(SB)/8, $0.166666666630345592e+00
    87	DATA ·erfcrodataL38<> + 616(SB)/8, $0.138926439368309441e-02
    88	DATA ·erfcrodataL38<> + 624(SB)/8, $0.833349307718286047e-02
    89	DATA ·erfcrodataL38<> + 632(SB)/8, $-.693147180558298714e+00
    90	DATA ·erfcrodataL38<> + 640(SB)/8, $-.164659495826017651e-11
    91	DATA ·erfcrodataL38<> + 648(SB)/8, $.179001151181866548E+00
    92	DATA ·erfcrodataL38<> + 656(SB)/8, $-.144269504088896339e+01
    93	DATA ·erfcrodataL38<> + 664(SB)/8, $+281475245147134.9375
    94	DATA ·erfcrodataL38<> + 672(SB)/8, $.163116780021877404E+00
    95	DATA ·erfcrodataL38<> + 680(SB)/8, $-.201574395828120710E-01
    96	DATA ·erfcrodataL38<> + 688(SB)/8, $-.185726336009394125E-02
    97	DATA ·erfcrodataL38<> + 696(SB)/8, $.199349204957273749E-02
    98	DATA ·erfcrodataL38<> + 704(SB)/8, $-.554902415532606242E-03
    99	DATA ·erfcrodataL38<> + 712(SB)/8, $-.638914789660242846E-05
   100	DATA ·erfcrodataL38<> + 720(SB)/8, $-.424441522653742898E-04
   101	DATA ·erfcrodataL38<> + 728(SB)/8, $.827967511921486190E-04
   102	DATA ·erfcrodataL38<> + 736(SB)/8, $.913965446284062654E-05
   103	DATA ·erfcrodataL38<> + 744(SB)/8, $.277344791076320853E-05
   104	DATA ·erfcrodataL38<> + 752(SB)/8, $-.467239678927239526E-06
   105	DATA ·erfcrodataL38<> + 760(SB)/8, $.344814065920419986E-07
   106	DATA ·erfcrodataL38<> + 768(SB)/8, $-.366013491552527132E-05
   107	DATA ·erfcrodataL38<> + 776(SB)/8, $.181242810023783439E-05
   108	DATA ·erfcrodataL38<> + 784(SB)/8, $2.999999999991234567
   109	DATA ·erfcrodataL38<> + 792(SB)/8, $1.0
   110	GLOBL ·erfcrodataL38<> + 0(SB), RODATA, $800
   111	
   112	// Table of log correction terms
   113	DATA ·erfctab2069<> + 0(SB)/8, $0.442737824274138381e-01
   114	DATA ·erfctab2069<> + 8(SB)/8, $0.263602189790660309e-01
   115	DATA ·erfctab2069<> + 16(SB)/8, $0.122565642281703586e-01
   116	DATA ·erfctab2069<> + 24(SB)/8, $0.143757052860721398e-02
   117	DATA ·erfctab2069<> + 32(SB)/8, $-.651375034121276075e-02
   118	DATA ·erfctab2069<> + 40(SB)/8, $-.119317678849450159e-01
   119	DATA ·erfctab2069<> + 48(SB)/8, $-.150868749549871069e-01
   120	DATA ·erfctab2069<> + 56(SB)/8, $-.161992609578469234e-01
   121	DATA ·erfctab2069<> + 64(SB)/8, $-.154492360403337917e-01
   122	DATA ·erfctab2069<> + 72(SB)/8, $-.129850717389178721e-01
   123	DATA ·erfctab2069<> + 80(SB)/8, $-.892902649276657891e-02
   124	DATA ·erfctab2069<> + 88(SB)/8, $-.338202636596794887e-02
   125	DATA ·erfctab2069<> + 96(SB)/8, $0.357266307045684762e-02
   126	DATA ·erfctab2069<> + 104(SB)/8, $0.118665304327406698e-01
   127	DATA ·erfctab2069<> + 112(SB)/8, $0.214434994118118914e-01
   128	DATA ·erfctab2069<> + 120(SB)/8, $0.322580645161290314e-01
   129	GLOBL ·erfctab2069<> + 0(SB), RODATA, $128
   130	
   131	// Erfc returns the complementary error function of the argument.
   132	//
   133	// Special cases are:
   134	//      Erfc(+Inf) = 0
   135	//      Erfc(-Inf) = 2
   136	//      Erfc(NaN) = NaN
   137	// The algorithm used is minimax polynomial approximation
   138	// with coefficients determined with a Remez exchange algorithm.
   139	
   140	TEXT	·erfcAsm(SB), NOSPLIT, $0-16
   141		//special case Erfc(+Inf) = 0
   142		MOVD	x+0(FP), R1
   143		MOVD	$NegInf, R2
   144		CMPUBEQ	R1, R2, erfcIsPosInf
   145	
   146		FMOVD	x+0(FP), F0
   147		MOVD	$·erfcrodataL38<>+0(SB), R9
   148		WORD	$0xB3CD0010	//lgdr %r1, %f0
   149		FMOVD	F0, F2
   150		SRAD	$48, R1
   151		MOVH	$0x3FFF, R3
   152		MOVH	R1, R2
   153		ANDW	$0x7FFF, R1
   154		MOVW	R1, R6
   155		MOVW	R3, R7
   156		CMPBGT	R6, R7, L2
   157		MOVH	$0x3FEF, R3
   158		MOVW	R3, R7
   159		CMPBGT	R6, R7, L3
   160		MOVH	$0x2FFF, R2
   161		MOVW	R2, R7
   162		CMPBGT	R6, R7, L4
   163		FMOVD	792(R9), F0
   164		WFSDB	V2, V0, V2
   165		FMOVD	F2, ret+8(FP)
   166		RET
   167	
   168	L2:
   169		WORD	$0xB3120000	//ltdbr	%f0,%f0
   170		MOVH	$0x0, R4
   171		BLTU	L3
   172		FMOVD	F0, F1
   173	L9:
   174		MOVH	$0x400F, R3
   175		MOVW	R1, R6
   176		MOVW	R3, R7
   177		CMPBGT	R6, R7, L10
   178		FMOVD	784(R9), F3
   179		FSUB	F1, F3
   180		VLEG	$0, 776(R9), V20
   181		WFDDB	V1, V3, V6
   182		VLEG	$0, 768(R9), V18
   183		FMOVD	760(R9), F7
   184		FMOVD	752(R9), F5
   185		VLEG	$0, 744(R9), V16
   186		FMOVD	736(R9), F3
   187		FMOVD	728(R9), F2
   188		FMOVD	720(R9), F4
   189		WFMDB	V6, V6, V1
   190		FMUL	F0, F0
   191		MOVH	$0x0, R3
   192		WFMADB	V1, V7, V20, V7
   193		WFMADB	V1, V5, V18, V5
   194		WFMADB	V1, V7, V16, V7
   195		WFMADB	V1, V5, V3, V5
   196		WFMADB	V1, V7, V4, V7
   197		WFMADB	V1, V5, V2, V5
   198		FMOVD	712(R9), F2
   199		WFMADB	V1, V7, V2, V7
   200		FMOVD	704(R9), F2
   201		WFMADB	V1, V5, V2, V5
   202		FMOVD	696(R9), F2
   203		WFMADB	V1, V7, V2, V7
   204		FMOVD	688(R9), F2
   205		MOVH	$0x0, R1
   206		WFMADB	V1, V5, V2, V5
   207		FMOVD	680(R9), F2
   208		WFMADB	V1, V7, V2, V7
   209		FMOVD	672(R9), F2
   210		WFMADB	V1, V5, V2, V1
   211		FMOVD	664(R9), F3
   212		WFMADB	V6, V7, V1, V7
   213		FMOVD	656(R9), F5
   214		FMOVD	648(R9), F2
   215		WFMADB	V0, V5, V3, V5
   216		WFMADB	V6, V7, V2, V7
   217	L11:
   218		WORD	$0xB3CD0065	//lgdr %r6, %f5
   219		WFSDB	V0, V0, V2
   220		WORD	$0xED509298	//sdb	%f5,.L55-.L38(%r9)
   221		BYTE	$0x00
   222		BYTE	$0x1B
   223		FMOVD	640(R9), F6
   224		FMOVD	632(R9), F4
   225		WFMSDB	V5, V6, V2, V6
   226		WFMSDB	V5, V4, V0, V4
   227		FMOVD	624(R9), F2
   228		FADD	F6, F4
   229		FMOVD	616(R9), F0
   230		FMOVD	608(R9), F6
   231		WFMADB	V4, V0, V2, V0
   232		FMOVD	600(R9), F3
   233		WFMDB	V4, V4, V2
   234		MOVH	R6,R6
   235		ADD	R6, R3
   236		WFMADB	V4, V3, V6, V3
   237		FMOVD	592(R9), F6
   238		WFMADB	V0, V2, V3, V0
   239		FMOVD	584(R9), F3
   240		WFMADB	V4, V6, V3, V6
   241		WORD	$0xECC339BC	//risbg	%r12,%r3,57,128+60,3
   242		BYTE	$0x03
   243		BYTE	$0x55
   244		WFMADB	V2, V0, V6, V0
   245		MOVD	$·erfctab2069<>+0(SB), R5
   246		WORD	$0x682C5000	//ld	%f2,0(%r12,%r5)
   247		FMADD	F2, F4, F4
   248		WORD	$0xEC43000F	//risbgn	%r4,%r3,64-64+0,64-64+0+16-1,64-0-16
   249		BYTE	$0x30
   250		BYTE	$0x59
   251		WFMADB	V4, V0, V2, V4
   252		WORD	$0xB3C10024	//ldgr	%f2,%r4
   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
   261	L21:
   262		FMUL	F7, F2
   263	L1:
   264		FMOVD	F2, ret+8(FP)
   265		RET
   266	L3:
   267		WORD	$0xB3120000	//ltdbr	%f0,%f0
   268		BLTU	L30
   269		FMOVD	568(R9), F2
   270		WFSDB	V0, V2, V0
   271	L8:
   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
   317	L10:
   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
   357	L35:
   358		WORD	$0xB3130010	//lcdbr	%f1,%f0
   359		BR	L9
   360	L36:
   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
   397	L4:
   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
   431	L30:
   432		WORD	$0xED009238	//adb	%f0,.L67-.L38(%r9)
   433		BYTE	$0x00
   434		BYTE	$0x1A
   435		BR	L8
   436	L20:
   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
   442	L13:
   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
   457	L17:
   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
   481	L14:
   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
   492	L37:
   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		WORD	$0xB3C10024	//ldgr	%f2,%r4
   504		FMUL	F2, F2
   505		BR	L1
   506	L23:
   507		MOVH	$0x1000, R3
   508		MOVH	$0x1000, R1
   509		BR	L17
   510	L24:
   511		FMOVD	$0, F2
   512		BR	L1
   513	L18:
   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		WORD	$0xB3C10004	//ldgr	%f0,%r4
   521		FMADD	F2, F0, F2
   522		BR	L1
   523	L25:
   524		FMOVD	568(R9), F2
   525		BR	L1
   526	erfcIsPosInf:
   527		FMOVD	$(2.0), F1
   528		FMOVD	F1, ret+8(FP)
   529		RET
   530	

View as plain text