From b3f61791f1e9095ce8ae9c6d6415b4ee94e2f7eb Mon Sep 17 00:00:00 2001 From: rsc Date: Sun, 21 Mar 2004 14:06:38 +0000 Subject: Add libmp. --- src/libmp/port/letomp.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/libmp/port/letomp.c (limited to 'src/libmp/port/letomp.c') diff --git a/src/libmp/port/letomp.c b/src/libmp/port/letomp.c new file mode 100644 index 00000000..e23fed21 --- /dev/null +++ b/src/libmp/port/letomp.c @@ -0,0 +1,28 @@ +#include "os.h" +#include +#include "dat.h" + +// convert a little endian byte array (least significant byte first) to an mpint +mpint* +letomp(uchar *s, uint n, mpint *b) +{ + int i=0, m = 0; + mpdigit x=0; + + if(b == nil) + b = mpnew(0); + mpbits(b, 8*n); + for(; n > 0; n--){ + x |= ((mpdigit)(*s++)) << i; + i += 8; + if(i == Dbits){ + b->p[m++] = x; + i = 0; + x = 0; + } + } + if(i > 0) + b->p[m++] = x; + b->top = m; + return b; +} -- cgit v1.2.3