github.com/MangoDowner/go-gm@v0.0.0-20180818020936-8baa2bd4408c/src/math/erfc_s390x.s (about) 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