From a07a2025dab770421992362d8f4e4acbbf776fa8 Mon Sep 17 00:00:00 2001 From: aiju Date: Mon, 8 Aug 2016 22:19:29 +0200 Subject: document mplogic functions --- sys/man/2/mp | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) 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 -- cgit v1.2.3