Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libm/arch/arm Add fma/fmaf/fmal for arm hard float which...



details:   https://anonhg.NetBSD.org/src/rev/dd0838a5921e
branches:  trunk
changeset: 784855:dd0838a5921e
user:      matt <matt%NetBSD.org@localhost>
date:      Mon Feb 11 17:41:13 2013 +0000

description:
Add fma/fmaf/fmal for arm hard float which uses the VFP vmla instruction.

diffstat:

 lib/libm/arch/arm/s_fma.S  |  42 ++++++++++++++++++++++++++++++++++++++++++
 lib/libm/arch/arm/s_fmaf.S |  40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+), 0 deletions(-)

diffs (90 lines):

diff -r 54834587165e -r dd0838a5921e lib/libm/arch/arm/s_fma.S
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libm/arch/arm/s_fma.S Mon Feb 11 17:41:13 2013 +0000
@@ -0,0 +1,42 @@
+/*-
+ * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <arm/asm.h>
+
+RCSID("$NetBSD: s_fma.S,v 1.1 2013/02/11 17:41:13 matt Exp $")
+
+STRONG_ALIAS(_fmal, _fma)
+WEAK_ALIAS(fmal, _fmal)
+WEAK_ALIAS(fma, _fma)
+
+ENTRY(_fma)
+       vmla.f64        d2, d0, d1
+       vmov.f64        d0, d2
+       RET
+END(_fma)
diff -r 54834587165e -r dd0838a5921e lib/libm/arch/arm/s_fmaf.S
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libm/arch/arm/s_fmaf.S        Mon Feb 11 17:41:13 2013 +0000
@@ -0,0 +1,40 @@
+/*-
+ * Copyright (c) 2013 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Matt Thomas of 3am Software Foundry.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <arm/asm.h>
+
+RCSID("$NetBSD: s_fmaf.S,v 1.1 2013/02/11 17:41:13 matt Exp $")
+
+WEAK_ALIAS(fmaf, _fmaf)
+
+ENTRY(_fmaf)
+       vmla.f32        s2, s0, s1
+       vmov.f32        s0, s2
+       RET
+END(_fmaf)



Home | Main Index | Thread Index | Old Index