github.com/hikaru7719/go@v0.0.0-20181025140707-c8b2ac68906a/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 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 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 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 LDGR R4, F2 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 LDGR R4, F2 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 LDGR R4, F0 525 FMADD F2, F0, F2 526 BR L1 527 L25: 528 FMOVD 568(R9), F2 529 BR L1 530 usego: 531 BR ·erfc(SB)