]> Cypherpunks repositories - gostls13.git/commitdiff
math: implement asm modf for ppc64x
authorLynn Boger <laboger@linux.vnet.ibm.com>
Mon, 30 Oct 2017 14:36:15 +0000 (10:36 -0400)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Thu, 2 Nov 2017 13:24:32 +0000 (13:24 +0000)
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>
src/math/modf_ppc64x.s [new file with mode: 0644]
src/math/stubs_ppc64x.s

diff --git a/src/math/modf_ppc64x.s b/src/math/modf_ppc64x.s
new file mode 100644 (file)
index 0000000..da58653
--- /dev/null
@@ -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
index 9d46ebff746874ba935a8172b5f447ac2319f833..30c51ddeaf40748b74ca226f8cc5a67ff36d8304 100644 (file)
@@ -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)