summaryrefslogtreecommitdiff
path: root/sys/man
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2016-08-08 22:19:29 +0200
committeraiju <devnull@localhost>2016-08-08 22:19:29 +0200
commita07a2025dab770421992362d8f4e4acbbf776fa8 (patch)
treee3e25f5fb3022ff86c9c118e44a6787c16584732 /sys/man
parent590a4980bcf1ba21b3ddbef032bc4ca0589c840c (diff)
document mplogic functions
Diffstat (limited to 'sys/man')
-rw-r--r--sys/man/2/mp57
1 files changed, 57 insertions, 0 deletions
diff --git a/sys/man/2/mp b/sys/man/2/mp
index 182bca7e2..5223c8a10 100644
--- a/sys/man/2/mp
+++ b/sys/man/2/mp
@@ -106,6 +106,27 @@ void mpleft(mpint *b, int shift, mpint *res)
void mpright(mpint *b, int shift, mpint *res)
.PP
.B
+void mpand(mpint *b1, mpint *b2, mpint *res)
+.PP
+.B
+void mpbic(mpint *b1, mpint *b2, mpint *res)
+.PP
+.B
+void mpor(mpint *b1, mpint *b2, mpint *res)
+.PP
+.B
+void mpnot(mpint *b, mpint *res)
+.PP
+.B
+void mpxor(mpint *b1, mpint *b2, mpint *res)
+.PP
+.B
+void mptrunc(mpint *b, int n, mpint *res)
+.PP
+.B
+void mpxtend(mpint *b, int n, mpint *res)
+.PP
+.B
void mpmul(mpint *b1, mpint *b2, mpint *prod)
.PP
.B
@@ -545,6 +566,42 @@ is assigned to
.IR res .
.PD
.PP
+Logical operations (treating negative numbers using two's complement):
+.TF mpxtend_
+.TP
+.I mpand
+.BR "res = b1 & b2" .
+.TP
+.I mpbic
+.BR "res = b1 & ~b2" .
+.TP
+.I mpor
+.BR "res = b1 | b2" .
+.TP
+.I mpxor
+.BR "res = b1 ^ b2" .
+.TP
+.I mpnot
+.BR "res = ~b1" .
+.TP
+.I mptrunc
+truncates
+.I b
+to
+.I n
+bits and stores the result in
+.IR res .
+The result is never negative.
+.TP
+.I mpxtend
+truncates
+.I b
+to
+.I n
+bits, sign extends the MSB and stores the result in
+.IR res .
+.PD
+.PP
Modular arithmetic:
.TF mpmodmul_
.TP