diff options
| author | Lynn Boger <laboger@linux.vnet.ibm.com> | 2017-10-30 10:36:15 -0400 |
|---|---|---|
| committer | Lynn Boger <laboger@linux.vnet.ibm.com> | 2017-11-02 13:24:32 +0000 |
| commit | 3860478b421d8be0ced439b4a307ccb60f71738f (patch) | |
| tree | 207bc49f0f05cef810ab8fd86b283bd7efc0f74e /src | |
| parent | 0d101d1a9fea83fa2663b834933328c83f6e960b (diff) | |
| download | go-3860478b421d8be0ced439b4a307ccb60f71738f.tar.xz | |
math: implement asm modf for ppc64x
This change adds an asm implementations modf for ppc64x.
Improvements:
BenchmarkModf-16 7.48 6.26 -16.31%
Updates: #21390
Change-Id: I9c4f3213688e3e8842d050840dc04fc9c0bf6ce4
Reviewed-on: https://go-review.googlesource.com/74411
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Munday <mike.munday@ibm.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/math/modf_ppc64x.s | 17 | ||||
| -rw-r--r-- | src/math/stubs_ppc64x.s | 3 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/math/modf_ppc64x.s b/src/math/modf_ppc64x.s new file mode 100644 index 0000000000..da58653d69 --- /dev/null +++ b/src/math/modf_ppc64x.s @@ -0,0 +1,17 @@ +// 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 ppc64 ppc64le + +#include "textflag.h" + +// func Modf(f float64) (int float64, frac float64) +TEXT ·Modf(SB),NOSPLIT,$0 + FMOVD f+0(FP), F0 + FRIZ F0, F1 + FMOVD F1, int+8(FP) + FSUB F1, F0, F2 + FCPSGN F2, F0, F2 + FMOVD F2, frac+16(FP) + RET diff --git a/src/math/stubs_ppc64x.s b/src/math/stubs_ppc64x.s index 9d46ebff74..30c51ddeaf 100644 --- a/src/math/stubs_ppc64x.s +++ b/src/math/stubs_ppc64x.s @@ -72,9 +72,6 @@ TEXT ·Log1p(SB),NOSPLIT,$0 TEXT ·Log(SB),NOSPLIT,$0 BR ·log(SB) -TEXT ·Modf(SB),NOSPLIT,$0 - BR ·modf(SB) - TEXT ·Mod(SB),NOSPLIT,$0 BR ·mod(SB) |
