...

Text file src/math/stubs_s390x.s

Documentation: math

     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
     7TEXT ·archLog10(SB), NOSPLIT, $0
     8	MOVD ·log10vectorfacility+0x00(SB), R1
     9	BR   (R1)
    10
    11TEXT ·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
    19vectorimpl:
    20	MOVD $·log10vectorfacility+0x00(SB), R1
    21	MOVD $·log10Asm(SB), R2
    22	MOVD R2, 0(R1)
    23	BR   ·log10Asm(SB)
    24
    25GLOBL ·log10vectorfacility+0x00(SB), NOPTR, $8
    26DATA ·log10vectorfacility+0x00(SB)/8, $·log10TrampolineSetup(SB)
    27
    28TEXT ·archCos(SB), NOSPLIT, $0
    29	MOVD ·cosvectorfacility+0x00(SB), R1
    30	BR   (R1)
    31
    32TEXT ·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
    40vectorimpl:
    41	MOVD $·cosvectorfacility+0x00(SB), R1
    42	MOVD $·cosAsm(SB), R2
    43	MOVD R2, 0(R1)
    44	BR   ·cosAsm(SB)
    45
    46GLOBL ·cosvectorfacility+0x00(SB), NOPTR, $8
    47DATA ·cosvectorfacility+0x00(SB)/8, $·cosTrampolineSetup(SB)
    48
    49TEXT ·archCosh(SB), NOSPLIT, $0
    50	MOVD ·coshvectorfacility+0x00(SB), R1
    51	BR   (R1)
    52
    53TEXT ·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
    61vectorimpl:
    62	MOVD $·coshvectorfacility+0x00(SB), R1
    63	MOVD $·coshAsm(SB), R2
    64	MOVD R2, 0(R1)
    65	BR   ·coshAsm(SB)
    66
    67GLOBL ·coshvectorfacility+0x00(SB), NOPTR, $8
    68DATA ·coshvectorfacility+0x00(SB)/8, $·coshTrampolineSetup(SB)
    69
    70TEXT ·archSin(SB), NOSPLIT, $0
    71	MOVD ·sinvectorfacility+0x00(SB), R1
    72	BR   (R1)
    73
    74TEXT ·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
    82vectorimpl:
    83	MOVD $·sinvectorfacility+0x00(SB), R1
    84	MOVD $·sinAsm(SB), R2
    85	MOVD R2, 0(R1)
    86	BR   ·sinAsm(SB)
    87
    88GLOBL ·sinvectorfacility+0x00(SB), NOPTR, $8
    89DATA ·sinvectorfacility+0x00(SB)/8, $·sinTrampolineSetup(SB)
    90
    91TEXT ·archSinh(SB), NOSPLIT, $0
    92	MOVD ·sinhvectorfacility+0x00(SB), R1
    93	BR   (R1)
    94
    95TEXT ·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
   103vectorimpl:
   104	MOVD $·sinhvectorfacility+0x00(SB), R1
   105	MOVD $·sinhAsm(SB), R2
   106	MOVD R2, 0(R1)
   107	BR   ·sinhAsm(SB)
   108
   109GLOBL ·sinhvectorfacility+0x00(SB), NOPTR, $8
   110DATA ·sinhvectorfacility+0x00(SB)/8, $·sinhTrampolineSetup(SB)
   111
   112TEXT ·archTanh(SB), NOSPLIT, $0
   113	MOVD ·tanhvectorfacility+0x00(SB), R1
   114	BR   (R1)
   115
   116TEXT ·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
   124vectorimpl:
   125	MOVD $·tanhvectorfacility+0x00(SB), R1
   126	MOVD $·tanhAsm(SB), R2
   127	MOVD R2, 0(R1)
   128	BR   ·tanhAsm(SB)
   129
   130GLOBL ·tanhvectorfacility+0x00(SB), NOPTR, $8
   131DATA ·tanhvectorfacility+0x00(SB)/8, $·tanhTrampolineSetup(SB)
   132
   133TEXT ·archLog1p(SB), NOSPLIT, $0
   134	MOVD ·log1pvectorfacility+0x00(SB), R1
   135	BR   (R1)
   136
   137TEXT ·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
   145vectorimpl:
   146	MOVD $·log1pvectorfacility+0x00(SB), R1
   147	MOVD $·log1pAsm(SB), R2
   148	MOVD R2, 0(R1)
   149	BR   ·log1pAsm(SB)
   150
   151GLOBL ·log1pvectorfacility+0x00(SB), NOPTR, $8
   152DATA ·log1pvectorfacility+0x00(SB)/8, $·log1pTrampolineSetup(SB)
   153
   154TEXT ·archAtanh(SB), NOSPLIT, $0
   155	MOVD ·atanhvectorfacility+0x00(SB), R1
   156	BR   (R1)
   157
   158TEXT ·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
   166vectorimpl:
   167	MOVD $·atanhvectorfacility+0x00(SB), R1
   168	MOVD $·atanhAsm(SB), R2
   169	MOVD R2, 0(R1)
   170	BR   ·atanhAsm(SB)
   171
   172GLOBL ·atanhvectorfacility+0x00(SB), NOPTR, $8
   173DATA ·atanhvectorfacility+0x00(SB)/8, $·atanhTrampolineSetup(SB)
   174
   175TEXT ·archAcos(SB), NOSPLIT, $0
   176	MOVD ·acosvectorfacility+0x00(SB), R1
   177	BR   (R1)
   178
   179TEXT ·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
   187vectorimpl:
   188	MOVD $·acosvectorfacility+0x00(SB), R1
   189	MOVD $·acosAsm(SB), R2
   190	MOVD R2, 0(R1)
   191	BR   ·acosAsm(SB)
   192
   193GLOBL ·acosvectorfacility+0x00(SB), NOPTR, $8
   194DATA ·acosvectorfacility+0x00(SB)/8, $·acosTrampolineSetup(SB)
   195
   196TEXT ·archAsin(SB), NOSPLIT, $0
   197	MOVD ·asinvectorfacility+0x00(SB), R1
   198	BR   (R1)
   199
   200TEXT ·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
   208vectorimpl:
   209	MOVD $·asinvectorfacility+0x00(SB), R1
   210	MOVD $·asinAsm(SB), R2
   211	MOVD R2, 0(R1)
   212	BR   ·asinAsm(SB)
   213
   214GLOBL ·asinvectorfacility+0x00(SB), NOPTR, $8
   215DATA ·asinvectorfacility+0x00(SB)/8, $·asinTrampolineSetup(SB)
   216
   217TEXT ·archAsinh(SB), NOSPLIT, $0
   218	MOVD ·asinhvectorfacility+0x00(SB), R1
   219	BR   (R1)
   220
   221TEXT ·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
   229vectorimpl:
   230	MOVD $·asinhvectorfacility+0x00(SB), R1
   231	MOVD $·asinhAsm(SB), R2
   232	MOVD R2, 0(R1)
   233	BR   ·asinhAsm(SB)
   234
   235GLOBL ·asinhvectorfacility+0x00(SB), NOPTR, $8
   236DATA ·asinhvectorfacility+0x00(SB)/8, $·asinhTrampolineSetup(SB)
   237
   238TEXT ·archAcosh(SB), NOSPLIT, $0
   239	MOVD ·acoshvectorfacility+0x00(SB), R1
   240	BR   (R1)
   241
   242TEXT ·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
   250vectorimpl:
   251	MOVD $·acoshvectorfacility+0x00(SB), R1
   252	MOVD $·acoshAsm(SB), R2
   253	MOVD R2, 0(R1)
   254	BR   ·acoshAsm(SB)
   255
   256GLOBL ·acoshvectorfacility+0x00(SB), NOPTR, $8
   257DATA ·acoshvectorfacility+0x00(SB)/8, $·acoshTrampolineSetup(SB)
   258
   259TEXT ·archErf(SB), NOSPLIT, $0
   260	MOVD ·erfvectorfacility+0x00(SB), R1
   261	BR   (R1)
   262
   263TEXT ·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
   271vectorimpl:
   272	MOVD $·erfvectorfacility+0x00(SB), R1
   273	MOVD $·erfAsm(SB), R2
   274	MOVD R2, 0(R1)
   275	BR   ·erfAsm(SB)
   276
   277GLOBL ·erfvectorfacility+0x00(SB), NOPTR, $8
   278DATA ·erfvectorfacility+0x00(SB)/8, $·erfTrampolineSetup(SB)
   279
   280TEXT ·archErfc(SB), NOSPLIT, $0
   281	MOVD ·erfcvectorfacility+0x00(SB), R1
   282	BR   (R1)
   283
   284TEXT ·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
   292vectorimpl:
   293	MOVD $·erfcvectorfacility+0x00(SB), R1
   294	MOVD $·erfcAsm(SB), R2
   295	MOVD R2, 0(R1)
   296	BR   ·erfcAsm(SB)
   297
   298GLOBL ·erfcvectorfacility+0x00(SB), NOPTR, $8
   299DATA ·erfcvectorfacility+0x00(SB)/8, $·erfcTrampolineSetup(SB)
   300
   301TEXT ·archAtan(SB), NOSPLIT, $0
   302	MOVD ·atanvectorfacility+0x00(SB), R1
   303	BR   (R1)
   304
   305TEXT ·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
   313vectorimpl:
   314	MOVD $·atanvectorfacility+0x00(SB), R1
   315	MOVD $·atanAsm(SB), R2
   316	MOVD R2, 0(R1)
   317	BR   ·atanAsm(SB)
   318
   319GLOBL ·atanvectorfacility+0x00(SB), NOPTR, $8
   320DATA ·atanvectorfacility+0x00(SB)/8, $·atanTrampolineSetup(SB)
   321
   322TEXT ·archAtan2(SB), NOSPLIT, $0
   323	MOVD ·atan2vectorfacility+0x00(SB), R1
   324	BR   (R1)
   325
   326TEXT ·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
   334vectorimpl:
   335	MOVD $·atan2vectorfacility+0x00(SB), R1
   336	MOVD $·atan2Asm(SB), R2
   337	MOVD R2, 0(R1)
   338	BR   ·atan2Asm(SB)
   339
   340GLOBL ·atan2vectorfacility+0x00(SB), NOPTR, $8
   341DATA ·atan2vectorfacility+0x00(SB)/8, $·atan2TrampolineSetup(SB)
   342
   343TEXT ·archCbrt(SB), NOSPLIT, $0
   344	MOVD ·cbrtvectorfacility+0x00(SB), R1
   345	BR   (R1)
   346
   347TEXT ·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
   355vectorimpl:
   356	MOVD $·cbrtvectorfacility+0x00(SB), R1
   357	MOVD $·cbrtAsm(SB), R2
   358	MOVD R2, 0(R1)
   359	BR   ·cbrtAsm(SB)
   360
   361GLOBL ·cbrtvectorfacility+0x00(SB), NOPTR, $8
   362DATA ·cbrtvectorfacility+0x00(SB)/8, $·cbrtTrampolineSetup(SB)
   363
   364TEXT ·archLog(SB), NOSPLIT, $0
   365	MOVD ·logvectorfacility+0x00(SB), R1
   366	BR   (R1)
   367
   368TEXT ·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
   376vectorimpl:
   377	MOVD $·logvectorfacility+0x00(SB), R1
   378	MOVD $·logAsm(SB), R2
   379	MOVD R2, 0(R1)
   380	BR   ·logAsm(SB)
   381
   382GLOBL ·logvectorfacility+0x00(SB), NOPTR, $8
   383DATA ·logvectorfacility+0x00(SB)/8, $·logTrampolineSetup(SB)
   384
   385TEXT ·archTan(SB), NOSPLIT, $0
   386	MOVD ·tanvectorfacility+0x00(SB), R1
   387	BR   (R1)
   388
   389TEXT ·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
   397vectorimpl:
   398	MOVD $·tanvectorfacility+0x00(SB), R1
   399	MOVD $·tanAsm(SB), R2
   400	MOVD R2, 0(R1)
   401	BR   ·tanAsm(SB)
   402
   403GLOBL ·tanvectorfacility+0x00(SB), NOPTR, $8
   404DATA ·tanvectorfacility+0x00(SB)/8, $·tanTrampolineSetup(SB)
   405
   406TEXT ·archExp(SB), NOSPLIT, $0
   407	MOVD ·expvectorfacility+0x00(SB), R1
   408	BR   (R1)
   409
   410TEXT ·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
   418vectorimpl:
   419	MOVD $·expvectorfacility+0x00(SB), R1
   420	MOVD $·expAsm(SB), R2
   421	MOVD R2, 0(R1)
   422	BR   ·expAsm(SB)
   423
   424GLOBL ·expvectorfacility+0x00(SB), NOPTR, $8
   425DATA ·expvectorfacility+0x00(SB)/8, $·expTrampolineSetup(SB)
   426
   427TEXT ·archExpm1(SB), NOSPLIT, $0
   428	MOVD ·expm1vectorfacility+0x00(SB), R1
   429	BR   (R1)
   430
   431TEXT ·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
   439vectorimpl:
   440	MOVD $·expm1vectorfacility+0x00(SB), R1
   441	MOVD $·expm1Asm(SB), R2
   442	MOVD R2, 0(R1)
   443	BR   ·expm1Asm(SB)
   444
   445GLOBL ·expm1vectorfacility+0x00(SB), NOPTR, $8
   446DATA ·expm1vectorfacility+0x00(SB)/8, $·expm1TrampolineSetup(SB)
   447
   448TEXT ·archPow(SB), NOSPLIT, $0
   449	MOVD ·powvectorfacility+0x00(SB), R1
   450	BR   (R1)
   451
   452TEXT ·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
   460vectorimpl:
   461	MOVD $·powvectorfacility+0x00(SB), R1
   462	MOVD $·powAsm(SB), R2
   463	MOVD R2, 0(R1)
   464	BR   ·powAsm(SB)
   465
   466GLOBL ·powvectorfacility+0x00(SB), NOPTR, $8
   467DATA ·powvectorfacility+0x00(SB)/8, $·powTrampolineSetup(SB)
   468

View as plain text