From 3860478b421d8be0ced439b4a307ccb60f71738f Mon Sep 17 00:00:00 2001 From: Lynn Boger Date: Mon, 30 Oct 2017 10:36:15 -0400 Subject: [PATCH] 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 TryBot-Result: Gobot Gobot Reviewed-by: Michael Munday --- src/math/modf_ppc64x.s | 17 +++++++++++++++++ src/math/stubs_ppc64x.s | 3 --- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 src/math/modf_ppc64x.s 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) -- 2.48.1