...
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 Neg2p11 0xC000E147AE147AE1
     8	#define Pos15   0x402E
     9	
    10	// Minimax polynomial coefficients and other constants
    11	DATA ·erfcrodataL38<> + 0(SB)/8, $.234875460637085087E-01
    12	DATA ·erfcrodataL38<> + 8(SB)/8, $.234469449299256284E-01
    13	DATA ·erfcrodataL38<> + 16(SB)/8, $-.606918710392844955E-04
    14	DATA ·erfcrodataL38<> + 24(SB)/8, $-.198827088077636213E-04
    15	DATA ·erfcrodataL38<> + 32(SB)/8, $.257805645845475331E-06
    16	DATA ·erfcrodataL38<> + 40(SB)/8, $-.184427218110620284E-09
    17	DATA ·erfcrodataL38<> + 48(SB)/8, $.122408098288933181E-10
    18	DATA ·erfcrodataL38<> + 56(SB)/8, $.484691106751495392E-07
    19	DATA ·erfcrodataL38<> + 64(SB)/8, $-.150147637632890281E-08
    20	DATA ·erfcrodataL38<> + 72(SB)/8, $23.999999999973521625
    21	DATA ·erfcrodataL38<> + 80(SB)/8, $27.226017111108365754
    22	DATA ·erfcrodataL38<> + 88(SB)/8, $-2.0
    23	DATA ·erfcrodataL38<> + 96(SB)/8, $0.100108802034478228E+00
    24	DATA ·erfcrodataL38<> + 104(SB)/8, $0.244588413746558125E+00
    25	DATA ·erfcrodataL38<> + 112(SB)/8, $-.669188879646637174E-01
    26	DATA ·erfcrodataL38<> + 120(SB)/8, $0.151311447000953551E-01
    27	DATA ·erfcrodataL38<> + 128(SB)/8, $-.284720833493302061E-02
    28	DATA ·erfcrodataL38<> + 136(SB)/8, $0.455491239358743212E-03
    29	DATA ·erfcrodataL38<> + 144(SB)/8, $-.631850539280720949E-04
    30	DATA ·erfcrodataL38<> + 152(SB)/8, $0.772532660726086679E-05
    31	DATA ·erfcrodataL38<> + 160(SB)/8, $-.843706007150936940E-06
    32	DATA ·erfcrodataL38<> + 168(SB)/8, $-.735330214904227472E-08
    33	DATA ·erfcrodataL38<> + 176(SB)/8, $0.753002008837084967E-09
    34	DATA ·erfcrodataL38<> + 184(SB)/8, $0.832482036660624637E-07
    35	DATA ·erfcrodataL38<> + 192(SB)/8, $-0.75
    36	DATA ·erfcrodataL38<> + 200(SB)/8, $.927765678007128609E-01
    37	DATA ·erfcrodataL38<> + 208(SB)/8, $.903621209344751506E-01
    38	DATA ·erfcrodataL38<> + 216(SB)/8, $-.344203375025257265E-02
    39	DATA ·erfcrodataL38<> + 224(SB)/8, $-.869243428221791329E-03
    40	DATA ·erfcrodataL38<> + 232(SB)/8, $.174699813107105603E-03
    41	DATA ·erfcrodataL38<> + 240(SB)/8, $.649481036316130000E-05
    42	DATA ·erfcrodataL38<> + 248(SB)/8, $-.895265844897118382E-05
    43	DATA ·erfcrodataL38<> + 256(SB)/8, $.135970046909529513E-05
    44	DATA ·erfcrodataL38<> + 264(SB)/8, $.277617717014748015E-06
    45	DATA ·erfcrodataL38<> + 272(SB)/8, $.810628018408232910E-08
    46	DATA ·erfcrodataL38<> + 280(SB)/8, $.210430084693497985E-07
    47	DATA ·erfcrodataL38<> + 288(SB)/8, $-.342138077525615091E-08
    48	DATA ·erfcrodataL38<> + 296(SB)/8, $-.165467946798610800E-06
    49	DATA ·erfcrodataL38<> + 304(SB)/8, $5.999999999988412824
    50	DATA ·erfcrodataL38<> + 312(SB)/8, $.468542210149072159E-01
    51	DATA ·erfcrodataL38<> + 320(SB)/8, $.465343528567604256E-01
    52	DATA ·erfcrodataL38<> + 328(SB)/8, $-.473338083650201733E-03
    53	DATA ·erfcrodataL38<> + 336(SB)/8, $-.147220659069079156E-03
    54	DATA ·erfcrodataL38<> + 344(SB)/8, $.755284723554388339E-05
    55	DATA ·erfcrodataL38<> + 352(SB)/8, $.116158570631428789E-05
    56	DATA ·erfcrodataL38<> + 360(SB)/8, $-.155445501551602389E-06
    57	DATA ·erfcrodataL38<> + 368(SB)/8, $-.616940119847805046E-10
    58	DATA ·erfcrodataL38<> + 376(SB)/8, $-.728705590727563158E-10
    59	DATA ·erfcrodataL38<> + 384(SB)/8, $-.983452460354586779E-08
    60	DATA ·erfcrodataL38<> + 392(SB)/8, $.365156164194346316E-08
    61	DATA ·erfcrodataL38<> + 400(SB)/8, $11.999999999996530775
    62	DATA ·erfcrodataL38<> + 408(SB)/8, $0.467773498104726584E-02
    63	DATA ·erfcrodataL38<> + 416(SB)/8, $0.206669853540920535E-01
    64	DATA ·erfcrodataL38<> + 424(SB)/8, $0.413339707081841473E-01
    65	DATA ·erfcrodataL38<> + 432(SB)/8, $0.482229658262131320E-01
    66	DATA ·erfcrodataL38<> + 440(SB)/8, $0.344449755901841897E-01
    67	DATA ·erfcrodataL38<> + 448(SB)/8, $0.130890907240765465E-01
    68	DATA ·erfcrodataL38<> + 456(SB)/8, $-.459266344100642687E-03
    69	DATA ·erfcrodataL38<> + 464(SB)/8, $-.337888800856913728E-02
    70	DATA ·erfcrodataL38<> + 472(SB)/8, $-.159103061687062373E-02
    71	DATA ·erfcrodataL38<> + 480(SB)/8, $-.501128905515922644E-04
    72	DATA ·erfcrodataL38<> + 488(SB)/8, $0.262775855852903132E-03
    73	DATA ·erfcrodataL38<> + 496(SB)/8, $0.103860982197462436E-03
    74	DATA ·erfcrodataL38<> + 504(SB)/8, $-.548835785414200775E-05
    75	DATA ·erfcrodataL38<> + 512(SB)/8, $-.157075054646618214E-04
    76	DATA ·erfcrodataL38<> + 520(SB)/8, $-.480056366276045110E-05
    77	DATA ·erfcrodataL38<> + 528(SB)/8, $0.198263013759701555E-05
    78	DATA ·erfcrodataL38<> + 536(SB)/8, $-.224394262958888780E-06
    79	DATA ·erfcrodataL38<> + 544(SB)/8, $-.321853693146683428E-06
    80	DATA ·erfcrodataL38<> + 552(SB)/8, $0.445073894984683537E-07
    81	DATA ·erfcrodataL38<> + 560(SB)/8, $0.660425940000555729E-06
    82	DATA ·erfcrodataL38<> + 568(SB)/8, $2.0
    83	DATA ·erfcrodataL38<> + 576(SB)/8, $8.63616855509444462538e-78
    84	DATA ·erfcrodataL38<> + 584(SB)/8, $1.00000000000000222044
    85	DATA ·erfcrodataL38<> + 592(SB)/8, $0.500000000000004237e+00
    86	DATA ·erfcrodataL38<> + 600(SB)/8, $0.416666664838056960e-01
    87	DATA ·erfcrodataL38<> + 608(SB)/8, $0.166666666630345592e+00
    88	DATA ·erfcrodataL38<> + 616(SB)/8, $0.138926439368309441e-02
    89	DATA ·erfcrodataL38<> + 624(SB)/8, $0.833349307718286047e-02
    90	DATA ·erfcrodataL38<> + 632(SB)/8, $-.693147180558298714e+00
    91	DATA ·erfcrodataL38<> + 640(SB)/8, $-.164659495826017651e-11
    92	DATA ·erfcrodataL38<> + 648(SB)/8, $.179001151181866548E+00
    93	DATA ·erfcrodataL38<> + 656(SB)/8, $-.144269504088896339e+01
    94	DATA ·erfcrodataL38<> + 664(SB)/8, $+281475245147134.9375
    95	DATA ·erfcrodataL38<> + 672(SB)/8, $.163116780021877404E+00
    96	DATA ·erfcrodataL38<> + 680(SB)/8, $-.201574395828120710E-01
    97	DATA ·erfcrodataL38<> + 688(SB)/8, $-.185726336009394125E-02
    98	DATA ·erfcrodataL38<> + 696(SB)/8, $.199349204957273749E-02
    99	DATA ·erfcrodataL38<> + 704(SB)/8, $-.554902415532606242E-03
   100	DATA ·erfcrodataL38<> + 712(SB)/8, $-.638914789660242846E-05
   101	DATA ·erfcrodataL38<> + 720(SB)/8, $-.424441522653742898E-04
   102	DATA ·erfcrodataL38<> + 728(SB)/8, $.827967511921486190E-04
   103	DATA ·erfcrodataL38<> + 736(SB)/8, $.913965446284062654E-05
   104	DATA ·erfcrodataL38<> + 744(SB)/8, $.277344791076320853E-05
   105	DATA ·erfcrodataL38<> + 752(SB)/8, $-.467239678927239526E-06
   106	DATA ·erfcrodataL38<> + 760(SB)/8, $.344814065920419986E-07
   107	DATA ·erfcrodataL38<> + 768(SB)/8, $-.366013491552527132E-05
   108	DATA ·erfcrodataL38<> + 776(SB)/8, $.181242810023783439E-05
   109	DATA ·erfcrodataL38<> + 784(SB)/8, $2.999999999991234567
   110	DATA ·erfcrodataL38<> + 792(SB)/8, $1.0
   111	GLOBL ·erfcrodataL38<> + 0(SB), RODATA, $800
   112	
   113	// Table of log correction terms
   114	DATA ·erfctab2069<> + 0(SB)/8, $0.442737824274138381e-01
   115	DATA ·erfctab2069<> + 8(SB)/8, $0.263602189790660309e-01
   116	DATA ·erfctab2069<> + 16(SB)/8, $0.122565642281703586e-01
   117	DATA ·erfctab2069<> + 24(SB)/8, $0.143757052860721398e-02
   118	DATA ·erfctab2069<> + 32(SB)/8, $-.651375034121276075e-02
   119	DATA ·erfctab2069<> + 40(SB)/8, $-.119317678849450159e-01
   120	DATA ·erfctab2069<> + 48(SB)/8, $-.150868749549871069e-01
   121	DATA ·erfctab2069<> + 56(SB)/8, $-.161992609578469234e-01
   122	DATA ·erfctab2069<> + 64(SB)/8, $-.154492360403337917e-01
   123	DATA ·erfctab2069<> + 72(SB)/8, $-.129850717389178721e-01
   124	DATA ·erfctab2069<> + 80(SB)/8, $-.892902649276657891e-02
   125	DATA ·erfctab2069<> + 88(SB)/8, $-.338202636596794887e-02
   126	DATA ·erfctab2069<> + 96(SB)/8, $0.357266307045684762e-02
   127	DATA ·erfctab2069<> + 104(SB)/8, $0.118665304327406698e-01
   128	DATA ·erfctab2069<> + 112(SB)/8, $0.214434994118118914e-01
   129	DATA ·erfctab2069<> + 120(SB)/8, $0.322580645161290314e-01
   130	GLOBL ·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	
   143	TEXT	·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	
   172	L2:
   173		LTDBR	F0, F0
   174		MOVH	$0x0, R4
   175		BLTU	L3
   176		FMOVD	F0, F1
   177	L9:
   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
   221	L11:
   222		WORD	$0xB3CD0065	//lgdr %r6, %f5
   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		WORD	$0xECC339BC	//risbg	%r12,%r3,57,128+60,3
   246		BYTE	$0x03
   247		BYTE	$0x55
   248		WFMADB	V2, V0, V6, V0
   249		MOVD	$·erfctab2069<>+0(SB), R5
   250		WORD	$0x682C5000	//ld	%f2,0(%r12,%r5)
   251		FMADD	F2, F4, F4
   252		WORD	$0xEC43000F	//risbgn	%r4,%r3,64-64+0,64-64+0+16-1,64-0-16
   253		BYTE	$0x30
   254		BYTE	$0x59
   255		WFMADB	V4, V0, V2, V4
   256		WORD	$0xB3C10024	//ldgr	%f2,%r4
   257		FMADD	F4, F2, F2
   258		MOVW	R2, R6
   259		CMPBLE	R6, $0, L20
   260		MOVW	R1, R6
   261		CMPBEQ	R6, $0, L21
   262		WORD	$0xED709240	//mdb	%f7,.L66-.L38(%r9)
   263		BYTE	$0x00
   264		BYTE	$0x1C
   265	L21:
   266		FMUL	F7, F2
   267	L1:
   268		FMOVD	F2, ret+8(FP)
   269		RET
   270	L3:
   271		LTDBR	F0, F0
   272		BLTU	L30
   273		FMOVD	568(R9), F2
   274		WFSDB	V0, V2, V0
   275	L8:
   276		WFMDB	V0, V0, V4
   277		FMOVD	560(R9), F2
   278		FMOVD	552(R9), F6
   279		FMOVD	544(R9), F1
   280		WFMADB	V4, V6, V2, V6
   281		FMOVD	536(R9), F2
   282		WFMADB	V4, V1, V2, V1
   283		FMOVD	528(R9), F3
   284		FMOVD	520(R9), F2
   285		WFMADB	V4, V6, V3, V6
   286		WFMADB	V4, V1, V2, V1
   287		FMOVD	512(R9), F3
   288		FMOVD	504(R9), F2
   289		WFMADB	V4, V6, V3, V6
   290		WFMADB	V4, V1, V2, V1
   291		FMOVD	496(R9), F3
   292		FMOVD	488(R9), F2
   293		WFMADB	V4, V6, V3, V6
   294		WFMADB	V4, V1, V2, V1
   295		FMOVD	480(R9), F3
   296		FMOVD	472(R9), F2
   297		WFMADB	V4, V6, V3, V6
   298		WFMADB	V4, V1, V2, V1
   299		FMOVD	464(R9), F3
   300		FMOVD	456(R9), F2
   301		WFMADB	V4, V6, V3, V6
   302		WFMADB	V4, V1, V2, V1
   303		FMOVD	448(R9), F3
   304		FMOVD	440(R9), F2
   305		WFMADB	V4, V6, V3, V6
   306		WFMADB	V4, V1, V2, V1
   307		FMOVD	432(R9), F3
   308		FMOVD	424(R9), F2
   309		WFMADB	V4, V6, V3, V6
   310		WFMADB	V4, V1, V2, V1
   311		FMOVD	416(R9), F3
   312		FMOVD	408(R9), F2
   313		WFMADB	V4, V6, V3, V6
   314		FMADD	F1, F4, F2
   315		FMADD	F6, F0, F2
   316		MOVW	R2, R6
   317		CMPBGE	R6, $0, L1
   318		FMOVD	568(R9), F0
   319		WFSDB	V2, V0, V2
   320		BR	L1
   321	L10:
   322		MOVH	$0x401F, R3
   323		MOVW	R1, R6
   324		MOVW	R3, R7
   325		CMPBLE	R6, R7, L36
   326		MOVH	$0x402F, R3
   327		MOVW	R3, R7
   328		CMPBGT	R6, R7, L13
   329		FMOVD	400(R9), F3
   330		FSUB	F1, F3
   331		VLEG	$0, 392(R9), V20
   332		WFDDB	V1, V3, V6
   333		VLEG	$0, 384(R9), V18
   334		FMOVD	376(R9), F2
   335		FMOVD	368(R9), F4
   336		VLEG	$0, 360(R9), V16
   337		FMOVD	352(R9), F7
   338		FMOVD	344(R9), F3
   339		FMUL	F0, F0
   340		WFMDB	V6, V6, V1
   341		FMOVD	656(R9), F5
   342		MOVH	$0x0, R3
   343		WFMADB	V1, V2, V20, V2
   344		WFMADB	V1, V4, V18, V4
   345		WFMADB	V1, V2, V16, V2
   346		WFMADB	V1, V4, V7, V4
   347		WFMADB	V1, V2, V3, V2
   348		FMOVD	336(R9), F3
   349		WFMADB	V1, V4, V3, V4
   350		FMOVD	328(R9), F3
   351		WFMADB	V1, V2, V3, V2
   352		FMOVD	320(R9), F3
   353		WFMADB	V1, V4, V3, V1
   354		FMOVD	312(R9), F7
   355		WFMADB	V6, V2, V1, V2
   356		MOVH	$0x0, R1
   357		FMOVD	664(R9), F3
   358		FMADD	F2, F6, F7
   359		WFMADB	V0, V5, V3, V5
   360		BR	L11
   361	L35:
   362		WORD	$0xB3130010	//lcdbr	%f1,%f0
   363		BR	L9
   364	L36:
   365		FMOVD	304(R9), F3
   366		FSUB	F1, F3
   367		VLEG	$0, 296(R9), V20
   368		WFDDB	V1, V3, V6
   369		FMOVD	288(R9), F5
   370		FMOVD	280(R9), F1
   371		FMOVD	272(R9), F2
   372		VLEG	$0, 264(R9), V18
   373		VLEG	$0, 256(R9), V16
   374		FMOVD	248(R9), F3
   375		FMOVD	240(R9), F4
   376		WFMDB	V6, V6, V7
   377		FMUL	F0, F0
   378		MOVH	$0x0, R3
   379		FMADD	F5, F7, F1
   380		WFMADB	V7, V2, V20, V2
   381		WFMADB	V7, V1, V18, V1
   382		WFMADB	V7, V2, V16, V2
   383		WFMADB	V7, V1, V3, V1
   384		WFMADB	V7, V2, V4, V2
   385		FMOVD	232(R9), F4
   386		WFMADB	V7, V1, V4, V1
   387		FMOVD	224(R9), F4
   388		WFMADB	V7, V2, V4, V2
   389		FMOVD	216(R9), F4
   390		WFMADB	V7, V1, V4, V1
   391		FMOVD	208(R9), F4
   392		MOVH	$0x0, R1
   393		WFMADB	V7, V2, V4, V7
   394		FMOVD	656(R9), F5
   395		WFMADB	V6, V1, V7, V1
   396		FMOVD	664(R9), F3
   397		FMOVD	200(R9), F7
   398		WFMADB	V0, V5, V3, V5
   399		FMADD	F1, F6, F7
   400		BR	L11
   401	L4:
   402		FMOVD	192(R9), F1
   403		FMADD	F0, F0, F1
   404		FMOVD	184(R9), F3
   405		WFMDB	V1, V1, V0
   406		FMOVD	176(R9), F4
   407		FMOVD	168(R9), F6
   408		WFMADB	V0, V4, V3, V4
   409		FMOVD	160(R9), F3
   410		WFMADB	V0, V6, V3, V6
   411		FMOVD	152(R9), F5
   412		FMOVD	144(R9), F3
   413		WFMADB	V0, V4, V5, V4
   414		WFMADB	V0, V6, V3, V6
   415		FMOVD	136(R9), F5
   416		FMOVD	128(R9), F3
   417		WFMADB	V0, V4, V5, V4
   418		WFMADB	V0, V6, V3, V6
   419		FMOVD	120(R9), F5
   420		FMOVD	112(R9), F3
   421		WFMADB	V0, V4, V5, V4
   422		WFMADB	V0, V6, V3, V6
   423		FMOVD	104(R9), F5
   424		FMOVD	96(R9), F3
   425		WFMADB	V0, V4, V5, V4
   426		WFMADB	V0, V6, V3, V0
   427		FMOVD	F2, F6
   428		FMADD	F4, F1, F0
   429		WORD	$0xED609318	//sdb	%f6,.L39-.L38(%r9)
   430		BYTE	$0x00
   431		BYTE	$0x1B
   432		WFMSDB	V2, V0, V6, V2
   433		FMOVD	F2, ret+8(FP)
   434		RET
   435	L30:
   436		WORD	$0xED009238	//adb	%f0,.L67-.L38(%r9)
   437		BYTE	$0x00
   438		BYTE	$0x1A
   439		BR	L8
   440	L20:
   441		FMOVD	88(R9), F0
   442		WFMADB	V7, V2, V0, V2
   443		WORD	$0xB3130022	//lcdbr	%f2,%f2
   444		FMOVD	F2, ret+8(FP)
   445		RET
   446	L13:
   447		MOVH	$0x403A, R3
   448		MOVW	R1, R6
   449		MOVW	R3, R7
   450		CMPBLE	R6, R7, L4
   451		WORD	$0xED109050	//cdb	%f1,.L128-.L38(%r9)
   452		BYTE	$0x00
   453		BYTE	$0x19
   454		BGE	L37
   455		BVS	L37
   456		FMOVD	72(R9), F6
   457		FSUB	F1, F6
   458		MOVH	$0x1000, R3
   459		FDIV	F1, F6
   460		MOVH	$0x1000, R1
   461	L17:
   462		WFMDB	V6, V6, V1
   463		FMOVD	64(R9), F2
   464		FMOVD	56(R9), F4
   465		FMOVD	48(R9), F3
   466		WFMADB	V1, V3, V2, V3
   467		FMOVD	40(R9), F2
   468		WFMADB	V1, V2, V4, V2
   469		FMOVD	32(R9), F4
   470		WFMADB	V1, V3, V4, V3
   471		FMOVD	24(R9), F4
   472		WFMADB	V1, V2, V4, V2
   473		FMOVD	16(R9), F4
   474		WFMADB	V1, V3, V4, V3
   475		FMOVD	8(R9), F4
   476		WFMADB	V1, V2, V4, V1
   477		FMUL	F0, F0
   478		WFMADB	V3, V6, V1, V3
   479		FMOVD	656(R9), F5
   480		FMOVD	664(R9), F4
   481		FMOVD	0(R9), F7
   482		WFMADB	V0, V5, V4, V5
   483		FMADD	F6, F3, F7
   484		BR	L11
   485	L14:
   486		FMOVD	72(R9), F6
   487		FSUB	F1, F6
   488		MOVH	$0x403A, R3
   489		FDIV	F1, F6
   490		MOVW	R1, R6
   491		MOVW	R3, R7
   492		CMPBEQ	R6, R7, L23
   493		MOVH	$0x0, R3
   494		MOVH	$0x0, R1
   495		BR	L17
   496	L37:
   497		WFCEDBS	V0, V0, V0
   498		BVS	L1
   499		MOVW	R2, R6
   500		CMPBLE	R6, $0, L18
   501		MOVH	$0x7FEF, R2
   502		MOVW	R1, R6
   503		MOVW	R2, R7
   504		CMPBGT	R6, R7, L24
   505	
   506		WORD	$0xA5400010	//iihh	%r4,16
   507		WORD	$0xB3C10024	//ldgr	%f2,%r4
   508		FMUL	F2, F2
   509		BR	L1
   510	L23:
   511		MOVH	$0x1000, R3
   512		MOVH	$0x1000, R1
   513		BR	L17
   514	L24:
   515		FMOVD	$0, F2
   516		BR	L1
   517	L18:
   518		MOVH	$0x7FEF, R2
   519		MOVW	R1, R6
   520		MOVW	R2, R7
   521		CMPBGT	R6, R7, L25
   522		WORD	$0xA5408010	//iihh	%r4,32784
   523		FMOVD	568(R9), F2
   524		WORD	$0xB3C10004	//ldgr	%f0,%r4
   525		FMADD	F2, F0, F2
   526		BR	L1
   527	L25:
   528		FMOVD	568(R9), F2
   529		BR	L1
   530	usego:
   531		BR	·erfc(SB)

View as plain text