...
Run Format

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	
     7	TEXT ·Exp2(SB),NOSPLIT,$0
     8		BR ·exp2(SB)
     9	
    10	TEXT ·Frexp(SB),NOSPLIT,$0
    11		BR ·frexp(SB)
    12	
    13	TEXT ·Hypot(SB),NOSPLIT,$0
    14		BR ·hypot(SB)
    15	
    16	TEXT ·Ldexp(SB),NOSPLIT,$0
    17		BR ·ldexp(SB)
    18	
    19	TEXT ·Log2(SB),NOSPLIT,$0
    20		BR ·log2(SB)
    21	
    22	TEXT ·Modf(SB),NOSPLIT,$0
    23		BR ·modf(SB)
    24	
    25	TEXT ·Mod(SB),NOSPLIT,$0
    26		BR ·mod(SB)
    27	
    28	TEXT ·Remainder(SB),NOSPLIT,$0
    29		BR ·remainder(SB)
    30	
    31	//if go assembly use vector instruction
    32	TEXT ·hasVectorFacility(SB),NOSPLIT,$24-1
    33		MOVD    $x-24(SP), R1
    34		XC      $24, 0(R1), 0(R1) // clear the storage
    35		MOVD    $2, R0            // R0 is the number of double words stored -1
    36		WORD    $0xB2B01000       // STFLE 0(R1)
    37		XOR     R0, R0            // reset the value of R0
    38		MOVBZ   z-8(SP), R1
    39		AND     $0x40, R1
    40		BEQ     novector
    41	vectorinstalled:
    42		// check if the vector instruction has been enabled
    43		VLEIB   $0, $0xF, V16
    44		VLGVB   $0, V16, R1
    45		CMPBNE  R1, $0xF, novector
    46		MOVB    $1, ret+0(FP) // have vx
    47		RET
    48	novector:
    49		MOVB    $0, ret+0(FP) // no vx
    50		RET
    51	
    52	TEXT ·Log10(SB),NOSPLIT,$0
    53		MOVD    ·log10vectorfacility+0x00(SB),R1
    54		BR      (R1)
    55	
    56	TEXT ·log10TrampolineSetup(SB),NOSPLIT, $0
    57		MOVB    ·hasVX(SB), R1
    58		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
    59		MOVD    $·log10vectorfacility+0x00(SB), R1
    60		MOVD    $·log10(SB), R2
    61		MOVD    R2, 0(R1)
    62		BR      ·log10(SB)
    63	vectorimpl:
    64		MOVD    $·log10vectorfacility+0x00(SB), R1
    65		MOVD    $·log10Asm(SB), R2
    66		MOVD    R2, 0(R1)
    67		BR      ·log10Asm(SB)
    68	
    69	GLOBL ·log10vectorfacility+0x00(SB), NOPTR, $8
    70	DATA ·log10vectorfacility+0x00(SB)/8, $·log10TrampolineSetup(SB)
    71	
    72	
    73	TEXT ·Cos(SB),NOSPLIT,$0
    74		MOVD    ·cosvectorfacility+0x00(SB),R1
    75		BR      (R1)
    76	
    77	TEXT ·cosTrampolineSetup(SB),NOSPLIT, $0
    78		MOVB    ·hasVX(SB), R1
    79		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
    80		MOVD    $·cosvectorfacility+0x00(SB), R1
    81		MOVD    $·cos(SB), R2
    82		MOVD    R2, 0(R1)
    83		BR      ·cos(SB)
    84	vectorimpl:
    85		MOVD    $·cosvectorfacility+0x00(SB), R1
    86		MOVD    $·cosAsm(SB), R2
    87		MOVD    R2, 0(R1)
    88		BR      ·cosAsm(SB)
    89	
    90	GLOBL ·cosvectorfacility+0x00(SB), NOPTR, $8
    91	DATA ·cosvectorfacility+0x00(SB)/8, $·cosTrampolineSetup(SB)
    92	
    93	
    94	TEXT ·Cosh(SB),NOSPLIT,$0
    95		MOVD    ·coshvectorfacility+0x00(SB),R1
    96		BR      (R1)
    97	
    98	TEXT ·coshTrampolineSetup(SB),NOSPLIT, $0
    99		MOVB    ·hasVX(SB), R1
   100		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   101		MOVD    $·coshvectorfacility+0x00(SB), R1
   102		MOVD    $·cosh(SB), R2
   103		MOVD    R2, 0(R1)
   104		BR      ·cosh(SB)
   105	vectorimpl:
   106		MOVD    $·coshvectorfacility+0x00(SB), R1
   107		MOVD    $·coshAsm(SB), R2
   108		MOVD    R2, 0(R1)
   109		BR      ·coshAsm(SB)
   110	
   111	GLOBL ·coshvectorfacility+0x00(SB), NOPTR, $8
   112	DATA ·coshvectorfacility+0x00(SB)/8, $·coshTrampolineSetup(SB)
   113	
   114	
   115	TEXT ·Sin(SB),NOSPLIT,$0
   116		MOVD    ·sinvectorfacility+0x00(SB),R1
   117		BR      (R1)
   118	
   119	TEXT ·sinTrampolineSetup(SB),NOSPLIT, $0
   120		MOVB    ·hasVX(SB), R1
   121		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   122		MOVD    $·sinvectorfacility+0x00(SB), R1
   123		MOVD    $·sin(SB), R2
   124		MOVD    R2, 0(R1)
   125		BR      ·sin(SB)
   126	vectorimpl:
   127		MOVD    $·sinvectorfacility+0x00(SB), R1
   128		MOVD    $·sinAsm(SB), R2
   129		MOVD    R2, 0(R1)
   130		BR      ·sinAsm(SB)
   131	
   132	GLOBL ·sinvectorfacility+0x00(SB), NOPTR, $8
   133	DATA ·sinvectorfacility+0x00(SB)/8, $·sinTrampolineSetup(SB)
   134	
   135	
   136	TEXT ·Sinh(SB),NOSPLIT,$0
   137		MOVD    ·sinhvectorfacility+0x00(SB),R1
   138		BR      (R1)
   139	
   140	TEXT ·sinhTrampolineSetup(SB),NOSPLIT, $0
   141		MOVB    ·hasVX(SB), R1
   142		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   143		MOVD    $·sinhvectorfacility+0x00(SB), R1
   144		MOVD    $·sinh(SB), R2
   145		MOVD    R2, 0(R1)
   146		BR      ·sinh(SB)
   147	vectorimpl:
   148		MOVD    $·sinhvectorfacility+0x00(SB), R1
   149		MOVD    $·sinhAsm(SB), R2
   150		MOVD    R2, 0(R1)
   151		BR      ·sinhAsm(SB)
   152	
   153	GLOBL ·sinhvectorfacility+0x00(SB), NOPTR, $8
   154	DATA ·sinhvectorfacility+0x00(SB)/8, $·sinhTrampolineSetup(SB)
   155	
   156	
   157	TEXT ·Tanh(SB),NOSPLIT,$0
   158		MOVD    ·tanhvectorfacility+0x00(SB),R1
   159		BR      (R1)
   160	
   161	TEXT ·tanhTrampolineSetup(SB),NOSPLIT, $0
   162		MOVB    ·hasVX(SB), R1
   163		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   164		MOVD    $·tanhvectorfacility+0x00(SB), R1
   165		MOVD    $·tanh(SB), R2
   166		MOVD    R2, 0(R1)
   167		BR      ·tanh(SB)
   168	vectorimpl:
   169		MOVD    $·tanhvectorfacility+0x00(SB), R1
   170		MOVD    $·tanhAsm(SB), R2
   171		MOVD    R2, 0(R1)
   172		BR      ·tanhAsm(SB)
   173	
   174	GLOBL ·tanhvectorfacility+0x00(SB), NOPTR, $8
   175	DATA ·tanhvectorfacility+0x00(SB)/8, $·tanhTrampolineSetup(SB)
   176	
   177	
   178	TEXT ·Log1p(SB),NOSPLIT,$0
   179		MOVD    ·log1pvectorfacility+0x00(SB),R1
   180		BR      (R1)
   181	
   182	TEXT ·log1pTrampolineSetup(SB),NOSPLIT, $0
   183		MOVB    ·hasVX(SB), R1
   184		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   185		MOVD    $·log1pvectorfacility+0x00(SB), R1
   186		MOVD    $·log1p(SB), R2
   187		MOVD    R2, 0(R1)
   188		BR      ·log1p(SB)
   189	vectorimpl:
   190		MOVD    $·log1pvectorfacility+0x00(SB), R1
   191		MOVD    $·log1pAsm(SB), R2
   192		MOVD    R2, 0(R1)
   193		BR      ·log1pAsm(SB)
   194	
   195	GLOBL ·log1pvectorfacility+0x00(SB), NOPTR, $8
   196	DATA ·log1pvectorfacility+0x00(SB)/8, $·log1pTrampolineSetup(SB)
   197	
   198	
   199	TEXT ·Atanh(SB),NOSPLIT,$0
   200		MOVD    ·atanhvectorfacility+0x00(SB),R1
   201		BR      (R1)
   202	
   203	TEXT ·atanhTrampolineSetup(SB),NOSPLIT, $0
   204		MOVB    ·hasVX(SB), R1
   205		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   206		MOVD    $·atanhvectorfacility+0x00(SB), R1
   207		MOVD    $·atanh(SB), R2
   208		MOVD    R2, 0(R1)
   209		BR      ·atanh(SB)
   210	vectorimpl:
   211		MOVD    $·atanhvectorfacility+0x00(SB), R1
   212		MOVD    $·atanhAsm(SB), R2
   213		MOVD    R2, 0(R1)
   214		BR      ·atanhAsm(SB)
   215	
   216	GLOBL ·atanhvectorfacility+0x00(SB), NOPTR, $8
   217	DATA ·atanhvectorfacility+0x00(SB)/8, $·atanhTrampolineSetup(SB)
   218	
   219	
   220	TEXT ·Acos(SB),NOSPLIT,$0
   221		MOVD    ·acosvectorfacility+0x00(SB),R1
   222		BR      (R1)
   223	
   224	TEXT ·acosTrampolineSetup(SB),NOSPLIT, $0
   225		MOVB    ·hasVX(SB), R1
   226		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   227		MOVD    $·acosvectorfacility+0x00(SB), R1
   228		MOVD    $·acos(SB), R2
   229		MOVD    R2, 0(R1)
   230		BR      ·acos(SB)
   231	vectorimpl:
   232		MOVD    $·acosvectorfacility+0x00(SB), R1
   233		MOVD    $·acosAsm(SB), R2
   234		MOVD    R2, 0(R1)
   235		BR      ·acosAsm(SB)
   236	
   237	GLOBL ·acosvectorfacility+0x00(SB), NOPTR, $8
   238	DATA ·acosvectorfacility+0x00(SB)/8, $·acosTrampolineSetup(SB)
   239	
   240	
   241	TEXT ·Asin(SB),NOSPLIT,$0
   242		MOVD    ·asinvectorfacility+0x00(SB),R1
   243		BR      (R1)
   244	
   245	TEXT ·asinTrampolineSetup(SB),NOSPLIT, $0
   246		MOVB    ·hasVX(SB), R1
   247		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   248		MOVD    $·asinvectorfacility+0x00(SB), R1
   249		MOVD    $·asin(SB), R2
   250		MOVD    R2, 0(R1)
   251		BR      ·asin(SB)
   252	vectorimpl:
   253		MOVD    $·asinvectorfacility+0x00(SB), R1
   254		MOVD    $·asinAsm(SB), R2
   255		MOVD    R2, 0(R1)
   256		BR      ·asinAsm(SB)
   257	
   258	GLOBL ·asinvectorfacility+0x00(SB), NOPTR, $8
   259	DATA ·asinvectorfacility+0x00(SB)/8, $·asinTrampolineSetup(SB)
   260	
   261	
   262	TEXT ·Asinh(SB),NOSPLIT,$0
   263		MOVD    ·asinhvectorfacility+0x00(SB),R1
   264		BR      (R1)
   265	
   266	TEXT ·asinhTrampolineSetup(SB),NOSPLIT, $0
   267		MOVB    ·hasVX(SB), R1
   268		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   269		MOVD    $·asinhvectorfacility+0x00(SB), R1
   270		MOVD    $·asinh(SB), R2
   271		MOVD    R2, 0(R1)
   272		BR      ·asinh(SB)
   273	vectorimpl:
   274		MOVD    $·asinhvectorfacility+0x00(SB), R1
   275		MOVD    $·asinhAsm(SB), R2
   276		MOVD    R2, 0(R1)
   277		BR      ·asinhAsm(SB)
   278	
   279	GLOBL ·asinhvectorfacility+0x00(SB), NOPTR, $8
   280	DATA ·asinhvectorfacility+0x00(SB)/8, $·asinhTrampolineSetup(SB)
   281	
   282	
   283	TEXT ·Acosh(SB),NOSPLIT,$0
   284		MOVD    ·acoshvectorfacility+0x00(SB),R1
   285		BR      (R1)
   286	
   287	TEXT ·acoshTrampolineSetup(SB),NOSPLIT, $0
   288		MOVB    ·hasVX(SB), R1
   289		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   290		MOVD    $·acoshvectorfacility+0x00(SB), R1
   291		MOVD    $·acosh(SB), R2
   292		MOVD    R2, 0(R1)
   293		BR      ·acosh(SB)
   294	vectorimpl:
   295		MOVD    $·acoshvectorfacility+0x00(SB), R1
   296		MOVD    $·acoshAsm(SB), R2
   297		MOVD    R2, 0(R1)
   298		BR      ·acoshAsm(SB)
   299	
   300	GLOBL ·acoshvectorfacility+0x00(SB), NOPTR, $8
   301	DATA ·acoshvectorfacility+0x00(SB)/8, $·acoshTrampolineSetup(SB)
   302	
   303	
   304	TEXT ·Erf(SB),NOSPLIT,$0
   305		MOVD    ·erfvectorfacility+0x00(SB),R1
   306		BR      (R1)
   307	
   308	TEXT ·erfTrampolineSetup(SB),NOSPLIT, $0
   309		MOVB    ·hasVX(SB), R1
   310		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   311		MOVD    $·erfvectorfacility+0x00(SB), R1
   312		MOVD    $·erf(SB), R2
   313		MOVD    R2, 0(R1)
   314		BR      ·erf(SB)
   315	vectorimpl:
   316		MOVD    $·erfvectorfacility+0x00(SB), R1
   317		MOVD    $·erfAsm(SB), R2
   318		MOVD    R2, 0(R1)
   319		BR      ·erfAsm(SB)
   320	
   321	GLOBL ·erfvectorfacility+0x00(SB), NOPTR, $8
   322	DATA ·erfvectorfacility+0x00(SB)/8, $·erfTrampolineSetup(SB)
   323	
   324	
   325	TEXT ·Erfc(SB),NOSPLIT,$0
   326		MOVD    ·erfcvectorfacility+0x00(SB),R1
   327		BR      (R1)
   328	
   329	TEXT ·erfcTrampolineSetup(SB),NOSPLIT, $0
   330		MOVB    ·hasVX(SB), R1
   331		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   332		MOVD    $·erfcvectorfacility+0x00(SB), R1
   333		MOVD    $·erfc(SB), R2
   334		MOVD    R2, 0(R1)
   335		BR      ·erfc(SB)
   336	vectorimpl:
   337		MOVD    $·erfcvectorfacility+0x00(SB), R1
   338		MOVD    $·erfcAsm(SB), R2
   339		MOVD    R2, 0(R1)
   340		BR      ·erfcAsm(SB)
   341	
   342	GLOBL ·erfcvectorfacility+0x00(SB), NOPTR, $8
   343	DATA ·erfcvectorfacility+0x00(SB)/8, $·erfcTrampolineSetup(SB)
   344	
   345	
   346	TEXT ·Atan(SB),NOSPLIT,$0
   347		MOVD    ·atanvectorfacility+0x00(SB),R1
   348		BR      (R1)
   349	
   350	TEXT ·atanTrampolineSetup(SB),NOSPLIT, $0
   351		MOVB    ·hasVX(SB), R1
   352		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   353		MOVD    $·atanvectorfacility+0x00(SB), R1
   354		MOVD    $·atan(SB), R2
   355		MOVD    R2, 0(R1)
   356		BR      ·atan(SB)
   357	vectorimpl:
   358		MOVD    $·atanvectorfacility+0x00(SB), R1
   359		MOVD    $·atanAsm(SB), R2
   360		MOVD    R2, 0(R1)
   361		BR      ·atanAsm(SB)
   362	
   363	GLOBL ·atanvectorfacility+0x00(SB), NOPTR, $8
   364	DATA ·atanvectorfacility+0x00(SB)/8, $·atanTrampolineSetup(SB)
   365	
   366	
   367	TEXT ·Atan2(SB),NOSPLIT,$0
   368		MOVD    ·atan2vectorfacility+0x00(SB),R1
   369		BR      (R1)
   370	
   371	TEXT ·atan2TrampolineSetup(SB),NOSPLIT, $0
   372		MOVB    ·hasVX(SB), R1
   373		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   374		MOVD    $·atan2vectorfacility+0x00(SB), R1
   375		MOVD    $·atan2(SB), R2
   376		MOVD    R2, 0(R1)
   377		BR      ·atan2(SB)
   378	vectorimpl:
   379		MOVD    $·atan2vectorfacility+0x00(SB), R1
   380		MOVD    $·atan2Asm(SB), R2
   381		MOVD    R2, 0(R1)
   382		BR      ·atan2Asm(SB)
   383	
   384	GLOBL ·atan2vectorfacility+0x00(SB), NOPTR, $8
   385	DATA ·atan2vectorfacility+0x00(SB)/8, $·atan2TrampolineSetup(SB)
   386	
   387	
   388	TEXT ·Cbrt(SB),NOSPLIT,$0
   389		MOVD    ·cbrtvectorfacility+0x00(SB),R1
   390		BR      (R1)
   391	
   392	TEXT ·cbrtTrampolineSetup(SB),NOSPLIT, $0
   393		MOVB    ·hasVX(SB), R1
   394		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   395		MOVD    $·cbrtvectorfacility+0x00(SB), R1
   396		MOVD    $·cbrt(SB), R2
   397		MOVD    R2, 0(R1)
   398		BR      ·cbrt(SB)
   399	vectorimpl:
   400		MOVD    $·cbrtvectorfacility+0x00(SB), R1
   401		MOVD    $·cbrtAsm(SB), R2
   402		MOVD    R2, 0(R1)
   403		BR      ·cbrtAsm(SB)
   404	
   405	GLOBL ·cbrtvectorfacility+0x00(SB), NOPTR, $8
   406	DATA ·cbrtvectorfacility+0x00(SB)/8, $·cbrtTrampolineSetup(SB)
   407	
   408	
   409	TEXT ·Log(SB),NOSPLIT,$0
   410		MOVD    ·logvectorfacility+0x00(SB),R1
   411		BR      (R1)
   412	
   413	TEXT ·logTrampolineSetup(SB),NOSPLIT, $0
   414		MOVB    ·hasVX(SB), R1
   415		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   416		MOVD    $·logvectorfacility+0x00(SB), R1
   417		MOVD    $·log(SB), R2
   418		MOVD    R2, 0(R1)
   419		BR      ·log(SB)
   420	vectorimpl:
   421		MOVD    $·logvectorfacility+0x00(SB), R1
   422		MOVD    $·logAsm(SB), R2
   423		MOVD    R2, 0(R1)
   424		BR      ·logAsm(SB)
   425	
   426	GLOBL ·logvectorfacility+0x00(SB), NOPTR, $8
   427	DATA ·logvectorfacility+0x00(SB)/8, $·logTrampolineSetup(SB)
   428	
   429	
   430	TEXT ·Tan(SB),NOSPLIT,$0
   431		MOVD    ·tanvectorfacility+0x00(SB),R1
   432		BR      (R1)
   433	
   434	TEXT ·tanTrampolineSetup(SB),NOSPLIT, $0
   435		MOVB    ·hasVX(SB), R1
   436		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   437		MOVD    $·tanvectorfacility+0x00(SB), R1
   438		MOVD    $·tan(SB), R2
   439		MOVD    R2, 0(R1)
   440		BR      ·tan(SB)
   441	vectorimpl:
   442		MOVD    $·tanvectorfacility+0x00(SB), R1
   443		MOVD    $·tanAsm(SB), R2
   444		MOVD    R2, 0(R1)
   445		BR      ·tanAsm(SB)
   446	
   447	GLOBL ·tanvectorfacility+0x00(SB), NOPTR, $8
   448	DATA ·tanvectorfacility+0x00(SB)/8, $·tanTrampolineSetup(SB)
   449	
   450	TEXT ·Exp(SB),NOSPLIT,$0
   451		MOVD    ·expvectorfacility+0x00(SB),R1
   452		BR      (R1)
   453	
   454	TEXT ·expTrampolineSetup(SB),NOSPLIT, $0
   455		MOVB    ·hasVX(SB), R1
   456		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   457		MOVD    $·expvectorfacility+0x00(SB), R1
   458		MOVD    $·exp(SB), R2
   459		MOVD    R2, 0(R1)
   460		BR      ·exp(SB)
   461	vectorimpl:
   462		MOVD    $·expvectorfacility+0x00(SB), R1
   463		MOVD    $·expAsm(SB), R2
   464		MOVD    R2, 0(R1)
   465		BR      ·expAsm(SB)
   466	
   467	GLOBL ·expvectorfacility+0x00(SB), NOPTR, $8
   468	DATA ·expvectorfacility+0x00(SB)/8, $·expTrampolineSetup(SB)
   469	
   470	
   471	TEXT ·Expm1(SB),NOSPLIT,$0
   472		MOVD    ·expm1vectorfacility+0x00(SB),R1
   473		BR      (R1)
   474	
   475	TEXT ·expm1TrampolineSetup(SB),NOSPLIT, $0
   476		MOVB    ·hasVX(SB), R1
   477		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   478		MOVD    $·expm1vectorfacility+0x00(SB), R1
   479		MOVD    $·expm1(SB), R2
   480		MOVD    R2, 0(R1)
   481		BR      ·expm1(SB)
   482	vectorimpl:
   483		MOVD    $·expm1vectorfacility+0x00(SB), R1
   484		MOVD    $·expm1Asm(SB), R2
   485		MOVD    R2, 0(R1)
   486		BR      ·expm1Asm(SB)
   487	
   488	GLOBL ·expm1vectorfacility+0x00(SB), NOPTR, $8
   489	DATA ·expm1vectorfacility+0x00(SB)/8, $·expm1TrampolineSetup(SB)
   490	
   491	
   492	TEXT ·Pow(SB),NOSPLIT,$0
   493		MOVD    ·powvectorfacility+0x00(SB),R1
   494		BR      (R1)
   495	
   496	TEXT ·powTrampolineSetup(SB),NOSPLIT, $0
   497		MOVB    ·hasVX(SB), R1
   498		CMPBEQ  R1, $1, vectorimpl      // vectorfacility = 1, vector supported
   499		MOVD    $·powvectorfacility+0x00(SB), R1
   500		MOVD    $·pow(SB), R2
   501		MOVD    R2, 0(R1)
   502		BR      ·pow(SB)
   503	vectorimpl:
   504		MOVD    $·powvectorfacility+0x00(SB), R1
   505		MOVD    $·powAsm(SB), R2
   506		MOVD    R2, 0(R1)
   507		BR      ·powAsm(SB)
   508	
   509	GLOBL ·powvectorfacility+0x00(SB), NOPTR, $8
   510	DATA ·powvectorfacility+0x00(SB)/8, $·powTrampolineSetup(SB)
   511	
   512	

View as plain text