Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Add man page for fast_divide32.
details: https://anonhg.NetBSD.org/src/rev/6b335d587032
branches: trunk
changeset: 753188:6b335d587032
user: joerg <joerg%NetBSD.org@localhost>
date: Fri Mar 19 20:11:21 2010 +0000
description:
Add man page for fast_divide32.
diffstat:
distrib/sets/lists/comp/mi | 11 ++++-
share/man/man3/Makefile | 6 +-
share/man/man3/fast_divide32.3 | 100 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 114 insertions(+), 3 deletions(-)
diffs (167 lines):
diff -r d5b28db40b12 -r 6b335d587032 distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi Fri Mar 19 20:07:00 2010 +0000
+++ b/distrib/sets/lists/comp/mi Fri Mar 19 20:11:21 2010 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1406 2010/03/08 12:32:17 pooka Exp $
+# $NetBSD: mi,v 1.1407 2010/03/19 20:11:21 joerg Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -5682,6 +5682,9 @@
./usr/share/man/cat3/extattr_string_to_namespace.0 comp-c-catman .cat
./usr/share/man/cat3/fabs.0 comp-c-catman .cat
./usr/share/man/cat3/fabsf.0 comp-c-catman .cat
+./usr/share/man/cat3/fast_divide32.0 comp-c-catman .cat
+./usr/share/man/cat3/fast_divide32_prepare.0 comp-c-catman .cat
+./usr/share/man/cat3/fast_remainder32.0 comp-c-catman .cat
./usr/share/man/cat3/fclose.0 comp-c-catman .cat
./usr/share/man/cat3/fdim.0 comp-c-catman .cat
./usr/share/man/cat3/fdimf.0 comp-c-catman .cat
@@ -11453,6 +11456,9 @@
./usr/share/man/html3/extattr_string_to_namespace.html comp-c-htmlman html
./usr/share/man/html3/fabs.html comp-c-htmlman html
./usr/share/man/html3/fabsf.html comp-c-htmlman html
+./usr/share/man/html3/fast_divide32.html comp-c-htmlman html
+./usr/share/man/html3/fast_divide32_prepare.html comp-c-htmlman html
+./usr/share/man/html3/fast_remainder32.html comp-c-htmlman html
./usr/share/man/html3/fclose.html comp-c-htmlman html
./usr/share/man/html3/fdim.html comp-c-htmlman html
./usr/share/man/html3/fdimf.html comp-c-htmlman html
@@ -17134,6 +17140,9 @@
./usr/share/man/man3/extattr_string_to_namespace.3 comp-c-man .man
./usr/share/man/man3/fabs.3 comp-c-man .man
./usr/share/man/man3/fabsf.3 comp-c-man .man
+./usr/share/man/man3/fast_divide32.3 comp-c-man .man
+./usr/share/man/man3/fast_divide32_prepare.3 comp-c-man .man
+./usr/share/man/man3/fast_remainder32.3 comp-c-man .man
./usr/share/man/man3/fclose.3 comp-c-man .man
./usr/share/man/man3/fdim.3 comp-c-man .man
./usr/share/man/man3/fdimf.3 comp-c-man .man
diff -r d5b28db40b12 -r 6b335d587032 share/man/man3/Makefile
--- a/share/man/man3/Makefile Fri Mar 19 20:07:00 2010 +0000
+++ b/share/man/man3/Makefile Fri Mar 19 20:11:21 2010 +0000
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.39 2010/03/01 16:36:15 jruoho Exp $
+# $NetBSD: Makefile,v 1.40 2010/03/19 20:11:22 joerg Exp $
# @(#)Makefile 8.2 (Berkeley) 12/13/93
MAN= _DIAGASSERT.3 __UNCONST.3 CMSG_DATA.3 \
__arraycount.3 assert.3 bits.3 bitstring.3 dlfcn.3 end.3 \
- gcq.3 intro.3 offsetof.3 queue.3 stdarg.3 sysexits.3 \
+ fast_divide32.3 gcq.3 intro.3 offsetof.3 queue.3 stdarg.3 sysexits.3 \
tgmath.3 timeradd.3 tree.3 varargs.3
USETBL= # used by queue.3
@@ -25,6 +25,8 @@
bits.3 __SHIFTOUT.3 \
bits.3 __SHIFTOUT_MASK.3
MLINKS+=end.3 edata.3 end.3 etext.3
+MLINKS+=fast_divide32.3 fast_divide32_prepare.3 \
+ fast_divide32.3 fast_remainder32.3
MLINKS+=gcq.3 GCQ_INIT.3 \
gcq.3 GCQ_INIT_HEAD.3 \
gcq.3 gcq_init.3 \
diff -r d5b28db40b12 -r 6b335d587032 share/man/man3/fast_divide32.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/man/man3/fast_divide32.3 Fri Mar 19 20:11:21 2010 +0000
@@ -0,0 +1,100 @@
+.\" $NetBSD: fast_divide32.3,v 1.1 2010/03/19 20:11:22 joerg Exp $
+.\"
+.\" Copyright (c) 2010 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Joerg Sonnenberger.
+.\"
+.\" 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.
+.\"
+.Dd March 19, 2010
+.Dt FAST_DIVIDE32 3
+.Os
+.Sh NAME
+.Nm fast_divide32 ,
+.Nm fast_divide32_prepare ,
+.Nm fast_remainder32
+.Nd fast 32bit division and remainder
+.Sh SYNOPSIS
+.In sys/bitops.h
+.Ft uint32_t
+.Fn fast_divide32 "uint32_t v" "uint32_t div" "uint32_t m" "uint8_t s1" \
+"uint8_t s2"
+.Ft uint32_t
+.Fn fast_remainder32 "uint32_t v" "uint32_t div" "uint32_t m" "uint8_t s1" \
+"uint8_t s2"
+.Ft void
+.Fn fast_divide32_prepare "uint32_t div" "uint32_t *m" "uint8_t *s1" \
+"uint8_t *s2"
+.Sh DESCRIPTION
+The
+.Nm fast_divide32
+and
+.Nm fast_remainder32
+functions compute the equivalent of
+.Fa v / Fa div
+and
+.Fa v % Fa div
+using optimised CPU instructions.
+The constants
+.Fa m ,
+.Fa s1
+and
+.Fa s2
+must first be preset for a given value of
+.Fa div
+with the
+.Nm fast_divide32_prepare
+function.
+.Sh RATIONALE
+These functions are useful for inner loops and other performance-sensitive
+tasks.
+The functions expand to code that is typically slightly larger than
+a plain division instruction, but requires less time to execute.
+The code for constant
+.Fa div
+arguments should be equivalent to the assembly created by GCC.
+.Sh EXAMPLE
+The following example computes q=a/b and r=a%b:
+.Bd -literal
+uint32_t a, b, q, r, m;
+uint8_t s1, s2;
+
+fast_divide32_prepare(b, &m, &s1, &s2);
+
+q = fast_divide32(a, b, m, s1, s2);
+r = fast_remainder32(a, b, m, s1, s2);
+.Ed
+.Sh SEE ALSO
+.Rs
+.%A Torbj\(:orn Granlund
+.%A Peter L. Montgomery
+.%T Division by Invariant Integers Using Multiplication
+.%D 1994
+.%U http://swox.se/~tg/divcnst-pldi94.pdf
+.Re
+.Sh HISTORY
+The
+.Nm
+function appeared in
+.Nx 6.0 .
Home |
Main Index |
Thread Index |
Old Index