Commit f0fdbb1e authored by Michael Munday's avatar Michael Munday

math: consolidate assembly stub implementations

Where assembly functions are just jumps to the Go implementation
put them into a stubs_<arch>.s file. This reduces the number of
files considerably and makes it easier to see what is really
implemented in assembly.

I've also run the stubs files through asmfmt to format them in
a more consistent way.

Eventually we should replace these 'stub' assembly files with
a pure Go implementation now that we have mid-stack inlining
(see #31362).

Change-Id: If5b2022dcc23e1299f1b7ba79884f1b1263d0f7f
Reviewed-on: https://go-review.googlesource.com/c/go/+/173398
Run-TryBot: Michael Munday <mike.munday@ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 3d631662
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Asin(SB),NOSPLIT,$0
JMP ·asin(SB)
TEXT ·Acos(SB),NOSPLIT,$0
JMP ·acos(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "asin_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Asin(SB),NOSPLIT,$0
B ·asin(SB)
TEXT ·Acos(SB),NOSPLIT,$0
B ·acos(SB)
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build 386 amd64 amd64p32 arm
#include "textflag.h"
TEXT ·Acosh(SB),NOSPLIT,$0
JMP ·acosh(SB)
TEXT ·Asinh(SB),NOSPLIT,$0
JMP ·asinh(SB)
TEXT ·Atanh(SB),NOSPLIT,$0
JMP ·atanh(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Atan2(SB),NOSPLIT,$0
JMP ·atan2(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "atan2_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Atan2(SB),NOSPLIT,$0
B ·atan2(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Atan(SB),NOSPLIT,$0
JMP ·atan(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "atan_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Atan(SB),NOSPLIT,$0
B ·atan(SB)
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build 386 amd64 amd64p32 arm
#include "textflag.h"
TEXT ·Cbrt(SB),NOSPLIT,$0
JMP ·cbrt(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Max(SB),NOSPLIT,$0
JMP ·max(SB)
TEXT ·Min(SB),NOSPLIT,$0
JMP ·min(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Min(SB),NOSPLIT,$0
B ·min(SB)
TEXT ·Max(SB),NOSPLIT,$0
B ·max(SB)
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build 386 amd64 amd64p32 arm
#include "textflag.h"
TEXT ·Erf(SB),NOSPLIT,$0
JMP ·erf(SB)
TEXT ·Erfc(SB),NOSPLIT,$0
JMP ·erfc(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Exp2(SB),NOSPLIT,$0
JMP ·exp2(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "exp2_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Exp2(SB),NOSPLIT,$0
B ·exp2(SB)
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
// func Exp(x float64) float64
TEXT ·Exp(SB),NOSPLIT,$0
// Used to use 387 assembly (FLDL2E+F2XM1) here,
// but it was both slower and less accurate than the portable Go code.
JMP ·exp(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Exp(SB),NOSPLIT,$0
B ·exp(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Expm1(SB),NOSPLIT,$0
JMP ·expm1(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "expm1_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Expm1(SB),NOSPLIT,$0
B ·expm1(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Floor(SB),NOSPLIT,$0
B ·floor(SB)
TEXT ·Ceil(SB),NOSPLIT,$0
B ·ceil(SB)
TEXT ·Trunc(SB),NOSPLIT,$0
B ·trunc(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Frexp(SB),NOSPLIT,$0
JMP ·frexp(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "frexp_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Frexp(SB),NOSPLIT,$0
B ·frexp(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Hypot(SB),NOSPLIT,$0
B ·hypot(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Ldexp(SB),NOSPLIT,$0
JMP ·ldexp(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "ldexp_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Ldexp(SB),NOSPLIT,$0
B ·ldexp(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Log10(SB),NOSPLIT,$0
JMP ·log10(SB)
TEXT ·Log2(SB),NOSPLIT,$0
JMP ·log2(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "log10_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Log10(SB),NOSPLIT,$0
B ·log10(SB)
TEXT ·Log2(SB),NOSPLIT,$0
B ·log2(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Log1p(SB),NOSPLIT,$0
JMP ·log1p(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "log1p_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Log1p(SB),NOSPLIT,$0
B ·log1p(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Log(SB),NOSPLIT,$0
B ·log(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Mod(SB),NOSPLIT,$0
JMP ·mod(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "mod_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Mod(SB),NOSPLIT,$0
B ·mod(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Modf(SB),NOSPLIT,$0
JMP ·modf(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "modf_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Modf(SB),NOSPLIT,$0
B ·modf(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Remainder(SB),NOSPLIT,$0
JMP ·remainder(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "remainder_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Remainder(SB),NOSPLIT,$0
B ·remainder(SB)
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
// func Cos(x float64) float64
TEXT ·Cos(SB),NOSPLIT,$0
JMP ·cos(SB)
// func Sin(x float64) float64
TEXT ·Sin(SB),NOSPLIT,$0
JMP ·sin(SB)
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Sin(SB),NOSPLIT,$0
JMP ·sin(SB)
TEXT ·Cos(SB),NOSPLIT,$0
JMP ·cos(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "sin_amd64.s"
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Sin(SB),NOSPLIT,$0
B ·sin(SB)
TEXT ·Cos(SB),NOSPLIT,$0
B ·cos(SB)
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build 386 amd64 amd64p32 arm
#include "textflag.h"
TEXT ·Sinh(SB),NOSPLIT,$0
JMP ·sinh(SB)
TEXT ·Cosh(SB),NOSPLIT,$0
JMP ·cosh(SB)
TEXT ·Tanh(SB),NOSPLIT,$0
JMP ·tanh(SB)
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Acosh(SB), NOSPLIT, $0
JMP ·acosh(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
JMP ·asinh(SB)
TEXT ·Atanh(SB), NOSPLIT, $0
JMP ·atanh(SB)
TEXT ·Cbrt(SB), NOSPLIT, $0
JMP ·cbrt(SB)
TEXT ·Cos(SB), NOSPLIT, $0
JMP ·cos(SB)
TEXT ·Cosh(SB), NOSPLIT, $0
JMP ·cosh(SB)
TEXT ·Erf(SB), NOSPLIT, $0
JMP ·erf(SB)
TEXT ·Erfc(SB), NOSPLIT, $0
JMP ·erfc(SB)
TEXT ·Exp(SB), NOSPLIT, $0
JMP ·exp(SB)
TEXT ·Max(SB), NOSPLIT, $0
JMP ·max(SB)
TEXT ·Min(SB), NOSPLIT, $0
JMP ·min(SB)
TEXT ·Pow(SB), NOSPLIT, $0
JMP ·pow(SB)
TEXT ·Sin(SB), NOSPLIT, $0
JMP ·sin(SB)
TEXT ·Sinh(SB), NOSPLIT, $0
JMP ·sinh(SB)
TEXT ·Tan(SB), NOSPLIT, $0
JMP ·tan(SB)
TEXT ·Tanh(SB), NOSPLIT, $0
JMP ·tanh(SB)
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Acos(SB), NOSPLIT, $0
JMP ·acos(SB)
TEXT ·Acosh(SB), NOSPLIT, $0
JMP ·acosh(SB)
TEXT ·Asin(SB), NOSPLIT, $0
JMP ·asin(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
JMP ·asinh(SB)
TEXT ·Atan(SB), NOSPLIT, $0
JMP ·atan(SB)
TEXT ·Atan2(SB), NOSPLIT, $0
JMP ·atan2(SB)
TEXT ·Atanh(SB), NOSPLIT, $0
JMP ·atanh(SB)
TEXT ·Cbrt(SB), NOSPLIT, $0
JMP ·cbrt(SB)
TEXT ·Cos(SB), NOSPLIT, $0
JMP ·cos(SB)
TEXT ·Cosh(SB), NOSPLIT, $0
JMP ·cosh(SB)
TEXT ·Erf(SB), NOSPLIT, $0
JMP ·erf(SB)
TEXT ·Erfc(SB), NOSPLIT, $0
JMP ·erfc(SB)
TEXT ·Exp2(SB), NOSPLIT, $0
JMP ·exp2(SB)
TEXT ·Expm1(SB), NOSPLIT, $0
JMP ·expm1(SB)
TEXT ·Frexp(SB), NOSPLIT, $0
JMP ·frexp(SB)
TEXT ·Ldexp(SB), NOSPLIT, $0
JMP ·ldexp(SB)
TEXT ·Log10(SB), NOSPLIT, $0
JMP ·log10(SB)
TEXT ·Log2(SB), NOSPLIT, $0
JMP ·log2(SB)
TEXT ·Log1p(SB), NOSPLIT, $0
JMP ·log1p(SB)
TEXT ·Mod(SB), NOSPLIT, $0
JMP ·mod(SB)
TEXT ·Modf(SB), NOSPLIT, $0
JMP ·modf(SB)
TEXT ·Pow(SB), NOSPLIT, $0
JMP ·pow(SB)
TEXT ·Remainder(SB), NOSPLIT, $0
JMP ·remainder(SB)
TEXT ·Sin(SB), NOSPLIT, $0
JMP ·sin(SB)
TEXT ·Sinh(SB), NOSPLIT, $0
JMP ·sinh(SB)
TEXT ·Tan(SB), NOSPLIT, $0
JMP ·tan(SB)
TEXT ·Tanh(SB), NOSPLIT, $0
JMP ·tanh(SB)
......@@ -2,10 +2,4 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build 386 amd64 amd64p32 arm
#include "textflag.h"
TEXT ·Pow(SB),NOSPLIT,$0
JMP ·pow(SB)
#include "stubs_amd64.s"
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Acos(SB), NOSPLIT, $0
B ·acos(SB)
TEXT ·Acosh(SB), NOSPLIT, $0
B ·acosh(SB)
TEXT ·Asin(SB), NOSPLIT, $0
B ·asin(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
B ·asinh(SB)
TEXT ·Atan(SB), NOSPLIT, $0
B ·atan(SB)
TEXT ·Atan2(SB), NOSPLIT, $0
B ·atan2(SB)
TEXT ·Atanh(SB), NOSPLIT, $0
B ·atanh(SB)
TEXT ·Cbrt(SB), NOSPLIT, $0
B ·cbrt(SB)
TEXT ·Cos(SB), NOSPLIT, $0
B ·cos(SB)
TEXT ·Cosh(SB), NOSPLIT, $0
B ·cosh(SB)
TEXT ·Erf(SB), NOSPLIT, $0
B ·erf(SB)
TEXT ·Erfc(SB), NOSPLIT, $0
B ·erfc(SB)
TEXT ·Exp2(SB), NOSPLIT, $0
B ·exp2(SB)
TEXT ·Exp(SB), NOSPLIT, $0
B ·exp(SB)
TEXT ·Expm1(SB), NOSPLIT, $0
B ·expm1(SB)
TEXT ·Floor(SB), NOSPLIT, $0
B ·floor(SB)
TEXT ·Ceil(SB), NOSPLIT, $0
B ·ceil(SB)
TEXT ·Trunc(SB), NOSPLIT, $0
B ·trunc(SB)
TEXT ·Frexp(SB), NOSPLIT, $0
B ·frexp(SB)
TEXT ·Hypot(SB), NOSPLIT, $0
B ·hypot(SB)
TEXT ·Ldexp(SB), NOSPLIT, $0
B ·ldexp(SB)
TEXT ·Log10(SB), NOSPLIT, $0
B ·log10(SB)
TEXT ·Log2(SB), NOSPLIT, $0
B ·log2(SB)
TEXT ·Log1p(SB), NOSPLIT, $0
B ·log1p(SB)
TEXT ·Log(SB), NOSPLIT, $0
B ·log(SB)
TEXT ·Max(SB), NOSPLIT, $0
B ·max(SB)
TEXT ·Min(SB), NOSPLIT, $0
B ·min(SB)
TEXT ·Mod(SB), NOSPLIT, $0
B ·mod(SB)
TEXT ·Modf(SB), NOSPLIT, $0
B ·modf(SB)
TEXT ·Pow(SB), NOSPLIT, $0
JMP ·pow(SB)
TEXT ·Remainder(SB), NOSPLIT, $0
B ·remainder(SB)
TEXT ·Sin(SB), NOSPLIT, $0
B ·sin(SB)
TEXT ·Sinh(SB), NOSPLIT, $0
B ·sinh(SB)
TEXT ·Tan(SB), NOSPLIT, $0
B ·tan(SB)
TEXT ·Tanh(SB), NOSPLIT, $0
B ·tanh(SB)
......@@ -6,83 +6,83 @@
#include "textflag.h"
TEXT ·Asin(SB),NOSPLIT,$0
TEXT ·Asin(SB), NOSPLIT, $0
B ·asin(SB)
TEXT ·Acos(SB),NOSPLIT,$0
TEXT ·Acos(SB), NOSPLIT, $0
B ·acos(SB)
TEXT ·Asinh(SB),NOSPLIT,$0
B ·asinh(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
B ·asinh(SB)
TEXT ·Acosh(SB),NOSPLIT,$0
B ·acosh(SB)
TEXT ·Acosh(SB), NOSPLIT, $0
B ·acosh(SB)
TEXT ·Atan2(SB),NOSPLIT,$0
TEXT ·Atan2(SB), NOSPLIT, $0
B ·atan2(SB)
TEXT ·Atan(SB),NOSPLIT,$0
TEXT ·Atan(SB), NOSPLIT, $0
B ·atan(SB)
TEXT ·Atanh(SB),NOSPLIT,$0
TEXT ·Atanh(SB), NOSPLIT, $0
B ·atanh(SB)
TEXT ·Erf(SB),NOSPLIT,$0
TEXT ·Erf(SB), NOSPLIT, $0
B ·erf(SB)
TEXT ·Erfc(SB),NOSPLIT,$0
TEXT ·Erfc(SB), NOSPLIT, $0
B ·erfc(SB)
TEXT ·Cbrt(SB),NOSPLIT,$0
TEXT ·Cbrt(SB), NOSPLIT, $0
B ·cbrt(SB)
TEXT ·Cosh(SB),NOSPLIT,$0
TEXT ·Cosh(SB), NOSPLIT, $0
B ·cosh(SB)
TEXT ·Expm1(SB),NOSPLIT,$0
TEXT ·Expm1(SB), NOSPLIT, $0
B ·expm1(SB)
TEXT ·Frexp(SB),NOSPLIT,$0
TEXT ·Frexp(SB), NOSPLIT, $0
B ·frexp(SB)
TEXT ·Hypot(SB),NOSPLIT,$0
TEXT ·Hypot(SB), NOSPLIT, $0
B ·hypot(SB)
TEXT ·Ldexp(SB),NOSPLIT,$0
TEXT ·Ldexp(SB), NOSPLIT, $0
B ·ldexp(SB)
TEXT ·Log10(SB),NOSPLIT,$0
TEXT ·Log10(SB), NOSPLIT, $0
B ·log10(SB)
TEXT ·Log2(SB),NOSPLIT,$0
TEXT ·Log2(SB), NOSPLIT, $0
B ·log2(SB)
TEXT ·Log1p(SB),NOSPLIT,$0
TEXT ·Log1p(SB), NOSPLIT, $0
B ·log1p(SB)
TEXT ·Log(SB),NOSPLIT,$0
TEXT ·Log(SB), NOSPLIT, $0
B ·log(SB)
TEXT ·Mod(SB),NOSPLIT,$0
TEXT ·Mod(SB), NOSPLIT, $0
B ·mod(SB)
TEXT ·Remainder(SB),NOSPLIT,$0
TEXT ·Remainder(SB), NOSPLIT, $0
B ·remainder(SB)
TEXT ·Sin(SB),NOSPLIT,$0
TEXT ·Sin(SB), NOSPLIT, $0
B ·sin(SB)
TEXT ·Sinh(SB),NOSPLIT,$0
TEXT ·Sinh(SB), NOSPLIT, $0
B ·sinh(SB)
TEXT ·Cos(SB),NOSPLIT,$0
TEXT ·Cos(SB), NOSPLIT, $0
B ·cos(SB)
TEXT ·Tan(SB),NOSPLIT,$0
TEXT ·Tan(SB), NOSPLIT, $0
B ·tan(SB)
TEXT ·Tanh(SB),NOSPLIT,$0
TEXT ·Tanh(SB), NOSPLIT, $0
B ·tanh(SB)
TEXT ·Pow(SB),NOSPLIT,$0
TEXT ·Pow(SB), NOSPLIT, $0
B ·pow(SB)
......@@ -6,110 +6,110 @@
#include "textflag.h"
TEXT ·Asin(SB),NOSPLIT,$0
TEXT ·Asin(SB), NOSPLIT, $0
JMP ·asin(SB)
TEXT ·Acos(SB),NOSPLIT,$0
TEXT ·Acos(SB), NOSPLIT, $0
JMP ·acos(SB)
TEXT ·Asinh(SB),NOSPLIT,$0
JMP ·asinh(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
JMP ·asinh(SB)
TEXT ·Acosh(SB),NOSPLIT,$0
JMP ·acosh(SB)
TEXT ·Acosh(SB), NOSPLIT, $0
JMP ·acosh(SB)
TEXT ·Atan2(SB),NOSPLIT,$0
TEXT ·Atan2(SB), NOSPLIT, $0
JMP ·atan2(SB)
TEXT ·Atan(SB),NOSPLIT,$0
TEXT ·Atan(SB), NOSPLIT, $0
JMP ·atan(SB)
TEXT ·Atanh(SB),NOSPLIT,$0
TEXT ·Atanh(SB), NOSPLIT, $0
JMP ·atanh(SB)
TEXT ·Min(SB),NOSPLIT,$0
TEXT ·Min(SB), NOSPLIT, $0
JMP ·min(SB)
TEXT ·Max(SB),NOSPLIT,$0
TEXT ·Max(SB), NOSPLIT, $0
JMP ·max(SB)
TEXT ·Erf(SB),NOSPLIT,$0
TEXT ·Erf(SB), NOSPLIT, $0
JMP ·erf(SB)
TEXT ·Erfc(SB),NOSPLIT,$0
TEXT ·Erfc(SB), NOSPLIT, $0
JMP ·erfc(SB)
TEXT ·Exp2(SB),NOSPLIT,$0
TEXT ·Exp2(SB), NOSPLIT, $0
JMP ·exp2(SB)
TEXT ·Expm1(SB),NOSPLIT,$0
TEXT ·Expm1(SB), NOSPLIT, $0
JMP ·expm1(SB)
TEXT ·Exp(SB),NOSPLIT,$0
TEXT ·Exp(SB), NOSPLIT, $0
JMP ·exp(SB)
TEXT ·Floor(SB),NOSPLIT,$0
TEXT ·Floor(SB), NOSPLIT, $0
JMP ·floor(SB)
TEXT ·Ceil(SB),NOSPLIT,$0
TEXT ·Ceil(SB), NOSPLIT, $0
JMP ·ceil(SB)
TEXT ·Trunc(SB),NOSPLIT,$0
TEXT ·Trunc(SB), NOSPLIT, $0
JMP ·trunc(SB)
TEXT ·Frexp(SB),NOSPLIT,$0
TEXT ·Frexp(SB), NOSPLIT, $0
JMP ·frexp(SB)
TEXT ·Hypot(SB),NOSPLIT,$0
TEXT ·Hypot(SB), NOSPLIT, $0
JMP ·hypot(SB)
TEXT ·Ldexp(SB),NOSPLIT,$0
TEXT ·Ldexp(SB), NOSPLIT, $0
JMP ·ldexp(SB)
TEXT ·Log10(SB),NOSPLIT,$0
TEXT ·Log10(SB), NOSPLIT, $0
JMP ·log10(SB)
TEXT ·Log2(SB),NOSPLIT,$0
TEXT ·Log2(SB), NOSPLIT, $0
JMP ·log2(SB)
TEXT ·Log1p(SB),NOSPLIT,$0
TEXT ·Log1p(SB), NOSPLIT, $0
JMP ·log1p(SB)
TEXT ·Log(SB),NOSPLIT,$0
TEXT ·Log(SB), NOSPLIT, $0
JMP ·log(SB)
TEXT ·Modf(SB),NOSPLIT,$0
TEXT ·Modf(SB), NOSPLIT, $0
JMP ·modf(SB)
TEXT ·Mod(SB),NOSPLIT,$0
TEXT ·Mod(SB), NOSPLIT, $0
JMP ·mod(SB)
TEXT ·Remainder(SB),NOSPLIT,$0
TEXT ·Remainder(SB), NOSPLIT, $0
JMP ·remainder(SB)
TEXT ·Sin(SB),NOSPLIT,$0
TEXT ·Sin(SB), NOSPLIT, $0
JMP ·sin(SB)
TEXT ·Sinh(SB),NOSPLIT,$0
TEXT ·Sinh(SB), NOSPLIT, $0
JMP ·sinh(SB)
TEXT ·Cos(SB),NOSPLIT,$0
TEXT ·Cos(SB), NOSPLIT, $0
JMP ·cos(SB)
TEXT ·Cosh(SB),NOSPLIT,$0
TEXT ·Cosh(SB), NOSPLIT, $0
JMP ·cosh(SB)
TEXT ·Sqrt(SB),NOSPLIT,$0
TEXT ·Sqrt(SB), NOSPLIT, $0
JMP ·sqrt(SB)
TEXT ·Tan(SB),NOSPLIT,$0
TEXT ·Tan(SB), NOSPLIT, $0
JMP ·tan(SB)
TEXT ·Tanh(SB),NOSPLIT,$0
TEXT ·Tanh(SB), NOSPLIT, $0
JMP ·tanh(SB)
TEXT ·Cbrt(SB),NOSPLIT,$0
TEXT ·Cbrt(SB), NOSPLIT, $0
JMP ·cbrt(SB)
TEXT ·Pow(SB),NOSPLIT,$0
TEXT ·Pow(SB), NOSPLIT, $0
JMP ·pow(SB)
......@@ -6,108 +6,108 @@
#include "textflag.h"
TEXT ·Asin(SB),NOSPLIT,$0
JMP ·asin(SB)
TEXT ·Asin(SB), NOSPLIT, $0
JMP ·asin(SB)
TEXT ·Acos(SB),NOSPLIT,$0
JMP ·acos(SB)
TEXT ·Acos(SB), NOSPLIT, $0
JMP ·acos(SB)
TEXT ·Asinh(SB),NOSPLIT,$0
JMP ·asinh(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
JMP ·asinh(SB)
TEXT ·Acosh(SB),NOSPLIT,$0
JMP ·acosh(SB)
TEXT ·Acosh(SB), NOSPLIT, $0
JMP ·acosh(SB)
TEXT ·Atan2(SB),NOSPLIT,$0
JMP ·atan2(SB)
TEXT ·Atan2(SB), NOSPLIT, $0
JMP ·atan2(SB)
TEXT ·Atan(SB),NOSPLIT,$0
JMP ·atan(SB)
TEXT ·Atan(SB), NOSPLIT, $0
JMP ·atan(SB)
TEXT ·Atanh(SB),NOSPLIT,$0
JMP ·atanh(SB)
TEXT ·Atanh(SB), NOSPLIT, $0
JMP ·atanh(SB)
TEXT ·Min(SB),NOSPLIT,$0
JMP ·min(SB)
TEXT ·Min(SB), NOSPLIT, $0
JMP ·min(SB)
TEXT ·Max(SB),NOSPLIT,$0
JMP ·max(SB)
TEXT ·Max(SB), NOSPLIT, $0
JMP ·max(SB)
TEXT ·Erf(SB),NOSPLIT,$0
JMP ·erf(SB)
TEXT ·Erf(SB), NOSPLIT, $0
JMP ·erf(SB)
TEXT ·Erfc(SB),NOSPLIT,$0
JMP ·erfc(SB)
TEXT ·Erfc(SB), NOSPLIT, $0
JMP ·erfc(SB)
TEXT ·Exp2(SB),NOSPLIT,$0
JMP ·exp2(SB)
TEXT ·Exp2(SB), NOSPLIT, $0
JMP ·exp2(SB)
TEXT ·Expm1(SB),NOSPLIT,$0
JMP ·expm1(SB)
TEXT ·Expm1(SB), NOSPLIT, $0
JMP ·expm1(SB)
TEXT ·Exp(SB),NOSPLIT,$0
JMP ·exp(SB)
TEXT ·Exp(SB), NOSPLIT, $0
JMP ·exp(SB)
TEXT ·Floor(SB),NOSPLIT,$0
JMP ·floor(SB)
TEXT ·Floor(SB), NOSPLIT, $0
JMP ·floor(SB)
TEXT ·Ceil(SB),NOSPLIT,$0
JMP ·ceil(SB)
TEXT ·Ceil(SB), NOSPLIT, $0
JMP ·ceil(SB)
TEXT ·Trunc(SB),NOSPLIT,$0
JMP ·trunc(SB)
TEXT ·Trunc(SB), NOSPLIT, $0
JMP ·trunc(SB)
TEXT ·Frexp(SB),NOSPLIT,$0
JMP ·frexp(SB)
TEXT ·Frexp(SB), NOSPLIT, $0
JMP ·frexp(SB)
TEXT ·Hypot(SB),NOSPLIT,$0
JMP ·hypot(SB)
TEXT ·Hypot(SB), NOSPLIT, $0
JMP ·hypot(SB)
TEXT ·Ldexp(SB),NOSPLIT,$0
JMP ·ldexp(SB)
TEXT ·Ldexp(SB), NOSPLIT, $0
JMP ·ldexp(SB)
TEXT ·Log10(SB),NOSPLIT,$0
JMP ·log10(SB)
TEXT ·Log10(SB), NOSPLIT, $0
JMP ·log10(SB)
TEXT ·Log2(SB),NOSPLIT,$0
JMP ·log2(SB)
TEXT ·Log2(SB), NOSPLIT, $0
JMP ·log2(SB)
TEXT ·Log1p(SB),NOSPLIT,$0
JMP ·log1p(SB)
TEXT ·Log1p(SB), NOSPLIT, $0
JMP ·log1p(SB)
TEXT ·Log(SB),NOSPLIT,$0
JMP ·log(SB)
TEXT ·Log(SB), NOSPLIT, $0
JMP ·log(SB)
TEXT ·Modf(SB),NOSPLIT,$0
JMP ·modf(SB)
TEXT ·Modf(SB), NOSPLIT, $0
JMP ·modf(SB)
TEXT ·Mod(SB),NOSPLIT,$0
JMP ·mod(SB)
TEXT ·Mod(SB), NOSPLIT, $0
JMP ·mod(SB)
TEXT ·Remainder(SB),NOSPLIT,$0
JMP ·remainder(SB)
TEXT ·Remainder(SB), NOSPLIT, $0
JMP ·remainder(SB)
TEXT ·Sin(SB),NOSPLIT,$0
JMP ·sin(SB)
TEXT ·Sin(SB), NOSPLIT, $0
JMP ·sin(SB)
TEXT ·Sinh(SB),NOSPLIT,$0
JMP ·sinh(SB)
TEXT ·Sinh(SB), NOSPLIT, $0
JMP ·sinh(SB)
TEXT ·Cos(SB),NOSPLIT,$0
JMP ·cos(SB)
TEXT ·Cos(SB), NOSPLIT, $0
JMP ·cos(SB)
TEXT ·Cosh(SB),NOSPLIT,$0
JMP ·cosh(SB)
TEXT ·Cosh(SB), NOSPLIT, $0
JMP ·cosh(SB)
TEXT ·Tan(SB),NOSPLIT,$0
JMP ·tan(SB)
TEXT ·Tan(SB), NOSPLIT, $0
JMP ·tan(SB)
TEXT ·Tanh(SB),NOSPLIT,$0
JMP ·tanh(SB)
TEXT ·Tanh(SB), NOSPLIT, $0
JMP ·tanh(SB)
TEXT ·Cbrt(SB),NOSPLIT,$0
JMP ·cbrt(SB)
TEXT ·Cbrt(SB), NOSPLIT, $0
JMP ·cbrt(SB)
TEXT ·Pow(SB),NOSPLIT,$0
JMP ·pow(SB)
TEXT ·Pow(SB), NOSPLIT, $0
JMP ·pow(SB)
......@@ -6,96 +6,96 @@
#include "textflag.h"
TEXT ·Asin(SB),NOSPLIT,$0
TEXT ·Asin(SB), NOSPLIT, $0
BR ·asin(SB)
TEXT ·Acos(SB),NOSPLIT,$0
TEXT ·Acos(SB), NOSPLIT, $0
BR ·acos(SB)
TEXT ·Asinh(SB),NOSPLIT,$0
BR ·asinh(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
BR ·asinh(SB)
TEXT ·Acosh(SB),NOSPLIT,$0
BR ·acosh(SB)
TEXT ·Acosh(SB), NOSPLIT, $0
BR ·acosh(SB)
TEXT ·Atan2(SB),NOSPLIT,$0
TEXT ·Atan2(SB), NOSPLIT, $0
BR ·atan2(SB)
TEXT ·Atan(SB),NOSPLIT,$0
TEXT ·Atan(SB), NOSPLIT, $0
BR ·atan(SB)
TEXT ·Atanh(SB),NOSPLIT,$0
TEXT ·Atanh(SB), NOSPLIT, $0
BR ·atanh(SB)
TEXT ·Min(SB),NOSPLIT,$0
TEXT ·Min(SB), NOSPLIT, $0
BR ·min(SB)
TEXT ·Max(SB),NOSPLIT,$0
TEXT ·Max(SB), NOSPLIT, $0
BR ·max(SB)
TEXT ·Erf(SB),NOSPLIT,$0
TEXT ·Erf(SB), NOSPLIT, $0
BR ·erf(SB)
TEXT ·Erfc(SB),NOSPLIT,$0
TEXT ·Erfc(SB), NOSPLIT, $0
BR ·erfc(SB)
TEXT ·Exp2(SB),NOSPLIT,$0
TEXT ·Exp2(SB), NOSPLIT, $0
BR ·exp2(SB)
TEXT ·Expm1(SB),NOSPLIT,$0
TEXT ·Expm1(SB), NOSPLIT, $0
BR ·expm1(SB)
TEXT ·Exp(SB),NOSPLIT,$0
TEXT ·Exp(SB), NOSPLIT, $0
BR ·exp(SB)
TEXT ·Frexp(SB),NOSPLIT,$0
TEXT ·Frexp(SB), NOSPLIT, $0
BR ·frexp(SB)
TEXT ·Hypot(SB),NOSPLIT,$0
TEXT ·Hypot(SB), NOSPLIT, $0
BR ·hypot(SB)
TEXT ·Ldexp(SB),NOSPLIT,$0
TEXT ·Ldexp(SB), NOSPLIT, $0
BR ·ldexp(SB)
TEXT ·Log10(SB),NOSPLIT,$0
TEXT ·Log10(SB), NOSPLIT, $0
BR ·log10(SB)
TEXT ·Log2(SB),NOSPLIT,$0
TEXT ·Log2(SB), NOSPLIT, $0
BR ·log2(SB)
TEXT ·Log1p(SB),NOSPLIT,$0
TEXT ·Log1p(SB), NOSPLIT, $0
BR ·log1p(SB)
TEXT ·Log(SB),NOSPLIT,$0
TEXT ·Log(SB), NOSPLIT, $0
BR ·log(SB)
TEXT ·Mod(SB),NOSPLIT,$0
TEXT ·Mod(SB), NOSPLIT, $0
BR ·mod(SB)
TEXT ·Remainder(SB),NOSPLIT,$0
TEXT ·Remainder(SB), NOSPLIT, $0
BR ·remainder(SB)
TEXT ·Sin(SB),NOSPLIT,$0
TEXT ·Sin(SB), NOSPLIT, $0
BR ·sin(SB)
TEXT ·Sinh(SB),NOSPLIT,$0
TEXT ·Sinh(SB), NOSPLIT, $0
BR ·sinh(SB)
TEXT ·Cos(SB),NOSPLIT,$0
TEXT ·Cos(SB), NOSPLIT, $0
BR ·cos(SB)
TEXT ·Cosh(SB),NOSPLIT,$0
TEXT ·Cosh(SB), NOSPLIT, $0
BR ·cosh(SB)
TEXT ·Tan(SB),NOSPLIT,$0
TEXT ·Tan(SB), NOSPLIT, $0
BR ·tan(SB)
TEXT ·Tanh(SB),NOSPLIT,$0
TEXT ·Tanh(SB), NOSPLIT, $0
BR ·tanh(SB)
TEXT ·Cbrt(SB),NOSPLIT,$0
TEXT ·Cbrt(SB), NOSPLIT, $0
BR ·cbrt(SB)
TEXT ·Pow(SB),NOSPLIT,$0
TEXT ·Pow(SB), NOSPLIT, $0
BR ·pow(SB)
......@@ -4,509 +4,512 @@
#include "textflag.h"
TEXT ·Exp2(SB),NOSPLIT,$0
TEXT ·Exp2(SB), NOSPLIT, $0
BR ·exp2(SB)
TEXT ·Frexp(SB),NOSPLIT,$0
TEXT ·Frexp(SB), NOSPLIT, $0
BR ·frexp(SB)
TEXT ·Hypot(SB),NOSPLIT,$0
TEXT ·Hypot(SB), NOSPLIT, $0
BR ·hypot(SB)
TEXT ·Ldexp(SB),NOSPLIT,$0
TEXT ·Ldexp(SB), NOSPLIT, $0
BR ·ldexp(SB)
TEXT ·Log2(SB),NOSPLIT,$0
TEXT ·Log2(SB), NOSPLIT, $0
BR ·log2(SB)
TEXT ·Modf(SB),NOSPLIT,$0
TEXT ·Modf(SB), NOSPLIT, $0
BR ·modf(SB)
TEXT ·Mod(SB),NOSPLIT,$0
TEXT ·Mod(SB), NOSPLIT, $0
BR ·mod(SB)
TEXT ·Remainder(SB),NOSPLIT,$0
TEXT ·Remainder(SB), NOSPLIT, $0
BR ·remainder(SB)
//if go assembly use vector instruction
TEXT ·hasVectorFacility(SB),NOSPLIT,$24-1
MOVD $x-24(SP), R1
XC $24, 0(R1), 0(R1) // clear the storage
MOVD $2, R0 // R0 is the number of double words stored -1
WORD $0xB2B01000 // STFLE 0(R1)
XOR R0, R0 // reset the value of R0
MOVBZ z-8(SP), R1
AND $0x40, R1
BEQ novector
// if go assembly use vector instruction
TEXT ·hasVectorFacility(SB), NOSPLIT, $24-1
MOVD $x-24(SP), R1
XC $24, 0(R1), 0(R1) // clear the storage
MOVD $2, R0 // R0 is the number of double words stored -1
WORD $0xB2B01000 // STFLE 0(R1)
XOR R0, R0 // reset the value of R0
MOVBZ z-8(SP), R1
AND $0x40, R1
BEQ novector
vectorinstalled:
// check if the vector instruction has been enabled
VLEIB $0, $0xF, V16
VLGVB $0, V16, R1
CMPBNE R1, $0xF, novector
MOVB $1, ret+0(FP) // have vx
VLEIB $0, $0xF, V16
VLGVB $0, V16, R1
CMPBNE R1, $0xF, novector
MOVB $1, ret+0(FP) // have vx
RET
novector:
MOVB $0, ret+0(FP) // no vx
MOVB $0, ret+0(FP) // no vx
RET
TEXT ·Log10(SB),NOSPLIT,$0
MOVD ·log10vectorfacility+0x00(SB),R1
BR (R1)
TEXT ·log10TrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD log10vectorfacility+0x00(SB), R1
MOVD log10(SB), R2
MOVD R2, 0(R1)
BR ·log10(SB)
TEXT ·Log10(SB), NOSPLIT, $0
MOVD ·log10vectorfacility+0x00(SB), R1
BR (R1)
TEXT ·log10TrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD log10vectorfacility+0x00(SB), R1
MOVD log10(SB), R2
MOVD R2, 0(R1)
BR ·log10(SB)
vectorimpl:
MOVD log10vectorfacility+0x00(SB), R1
MOVD log10Asm(SB), R2
MOVD R2, 0(R1)
BR ·log10Asm(SB)
MOVD log10vectorfacility+0x00(SB), R1
MOVD log10Asm(SB), R2
MOVD R2, 0(R1)
BR ·log10Asm(SB)
GLOBL ·log10vectorfacility+0x00(SB), NOPTR, $8
DATA ·log10vectorfacility+0x00(SB)/8, log10TrampolineSetup(SB)
TEXT ·Cos(SB), NOSPLIT, $0
MOVD ·cosvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Cos(SB),NOSPLIT,$0
MOVD ·cosvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·cosTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD cosvectorfacility+0x00(SB), R1
MOVD cos(SB), R2
MOVD R2, 0(R1)
BR ·cos(SB)
TEXT ·cosTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD cosvectorfacility+0x00(SB), R1
MOVD cos(SB), R2
MOVD R2, 0(R1)
BR ·cos(SB)
vectorimpl:
MOVD cosvectorfacility+0x00(SB), R1
MOVD cosAsm(SB), R2
MOVD R2, 0(R1)
BR ·cosAsm(SB)
MOVD cosvectorfacility+0x00(SB), R1
MOVD cosAsm(SB), R2
MOVD R2, 0(R1)
BR ·cosAsm(SB)
GLOBL ·cosvectorfacility+0x00(SB), NOPTR, $8
DATA ·cosvectorfacility+0x00(SB)/8, cosTrampolineSetup(SB)
TEXT ·Cosh(SB), NOSPLIT, $0
MOVD ·coshvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Cosh(SB),NOSPLIT,$0
MOVD ·coshvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·coshTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD coshvectorfacility+0x00(SB), R1
MOVD cosh(SB), R2
MOVD R2, 0(R1)
BR ·cosh(SB)
TEXT ·coshTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD coshvectorfacility+0x00(SB), R1
MOVD cosh(SB), R2
MOVD R2, 0(R1)
BR ·cosh(SB)
vectorimpl:
MOVD coshvectorfacility+0x00(SB), R1
MOVD coshAsm(SB), R2
MOVD R2, 0(R1)
BR ·coshAsm(SB)
MOVD coshvectorfacility+0x00(SB), R1
MOVD coshAsm(SB), R2
MOVD R2, 0(R1)
BR ·coshAsm(SB)
GLOBL ·coshvectorfacility+0x00(SB), NOPTR, $8
DATA ·coshvectorfacility+0x00(SB)/8, coshTrampolineSetup(SB)
TEXT ·Sin(SB), NOSPLIT, $0
MOVD ·sinvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Sin(SB),NOSPLIT,$0
MOVD ·sinvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·sinTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD sinvectorfacility+0x00(SB), R1
MOVD sin(SB), R2
MOVD R2, 0(R1)
BR ·sin(SB)
TEXT ·sinTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD sinvectorfacility+0x00(SB), R1
MOVD sin(SB), R2
MOVD R2, 0(R1)
BR ·sin(SB)
vectorimpl:
MOVD sinvectorfacility+0x00(SB), R1
MOVD sinAsm(SB), R2
MOVD R2, 0(R1)
BR ·sinAsm(SB)
MOVD sinvectorfacility+0x00(SB), R1
MOVD sinAsm(SB), R2
MOVD R2, 0(R1)
BR ·sinAsm(SB)
GLOBL ·sinvectorfacility+0x00(SB), NOPTR, $8
DATA ·sinvectorfacility+0x00(SB)/8, sinTrampolineSetup(SB)
TEXT ·Sinh(SB), NOSPLIT, $0
MOVD ·sinhvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Sinh(SB),NOSPLIT,$0
MOVD ·sinhvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·sinhTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD sinhvectorfacility+0x00(SB), R1
MOVD sinh(SB), R2
MOVD R2, 0(R1)
BR ·sinh(SB)
TEXT ·sinhTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD sinhvectorfacility+0x00(SB), R1
MOVD sinh(SB), R2
MOVD R2, 0(R1)
BR ·sinh(SB)
vectorimpl:
MOVD sinhvectorfacility+0x00(SB), R1
MOVD sinhAsm(SB), R2
MOVD R2, 0(R1)
BR ·sinhAsm(SB)
MOVD sinhvectorfacility+0x00(SB), R1
MOVD sinhAsm(SB), R2
MOVD R2, 0(R1)
BR ·sinhAsm(SB)
GLOBL ·sinhvectorfacility+0x00(SB), NOPTR, $8
DATA ·sinhvectorfacility+0x00(SB)/8, sinhTrampolineSetup(SB)
TEXT ·Tanh(SB), NOSPLIT, $0
MOVD ·tanhvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Tanh(SB),NOSPLIT,$0
MOVD ·tanhvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·tanhTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD tanhvectorfacility+0x00(SB), R1
MOVD tanh(SB), R2
MOVD R2, 0(R1)
BR ·tanh(SB)
TEXT ·tanhTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD tanhvectorfacility+0x00(SB), R1
MOVD tanh(SB), R2
MOVD R2, 0(R1)
BR ·tanh(SB)
vectorimpl:
MOVD tanhvectorfacility+0x00(SB), R1
MOVD tanhAsm(SB), R2
MOVD R2, 0(R1)
BR ·tanhAsm(SB)
MOVD tanhvectorfacility+0x00(SB), R1
MOVD tanhAsm(SB), R2
MOVD R2, 0(R1)
BR ·tanhAsm(SB)
GLOBL ·tanhvectorfacility+0x00(SB), NOPTR, $8
DATA ·tanhvectorfacility+0x00(SB)/8, tanhTrampolineSetup(SB)
TEXT ·Log1p(SB), NOSPLIT, $0
MOVD ·log1pvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Log1p(SB),NOSPLIT,$0
MOVD ·log1pvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·log1pTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD log1pvectorfacility+0x00(SB), R1
MOVD log1p(SB), R2
MOVD R2, 0(R1)
BR ·log1p(SB)
TEXT ·log1pTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD log1pvectorfacility+0x00(SB), R1
MOVD log1p(SB), R2
MOVD R2, 0(R1)
BR ·log1p(SB)
vectorimpl:
MOVD log1pvectorfacility+0x00(SB), R1
MOVD log1pAsm(SB), R2
MOVD R2, 0(R1)
BR ·log1pAsm(SB)
MOVD log1pvectorfacility+0x00(SB), R1
MOVD log1pAsm(SB), R2
MOVD R2, 0(R1)
BR ·log1pAsm(SB)
GLOBL ·log1pvectorfacility+0x00(SB), NOPTR, $8
DATA ·log1pvectorfacility+0x00(SB)/8, log1pTrampolineSetup(SB)
TEXT ·Atanh(SB), NOSPLIT, $0
MOVD ·atanhvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Atanh(SB),NOSPLIT,$0
MOVD ·atanhvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·atanhTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD atanhvectorfacility+0x00(SB), R1
MOVD atanh(SB), R2
MOVD R2, 0(R1)
BR ·atanh(SB)
TEXT ·atanhTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD atanhvectorfacility+0x00(SB), R1
MOVD atanh(SB), R2
MOVD R2, 0(R1)
BR ·atanh(SB)
vectorimpl:
MOVD atanhvectorfacility+0x00(SB), R1
MOVD atanhAsm(SB), R2
MOVD R2, 0(R1)
BR ·atanhAsm(SB)
MOVD atanhvectorfacility+0x00(SB), R1
MOVD atanhAsm(SB), R2
MOVD R2, 0(R1)
BR ·atanhAsm(SB)
GLOBL ·atanhvectorfacility+0x00(SB), NOPTR, $8
DATA ·atanhvectorfacility+0x00(SB)/8, atanhTrampolineSetup(SB)
TEXT ·Acos(SB), NOSPLIT, $0
MOVD ·acosvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Acos(SB),NOSPLIT,$0
MOVD ·acosvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·acosTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD acosvectorfacility+0x00(SB), R1
MOVD acos(SB), R2
MOVD R2, 0(R1)
BR ·acos(SB)
TEXT ·acosTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD acosvectorfacility+0x00(SB), R1
MOVD acos(SB), R2
MOVD R2, 0(R1)
BR ·acos(SB)
vectorimpl:
MOVD acosvectorfacility+0x00(SB), R1
MOVD acosAsm(SB), R2
MOVD R2, 0(R1)
BR ·acosAsm(SB)
MOVD acosvectorfacility+0x00(SB), R1
MOVD acosAsm(SB), R2
MOVD R2, 0(R1)
BR ·acosAsm(SB)
GLOBL ·acosvectorfacility+0x00(SB), NOPTR, $8
DATA ·acosvectorfacility+0x00(SB)/8, acosTrampolineSetup(SB)
TEXT ·Asin(SB), NOSPLIT, $0
MOVD ·asinvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Asin(SB),NOSPLIT,$0
MOVD ·asinvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·asinTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD asinvectorfacility+0x00(SB), R1
MOVD asin(SB), R2
MOVD R2, 0(R1)
BR ·asin(SB)
TEXT ·asinTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD asinvectorfacility+0x00(SB), R1
MOVD asin(SB), R2
MOVD R2, 0(R1)
BR ·asin(SB)
vectorimpl:
MOVD asinvectorfacility+0x00(SB), R1
MOVD asinAsm(SB), R2
MOVD R2, 0(R1)
BR ·asinAsm(SB)
MOVD asinvectorfacility+0x00(SB), R1
MOVD asinAsm(SB), R2
MOVD R2, 0(R1)
BR ·asinAsm(SB)
GLOBL ·asinvectorfacility+0x00(SB), NOPTR, $8
DATA ·asinvectorfacility+0x00(SB)/8, asinTrampolineSetup(SB)
TEXT ·Asinh(SB), NOSPLIT, $0
MOVD ·asinhvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Asinh(SB),NOSPLIT,$0
MOVD ·asinhvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·asinhTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD asinhvectorfacility+0x00(SB), R1
MOVD asinh(SB), R2
MOVD R2, 0(R1)
BR ·asinh(SB)
TEXT ·asinhTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD asinhvectorfacility+0x00(SB), R1
MOVD asinh(SB), R2
MOVD R2, 0(R1)
BR ·asinh(SB)
vectorimpl:
MOVD asinhvectorfacility+0x00(SB), R1
MOVD asinhAsm(SB), R2
MOVD R2, 0(R1)
BR ·asinhAsm(SB)
MOVD asinhvectorfacility+0x00(SB), R1
MOVD asinhAsm(SB), R2
MOVD R2, 0(R1)
BR ·asinhAsm(SB)
GLOBL ·asinhvectorfacility+0x00(SB), NOPTR, $8
DATA ·asinhvectorfacility+0x00(SB)/8, asinhTrampolineSetup(SB)
TEXT ·Acosh(SB), NOSPLIT, $0
MOVD ·acoshvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Acosh(SB),NOSPLIT,$0
MOVD ·acoshvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·acoshTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD acoshvectorfacility+0x00(SB), R1
MOVD acosh(SB), R2
MOVD R2, 0(R1)
BR ·acosh(SB)
TEXT ·acoshTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD acoshvectorfacility+0x00(SB), R1
MOVD acosh(SB), R2
MOVD R2, 0(R1)
BR ·acosh(SB)
vectorimpl:
MOVD acoshvectorfacility+0x00(SB), R1
MOVD acoshAsm(SB), R2
MOVD R2, 0(R1)
BR ·acoshAsm(SB)
MOVD acoshvectorfacility+0x00(SB), R1
MOVD acoshAsm(SB), R2
MOVD R2, 0(R1)
BR ·acoshAsm(SB)
GLOBL ·acoshvectorfacility+0x00(SB), NOPTR, $8
DATA ·acoshvectorfacility+0x00(SB)/8, acoshTrampolineSetup(SB)
TEXT ·Erf(SB), NOSPLIT, $0
MOVD ·erfvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Erf(SB),NOSPLIT,$0
MOVD ·erfvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·erfTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD erfvectorfacility+0x00(SB), R1
MOVD erf(SB), R2
MOVD R2, 0(R1)
BR ·erf(SB)
TEXT ·erfTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD erfvectorfacility+0x00(SB), R1
MOVD erf(SB), R2
MOVD R2, 0(R1)
BR ·erf(SB)
vectorimpl:
MOVD erfvectorfacility+0x00(SB), R1
MOVD erfAsm(SB), R2
MOVD R2, 0(R1)
BR ·erfAsm(SB)
MOVD erfvectorfacility+0x00(SB), R1
MOVD erfAsm(SB), R2
MOVD R2, 0(R1)
BR ·erfAsm(SB)
GLOBL ·erfvectorfacility+0x00(SB), NOPTR, $8
DATA ·erfvectorfacility+0x00(SB)/8, erfTrampolineSetup(SB)
TEXT ·Erfc(SB), NOSPLIT, $0
MOVD ·erfcvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Erfc(SB),NOSPLIT,$0
MOVD ·erfcvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·erfcTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD erfcvectorfacility+0x00(SB), R1
MOVD erfc(SB), R2
MOVD R2, 0(R1)
BR ·erfc(SB)
TEXT ·erfcTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD erfcvectorfacility+0x00(SB), R1
MOVD erfc(SB), R2
MOVD R2, 0(R1)
BR ·erfc(SB)
vectorimpl:
MOVD erfcvectorfacility+0x00(SB), R1
MOVD erfcAsm(SB), R2
MOVD R2, 0(R1)
BR ·erfcAsm(SB)
MOVD erfcvectorfacility+0x00(SB), R1
MOVD erfcAsm(SB), R2
MOVD R2, 0(R1)
BR ·erfcAsm(SB)
GLOBL ·erfcvectorfacility+0x00(SB), NOPTR, $8
DATA ·erfcvectorfacility+0x00(SB)/8, erfcTrampolineSetup(SB)
TEXT ·Atan(SB), NOSPLIT, $0
MOVD ·atanvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Atan(SB),NOSPLIT,$0
MOVD ·atanvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·atanTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD atanvectorfacility+0x00(SB), R1
MOVD atan(SB), R2
MOVD R2, 0(R1)
BR ·atan(SB)
TEXT ·atanTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD atanvectorfacility+0x00(SB), R1
MOVD atan(SB), R2
MOVD R2, 0(R1)
BR ·atan(SB)
vectorimpl:
MOVD atanvectorfacility+0x00(SB), R1
MOVD atanAsm(SB), R2
MOVD R2, 0(R1)
BR ·atanAsm(SB)
MOVD atanvectorfacility+0x00(SB), R1
MOVD atanAsm(SB), R2
MOVD R2, 0(R1)
BR ·atanAsm(SB)
GLOBL ·atanvectorfacility+0x00(SB), NOPTR, $8
DATA ·atanvectorfacility+0x00(SB)/8, atanTrampolineSetup(SB)
TEXT ·Atan2(SB), NOSPLIT, $0
MOVD ·atan2vectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Atan2(SB),NOSPLIT,$0
MOVD ·atan2vectorfacility+0x00(SB),R1
BR (R1)
TEXT ·atan2TrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD atan2vectorfacility+0x00(SB), R1
MOVD atan2(SB), R2
MOVD R2, 0(R1)
BR ·atan2(SB)
TEXT ·atan2TrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD atan2vectorfacility+0x00(SB), R1
MOVD atan2(SB), R2
MOVD R2, 0(R1)
BR ·atan2(SB)
vectorimpl:
MOVD atan2vectorfacility+0x00(SB), R1
MOVD atan2Asm(SB), R2
MOVD R2, 0(R1)
BR ·atan2Asm(SB)
MOVD atan2vectorfacility+0x00(SB), R1
MOVD atan2Asm(SB), R2
MOVD R2, 0(R1)
BR ·atan2Asm(SB)
GLOBL ·atan2vectorfacility+0x00(SB), NOPTR, $8
DATA ·atan2vectorfacility+0x00(SB)/8, atan2TrampolineSetup(SB)
TEXT ·Cbrt(SB), NOSPLIT, $0
MOVD ·cbrtvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Cbrt(SB),NOSPLIT,$0
MOVD ·cbrtvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·cbrtTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD cbrtvectorfacility+0x00(SB), R1
MOVD cbrt(SB), R2
MOVD R2, 0(R1)
BR ·cbrt(SB)
TEXT ·cbrtTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD cbrtvectorfacility+0x00(SB), R1
MOVD cbrt(SB), R2
MOVD R2, 0(R1)
BR ·cbrt(SB)
vectorimpl:
MOVD cbrtvectorfacility+0x00(SB), R1
MOVD cbrtAsm(SB), R2
MOVD R2, 0(R1)
BR ·cbrtAsm(SB)
MOVD cbrtvectorfacility+0x00(SB), R1
MOVD cbrtAsm(SB), R2
MOVD R2, 0(R1)
BR ·cbrtAsm(SB)
GLOBL ·cbrtvectorfacility+0x00(SB), NOPTR, $8
DATA ·cbrtvectorfacility+0x00(SB)/8, cbrtTrampolineSetup(SB)
TEXT ·Log(SB), NOSPLIT, $0
MOVD ·logvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Log(SB),NOSPLIT,$0
MOVD ·logvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·logTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD logvectorfacility+0x00(SB), R1
MOVD log(SB), R2
MOVD R2, 0(R1)
BR ·log(SB)
TEXT ·logTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD logvectorfacility+0x00(SB), R1
MOVD log(SB), R2
MOVD R2, 0(R1)
BR ·log(SB)
vectorimpl:
MOVD logvectorfacility+0x00(SB), R1
MOVD logAsm(SB), R2
MOVD R2, 0(R1)
BR ·logAsm(SB)
MOVD logvectorfacility+0x00(SB), R1
MOVD logAsm(SB), R2
MOVD R2, 0(R1)
BR ·logAsm(SB)
GLOBL ·logvectorfacility+0x00(SB), NOPTR, $8
DATA ·logvectorfacility+0x00(SB)/8, logTrampolineSetup(SB)
TEXT ·Tan(SB), NOSPLIT, $0
MOVD ·tanvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Tan(SB),NOSPLIT,$0
MOVD ·tanvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·tanTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD tanvectorfacility+0x00(SB), R1
MOVD tan(SB), R2
MOVD R2, 0(R1)
BR ·tan(SB)
TEXT ·tanTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD tanvectorfacility+0x00(SB), R1
MOVD tan(SB), R2
MOVD R2, 0(R1)
BR ·tan(SB)
vectorimpl:
MOVD tanvectorfacility+0x00(SB), R1
MOVD tanAsm(SB), R2
MOVD R2, 0(R1)
BR ·tanAsm(SB)
MOVD tanvectorfacility+0x00(SB), R1
MOVD tanAsm(SB), R2
MOVD R2, 0(R1)
BR ·tanAsm(SB)
GLOBL ·tanvectorfacility+0x00(SB), NOPTR, $8
DATA ·tanvectorfacility+0x00(SB)/8, tanTrampolineSetup(SB)
TEXT ·Exp(SB),NOSPLIT,$0
MOVD ·expvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·expTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD expvectorfacility+0x00(SB), R1
MOVD exp(SB), R2
MOVD R2, 0(R1)
BR ·exp(SB)
TEXT ·Exp(SB), NOSPLIT, $0
MOVD ·expvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·expTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD expvectorfacility+0x00(SB), R1
MOVD exp(SB), R2
MOVD R2, 0(R1)
BR ·exp(SB)
vectorimpl:
MOVD expvectorfacility+0x00(SB), R1
MOVD expAsm(SB), R2
MOVD R2, 0(R1)
BR ·expAsm(SB)
MOVD expvectorfacility+0x00(SB), R1
MOVD expAsm(SB), R2
MOVD R2, 0(R1)
BR ·expAsm(SB)
GLOBL ·expvectorfacility+0x00(SB), NOPTR, $8
DATA ·expvectorfacility+0x00(SB)/8, expTrampolineSetup(SB)
TEXT ·Expm1(SB), NOSPLIT, $0
MOVD ·expm1vectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Expm1(SB),NOSPLIT,$0
MOVD ·expm1vectorfacility+0x00(SB),R1
BR (R1)
TEXT ·expm1TrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD expm1vectorfacility+0x00(SB), R1
MOVD expm1(SB), R2
MOVD R2, 0(R1)
BR ·expm1(SB)
TEXT ·expm1TrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD expm1vectorfacility+0x00(SB), R1
MOVD expm1(SB), R2
MOVD R2, 0(R1)
BR ·expm1(SB)
vectorimpl:
MOVD expm1vectorfacility+0x00(SB), R1
MOVD expm1Asm(SB), R2
MOVD R2, 0(R1)
BR ·expm1Asm(SB)
MOVD expm1vectorfacility+0x00(SB), R1
MOVD expm1Asm(SB), R2
MOVD R2, 0(R1)
BR ·expm1Asm(SB)
GLOBL ·expm1vectorfacility+0x00(SB), NOPTR, $8
DATA ·expm1vectorfacility+0x00(SB)/8, expm1TrampolineSetup(SB)
TEXT ·Pow(SB), NOSPLIT, $0
MOVD ·powvectorfacility+0x00(SB), R1
BR (R1)
TEXT ·Pow(SB),NOSPLIT,$0
MOVD ·powvectorfacility+0x00(SB),R1
BR (R1)
TEXT ·powTrampolineSetup(SB), NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD powvectorfacility+0x00(SB), R1
MOVD pow(SB), R2
MOVD R2, 0(R1)
BR ·pow(SB)
TEXT ·powTrampolineSetup(SB),NOSPLIT, $0
MOVB ·hasVX(SB), R1
CMPBEQ R1, $1, vectorimpl // vectorfacility = 1, vector supported
MOVD powvectorfacility+0x00(SB), R1
MOVD pow(SB), R2
MOVD R2, 0(R1)
BR ·pow(SB)
vectorimpl:
MOVD powvectorfacility+0x00(SB), R1
MOVD powAsm(SB), R2
MOVD R2, 0(R1)
BR ·powAsm(SB)
MOVD powvectorfacility+0x00(SB), R1
MOVD powAsm(SB), R2
MOVD R2, 0(R1)
BR ·powAsm(SB)
GLOBL ·powvectorfacility+0x00(SB), NOPTR, $8
DATA ·powvectorfacility+0x00(SB)/8, powTrampolineSetup(SB)
......@@ -4,98 +4,98 @@
#include "textflag.h"
TEXT ·Asin(SB),NOSPLIT,$0
TEXT ·Asin(SB), NOSPLIT, $0
JMP ·asin(SB)
TEXT ·Asinh(SB),NOSPLIT,$0
TEXT ·Asinh(SB), NOSPLIT, $0
JMP ·asinh(SB)
TEXT ·Acos(SB),NOSPLIT,$0
TEXT ·Acos(SB), NOSPLIT, $0
JMP ·acos(SB)
TEXT ·Acosh(SB),NOSPLIT,$0
TEXT ·Acosh(SB), NOSPLIT, $0
JMP ·acosh(SB)
TEXT ·Atan(SB),NOSPLIT,$0
TEXT ·Atan(SB), NOSPLIT, $0
JMP ·atan(SB)
TEXT ·Atanh(SB),NOSPLIT,$0
TEXT ·Atanh(SB), NOSPLIT, $0
JMP ·atanh(SB)
TEXT ·Atan2(SB),NOSPLIT,$0
TEXT ·Atan2(SB), NOSPLIT, $0
JMP ·atan2(SB)
TEXT ·Cbrt(SB),NOSPLIT,$0
TEXT ·Cbrt(SB), NOSPLIT, $0
JMP ·cbrt(SB)
TEXT ·Cos(SB),NOSPLIT,$0
TEXT ·Cos(SB), NOSPLIT, $0
JMP ·cos(SB)
TEXT ·Cosh(SB),NOSPLIT,$0
TEXT ·Cosh(SB), NOSPLIT, $0
JMP ·cosh(SB)
TEXT ·Erf(SB),NOSPLIT,$0
TEXT ·Erf(SB), NOSPLIT, $0
JMP ·erf(SB)
TEXT ·Erfc(SB),NOSPLIT,$0
TEXT ·Erfc(SB), NOSPLIT, $0
JMP ·erfc(SB)
TEXT ·Exp(SB),NOSPLIT,$0
TEXT ·Exp(SB), NOSPLIT, $0
JMP ·exp(SB)
TEXT ·Expm1(SB),NOSPLIT,$0
TEXT ·Expm1(SB), NOSPLIT, $0
JMP ·expm1(SB)
TEXT ·Exp2(SB),NOSPLIT,$0
TEXT ·Exp2(SB), NOSPLIT, $0
JMP ·exp2(SB)
TEXT ·Frexp(SB),NOSPLIT,$0
TEXT ·Frexp(SB), NOSPLIT, $0
JMP ·frexp(SB)
TEXT ·Hypot(SB),NOSPLIT,$0
TEXT ·Hypot(SB), NOSPLIT, $0
JMP ·hypot(SB)
TEXT ·Ldexp(SB),NOSPLIT,$0
TEXT ·Ldexp(SB), NOSPLIT, $0
JMP ·ldexp(SB)
TEXT ·Log(SB),NOSPLIT,$0
TEXT ·Log(SB), NOSPLIT, $0
JMP ·log(SB)
TEXT ·Log1p(SB),NOSPLIT,$0
TEXT ·Log1p(SB), NOSPLIT, $0
JMP ·log1p(SB)
TEXT ·Log10(SB),NOSPLIT,$0
TEXT ·Log10(SB), NOSPLIT, $0
JMP ·log10(SB)
TEXT ·Log2(SB),NOSPLIT,$0
TEXT ·Log2(SB), NOSPLIT, $0
JMP ·log2(SB)
TEXT ·Max(SB),NOSPLIT,$0
TEXT ·Max(SB), NOSPLIT, $0
JMP ·max(SB)
TEXT ·Min(SB),NOSPLIT,$0
TEXT ·Min(SB), NOSPLIT, $0
JMP ·min(SB)
TEXT ·Mod(SB),NOSPLIT,$0
TEXT ·Mod(SB), NOSPLIT, $0
JMP ·mod(SB)
TEXT ·Modf(SB),NOSPLIT,$0
TEXT ·Modf(SB), NOSPLIT, $0
JMP ·modf(SB)
TEXT ·Pow(SB),NOSPLIT,$0
TEXT ·Pow(SB), NOSPLIT, $0
JMP ·pow(SB)
TEXT ·Remainder(SB),NOSPLIT,$0
TEXT ·Remainder(SB), NOSPLIT, $0
JMP ·remainder(SB)
TEXT ·Sin(SB),NOSPLIT,$0
TEXT ·Sin(SB), NOSPLIT, $0
JMP ·sin(SB)
TEXT ·Sinh(SB),NOSPLIT,$0
TEXT ·Sinh(SB), NOSPLIT, $0
JMP ·sinh(SB)
TEXT ·Tan(SB),NOSPLIT,$0
TEXT ·Tan(SB), NOSPLIT, $0
JMP ·tan(SB)
TEXT ·Tanh(SB),NOSPLIT,$0
TEXT ·Tanh(SB), NOSPLIT, $0
JMP ·tanh(SB)
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
// func Tan(x float64) float64
TEXT ·Tan(SB),NOSPLIT,$0
JMP ·tan(SB)
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Tan(SB),NOSPLIT,$0
JMP ·tan(SB)
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "tan_amd64.s"
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT ·Tan(SB),NOSPLIT,$0
B ·tan(SB)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment