github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/math/stubs_s390x.s (about) 1 // Copyright 2016 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 TEXT ·archLog10(SB), NOSPLIT, $0 8 MOVD ·log10vectorfacility+0x00(SB), R1 9 BR (R1) 10 11 TEXT ·log10TrampolineSetup(SB), NOSPLIT, $0 12 MOVB ·hasVX(SB), R1 13 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 14 MOVD $·log10vectorfacility+0x00(SB), R1 15 MOVD $·log10(SB), R2 16 MOVD R2, 0(R1) 17 BR ·log10(SB) 18 19 vectorimpl: 20 MOVD $·log10vectorfacility+0x00(SB), R1 21 MOVD $·log10Asm(SB), R2 22 MOVD R2, 0(R1) 23 BR ·log10Asm(SB) 24 25 GLOBL ·log10vectorfacility+0x00(SB), NOPTR, $8 26 DATA ·log10vectorfacility+0x00(SB)/8, $·log10TrampolineSetup(SB) 27 28 TEXT ·archCos(SB), NOSPLIT, $0 29 MOVD ·cosvectorfacility+0x00(SB), R1 30 BR (R1) 31 32 TEXT ·cosTrampolineSetup(SB), NOSPLIT, $0 33 MOVB ·hasVX(SB), R1 34 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 35 MOVD $·cosvectorfacility+0x00(SB), R1 36 MOVD $·cos(SB), R2 37 MOVD R2, 0(R1) 38 BR ·cos(SB) 39 40 vectorimpl: 41 MOVD $·cosvectorfacility+0x00(SB), R1 42 MOVD $·cosAsm(SB), R2 43 MOVD R2, 0(R1) 44 BR ·cosAsm(SB) 45 46 GLOBL ·cosvectorfacility+0x00(SB), NOPTR, $8 47 DATA ·cosvectorfacility+0x00(SB)/8, $·cosTrampolineSetup(SB) 48 49 TEXT ·archCosh(SB), NOSPLIT, $0 50 MOVD ·coshvectorfacility+0x00(SB), R1 51 BR (R1) 52 53 TEXT ·coshTrampolineSetup(SB), NOSPLIT, $0 54 MOVB ·hasVX(SB), R1 55 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 56 MOVD $·coshvectorfacility+0x00(SB), R1 57 MOVD $·cosh(SB), R2 58 MOVD R2, 0(R1) 59 BR ·cosh(SB) 60 61 vectorimpl: 62 MOVD $·coshvectorfacility+0x00(SB), R1 63 MOVD $·coshAsm(SB), R2 64 MOVD R2, 0(R1) 65 BR ·coshAsm(SB) 66 67 GLOBL ·coshvectorfacility+0x00(SB), NOPTR, $8 68 DATA ·coshvectorfacility+0x00(SB)/8, $·coshTrampolineSetup(SB) 69 70 TEXT ·archSin(SB), NOSPLIT, $0 71 MOVD ·sinvectorfacility+0x00(SB), R1 72 BR (R1) 73 74 TEXT ·sinTrampolineSetup(SB), NOSPLIT, $0 75 MOVB ·hasVX(SB), R1 76 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 77 MOVD $·sinvectorfacility+0x00(SB), R1 78 MOVD $·sin(SB), R2 79 MOVD R2, 0(R1) 80 BR ·sin(SB) 81 82 vectorimpl: 83 MOVD $·sinvectorfacility+0x00(SB), R1 84 MOVD $·sinAsm(SB), R2 85 MOVD R2, 0(R1) 86 BR ·sinAsm(SB) 87 88 GLOBL ·sinvectorfacility+0x00(SB), NOPTR, $8 89 DATA ·sinvectorfacility+0x00(SB)/8, $·sinTrampolineSetup(SB) 90 91 TEXT ·archSinh(SB), NOSPLIT, $0 92 MOVD ·sinhvectorfacility+0x00(SB), R1 93 BR (R1) 94 95 TEXT ·sinhTrampolineSetup(SB), NOSPLIT, $0 96 MOVB ·hasVX(SB), R1 97 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 98 MOVD $·sinhvectorfacility+0x00(SB), R1 99 MOVD $·sinh(SB), R2 100 MOVD R2, 0(R1) 101 BR ·sinh(SB) 102 103 vectorimpl: 104 MOVD $·sinhvectorfacility+0x00(SB), R1 105 MOVD $·sinhAsm(SB), R2 106 MOVD R2, 0(R1) 107 BR ·sinhAsm(SB) 108 109 GLOBL ·sinhvectorfacility+0x00(SB), NOPTR, $8 110 DATA ·sinhvectorfacility+0x00(SB)/8, $·sinhTrampolineSetup(SB) 111 112 TEXT ·archTanh(SB), NOSPLIT, $0 113 MOVD ·tanhvectorfacility+0x00(SB), R1 114 BR (R1) 115 116 TEXT ·tanhTrampolineSetup(SB), NOSPLIT, $0 117 MOVB ·hasVX(SB), R1 118 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 119 MOVD $·tanhvectorfacility+0x00(SB), R1 120 MOVD $·tanh(SB), R2 121 MOVD R2, 0(R1) 122 BR ·tanh(SB) 123 124 vectorimpl: 125 MOVD $·tanhvectorfacility+0x00(SB), R1 126 MOVD $·tanhAsm(SB), R2 127 MOVD R2, 0(R1) 128 BR ·tanhAsm(SB) 129 130 GLOBL ·tanhvectorfacility+0x00(SB), NOPTR, $8 131 DATA ·tanhvectorfacility+0x00(SB)/8, $·tanhTrampolineSetup(SB) 132 133 TEXT ·archLog1p(SB), NOSPLIT, $0 134 MOVD ·log1pvectorfacility+0x00(SB), R1 135 BR (R1) 136 137 TEXT ·log1pTrampolineSetup(SB), NOSPLIT, $0 138 MOVB ·hasVX(SB), R1 139 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 140 MOVD $·log1pvectorfacility+0x00(SB), R1 141 MOVD $·log1p(SB), R2 142 MOVD R2, 0(R1) 143 BR ·log1p(SB) 144 145 vectorimpl: 146 MOVD $·log1pvectorfacility+0x00(SB), R1 147 MOVD $·log1pAsm(SB), R2 148 MOVD R2, 0(R1) 149 BR ·log1pAsm(SB) 150 151 GLOBL ·log1pvectorfacility+0x00(SB), NOPTR, $8 152 DATA ·log1pvectorfacility+0x00(SB)/8, $·log1pTrampolineSetup(SB) 153 154 TEXT ·archAtanh(SB), NOSPLIT, $0 155 MOVD ·atanhvectorfacility+0x00(SB), R1 156 BR (R1) 157 158 TEXT ·atanhTrampolineSetup(SB), NOSPLIT, $0 159 MOVB ·hasVX(SB), R1 160 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 161 MOVD $·atanhvectorfacility+0x00(SB), R1 162 MOVD $·atanh(SB), R2 163 MOVD R2, 0(R1) 164 BR ·atanh(SB) 165 166 vectorimpl: 167 MOVD $·atanhvectorfacility+0x00(SB), R1 168 MOVD $·atanhAsm(SB), R2 169 MOVD R2, 0(R1) 170 BR ·atanhAsm(SB) 171 172 GLOBL ·atanhvectorfacility+0x00(SB), NOPTR, $8 173 DATA ·atanhvectorfacility+0x00(SB)/8, $·atanhTrampolineSetup(SB) 174 175 TEXT ·archAcos(SB), NOSPLIT, $0 176 MOVD ·acosvectorfacility+0x00(SB), R1 177 BR (R1) 178 179 TEXT ·acosTrampolineSetup(SB), NOSPLIT, $0 180 MOVB ·hasVX(SB), R1 181 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 182 MOVD $·acosvectorfacility+0x00(SB), R1 183 MOVD $·acos(SB), R2 184 MOVD R2, 0(R1) 185 BR ·acos(SB) 186 187 vectorimpl: 188 MOVD $·acosvectorfacility+0x00(SB), R1 189 MOVD $·acosAsm(SB), R2 190 MOVD R2, 0(R1) 191 BR ·acosAsm(SB) 192 193 GLOBL ·acosvectorfacility+0x00(SB), NOPTR, $8 194 DATA ·acosvectorfacility+0x00(SB)/8, $·acosTrampolineSetup(SB) 195 196 TEXT ·archAsin(SB), NOSPLIT, $0 197 MOVD ·asinvectorfacility+0x00(SB), R1 198 BR (R1) 199 200 TEXT ·asinTrampolineSetup(SB), NOSPLIT, $0 201 MOVB ·hasVX(SB), R1 202 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 203 MOVD $·asinvectorfacility+0x00(SB), R1 204 MOVD $·asin(SB), R2 205 MOVD R2, 0(R1) 206 BR ·asin(SB) 207 208 vectorimpl: 209 MOVD $·asinvectorfacility+0x00(SB), R1 210 MOVD $·asinAsm(SB), R2 211 MOVD R2, 0(R1) 212 BR ·asinAsm(SB) 213 214 GLOBL ·asinvectorfacility+0x00(SB), NOPTR, $8 215 DATA ·asinvectorfacility+0x00(SB)/8, $·asinTrampolineSetup(SB) 216 217 TEXT ·archAsinh(SB), NOSPLIT, $0 218 MOVD ·asinhvectorfacility+0x00(SB), R1 219 BR (R1) 220 221 TEXT ·asinhTrampolineSetup(SB), NOSPLIT, $0 222 MOVB ·hasVX(SB), R1 223 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 224 MOVD $·asinhvectorfacility+0x00(SB), R1 225 MOVD $·asinh(SB), R2 226 MOVD R2, 0(R1) 227 BR ·asinh(SB) 228 229 vectorimpl: 230 MOVD $·asinhvectorfacility+0x00(SB), R1 231 MOVD $·asinhAsm(SB), R2 232 MOVD R2, 0(R1) 233 BR ·asinhAsm(SB) 234 235 GLOBL ·asinhvectorfacility+0x00(SB), NOPTR, $8 236 DATA ·asinhvectorfacility+0x00(SB)/8, $·asinhTrampolineSetup(SB) 237 238 TEXT ·archAcosh(SB), NOSPLIT, $0 239 MOVD ·acoshvectorfacility+0x00(SB), R1 240 BR (R1) 241 242 TEXT ·acoshTrampolineSetup(SB), NOSPLIT, $0 243 MOVB ·hasVX(SB), R1 244 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 245 MOVD $·acoshvectorfacility+0x00(SB), R1 246 MOVD $·acosh(SB), R2 247 MOVD R2, 0(R1) 248 BR ·acosh(SB) 249 250 vectorimpl: 251 MOVD $·acoshvectorfacility+0x00(SB), R1 252 MOVD $·acoshAsm(SB), R2 253 MOVD R2, 0(R1) 254 BR ·acoshAsm(SB) 255 256 GLOBL ·acoshvectorfacility+0x00(SB), NOPTR, $8 257 DATA ·acoshvectorfacility+0x00(SB)/8, $·acoshTrampolineSetup(SB) 258 259 TEXT ·archErf(SB), NOSPLIT, $0 260 MOVD ·erfvectorfacility+0x00(SB), R1 261 BR (R1) 262 263 TEXT ·erfTrampolineSetup(SB), NOSPLIT, $0 264 MOVB ·hasVX(SB), R1 265 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 266 MOVD $·erfvectorfacility+0x00(SB), R1 267 MOVD $·erf(SB), R2 268 MOVD R2, 0(R1) 269 BR ·erf(SB) 270 271 vectorimpl: 272 MOVD $·erfvectorfacility+0x00(SB), R1 273 MOVD $·erfAsm(SB), R2 274 MOVD R2, 0(R1) 275 BR ·erfAsm(SB) 276 277 GLOBL ·erfvectorfacility+0x00(SB), NOPTR, $8 278 DATA ·erfvectorfacility+0x00(SB)/8, $·erfTrampolineSetup(SB) 279 280 TEXT ·archErfc(SB), NOSPLIT, $0 281 MOVD ·erfcvectorfacility+0x00(SB), R1 282 BR (R1) 283 284 TEXT ·erfcTrampolineSetup(SB), NOSPLIT, $0 285 MOVB ·hasVX(SB), R1 286 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 287 MOVD $·erfcvectorfacility+0x00(SB), R1 288 MOVD $·erfc(SB), R2 289 MOVD R2, 0(R1) 290 BR ·erfc(SB) 291 292 vectorimpl: 293 MOVD $·erfcvectorfacility+0x00(SB), R1 294 MOVD $·erfcAsm(SB), R2 295 MOVD R2, 0(R1) 296 BR ·erfcAsm(SB) 297 298 GLOBL ·erfcvectorfacility+0x00(SB), NOPTR, $8 299 DATA ·erfcvectorfacility+0x00(SB)/8, $·erfcTrampolineSetup(SB) 300 301 TEXT ·archAtan(SB), NOSPLIT, $0 302 MOVD ·atanvectorfacility+0x00(SB), R1 303 BR (R1) 304 305 TEXT ·atanTrampolineSetup(SB), NOSPLIT, $0 306 MOVB ·hasVX(SB), R1 307 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 308 MOVD $·atanvectorfacility+0x00(SB), R1 309 MOVD $·atan(SB), R2 310 MOVD R2, 0(R1) 311 BR ·atan(SB) 312 313 vectorimpl: 314 MOVD $·atanvectorfacility+0x00(SB), R1 315 MOVD $·atanAsm(SB), R2 316 MOVD R2, 0(R1) 317 BR ·atanAsm(SB) 318 319 GLOBL ·atanvectorfacility+0x00(SB), NOPTR, $8 320 DATA ·atanvectorfacility+0x00(SB)/8, $·atanTrampolineSetup(SB) 321 322 TEXT ·archAtan2(SB), NOSPLIT, $0 323 MOVD ·atan2vectorfacility+0x00(SB), R1 324 BR (R1) 325 326 TEXT ·atan2TrampolineSetup(SB), NOSPLIT, $0 327 MOVB ·hasVX(SB), R1 328 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 329 MOVD $·atan2vectorfacility+0x00(SB), R1 330 MOVD $·atan2(SB), R2 331 MOVD R2, 0(R1) 332 BR ·atan2(SB) 333 334 vectorimpl: 335 MOVD $·atan2vectorfacility+0x00(SB), R1 336 MOVD $·atan2Asm(SB), R2 337 MOVD R2, 0(R1) 338 BR ·atan2Asm(SB) 339 340 GLOBL ·atan2vectorfacility+0x00(SB), NOPTR, $8 341 DATA ·atan2vectorfacility+0x00(SB)/8, $·atan2TrampolineSetup(SB) 342 343 TEXT ·archCbrt(SB), NOSPLIT, $0 344 MOVD ·cbrtvectorfacility+0x00(SB), R1 345 BR (R1) 346 347 TEXT ·cbrtTrampolineSetup(SB), NOSPLIT, $0 348 MOVB ·hasVX(SB), R1 349 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 350 MOVD $·cbrtvectorfacility+0x00(SB), R1 351 MOVD $·cbrt(SB), R2 352 MOVD R2, 0(R1) 353 BR ·cbrt(SB) 354 355 vectorimpl: 356 MOVD $·cbrtvectorfacility+0x00(SB), R1 357 MOVD $·cbrtAsm(SB), R2 358 MOVD R2, 0(R1) 359 BR ·cbrtAsm(SB) 360 361 GLOBL ·cbrtvectorfacility+0x00(SB), NOPTR, $8 362 DATA ·cbrtvectorfacility+0x00(SB)/8, $·cbrtTrampolineSetup(SB) 363 364 TEXT ·archLog(SB), NOSPLIT, $0 365 MOVD ·logvectorfacility+0x00(SB), R1 366 BR (R1) 367 368 TEXT ·logTrampolineSetup(SB), NOSPLIT, $0 369 MOVB ·hasVX(SB), R1 370 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 371 MOVD $·logvectorfacility+0x00(SB), R1 372 MOVD $·log(SB), R2 373 MOVD R2, 0(R1) 374 BR ·log(SB) 375 376 vectorimpl: 377 MOVD $·logvectorfacility+0x00(SB), R1 378 MOVD $·logAsm(SB), R2 379 MOVD R2, 0(R1) 380 BR ·logAsm(SB) 381 382 GLOBL ·logvectorfacility+0x00(SB), NOPTR, $8 383 DATA ·logvectorfacility+0x00(SB)/8, $·logTrampolineSetup(SB) 384 385 TEXT ·archTan(SB), NOSPLIT, $0 386 MOVD ·tanvectorfacility+0x00(SB), R1 387 BR (R1) 388 389 TEXT ·tanTrampolineSetup(SB), NOSPLIT, $0 390 MOVB ·hasVX(SB), R1 391 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 392 MOVD $·tanvectorfacility+0x00(SB), R1 393 MOVD $·tan(SB), R2 394 MOVD R2, 0(R1) 395 BR ·tan(SB) 396 397 vectorimpl: 398 MOVD $·tanvectorfacility+0x00(SB), R1 399 MOVD $·tanAsm(SB), R2 400 MOVD R2, 0(R1) 401 BR ·tanAsm(SB) 402 403 GLOBL ·tanvectorfacility+0x00(SB), NOPTR, $8 404 DATA ·tanvectorfacility+0x00(SB)/8, $·tanTrampolineSetup(SB) 405 406 TEXT ·archExp(SB), NOSPLIT, $0 407 MOVD ·expvectorfacility+0x00(SB), R1 408 BR (R1) 409 410 TEXT ·expTrampolineSetup(SB), NOSPLIT, $0 411 MOVB ·hasVX(SB), R1 412 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 413 MOVD $·expvectorfacility+0x00(SB), R1 414 MOVD $·exp(SB), R2 415 MOVD R2, 0(R1) 416 BR ·exp(SB) 417 418 vectorimpl: 419 MOVD $·expvectorfacility+0x00(SB), R1 420 MOVD $·expAsm(SB), R2 421 MOVD R2, 0(R1) 422 BR ·expAsm(SB) 423 424 GLOBL ·expvectorfacility+0x00(SB), NOPTR, $8 425 DATA ·expvectorfacility+0x00(SB)/8, $·expTrampolineSetup(SB) 426 427 TEXT ·archExpm1(SB), NOSPLIT, $0 428 MOVD ·expm1vectorfacility+0x00(SB), R1 429 BR (R1) 430 431 TEXT ·expm1TrampolineSetup(SB), NOSPLIT, $0 432 MOVB ·hasVX(SB), R1 433 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 434 MOVD $·expm1vectorfacility+0x00(SB), R1 435 MOVD $·expm1(SB), R2 436 MOVD R2, 0(R1) 437 BR ·expm1(SB) 438 439 vectorimpl: 440 MOVD $·expm1vectorfacility+0x00(SB), R1 441 MOVD $·expm1Asm(SB), R2 442 MOVD R2, 0(R1) 443 BR ·expm1Asm(SB) 444 445 GLOBL ·expm1vectorfacility+0x00(SB), NOPTR, $8 446 DATA ·expm1vectorfacility+0x00(SB)/8, $·expm1TrampolineSetup(SB) 447 448 TEXT ·archPow(SB), NOSPLIT, $0 449 MOVD ·powvectorfacility+0x00(SB), R1 450 BR (R1) 451 452 TEXT ·powTrampolineSetup(SB), NOSPLIT, $0 453 MOVB ·hasVX(SB), R1 454 CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported 455 MOVD $·powvectorfacility+0x00(SB), R1 456 MOVD $·pow(SB), R2 457 MOVD R2, 0(R1) 458 BR ·pow(SB) 459 460 vectorimpl: 461 MOVD $·powvectorfacility+0x00(SB), R1 462 MOVD $·powAsm(SB), R2 463 MOVD R2, 0(R1) 464 BR ·powAsm(SB) 465 466 GLOBL ·powvectorfacility+0x00(SB), NOPTR, $8 467 DATA ·powvectorfacility+0x00(SB)/8, $·powTrampolineSetup(SB) 468