github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/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 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 261 L21: 262 FMUL F7, F2 263 L1: 264 FMOVD F2, ret+8(FP) 265 RET 266 L3: 267 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 LDGR R4, F2 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 LDGR R4, F0 521 FMADD F2, F0, F2 522 BR L1 523 L25: 524 FMOVD 568(R9), F2 525 BR L1 526 usego: 527 BR ·erfc(SB)