diff options
Diffstat (limited to 'linden/indra/libgcrypt/libgcrypt-1.2.2/mpi/generic/mpih-sub1.c')
-rw-r--r--[-rwxr-xr-x] | linden/indra/libgcrypt/libgcrypt-1.2.2/mpi/generic/mpih-sub1.c | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/linden/indra/libgcrypt/libgcrypt-1.2.2/mpi/generic/mpih-sub1.c b/linden/indra/libgcrypt/libgcrypt-1.2.2/mpi/generic/mpih-sub1.c index 7c2c5ea..e88821b 100755..100644 --- a/linden/indra/libgcrypt/libgcrypt-1.2.2/mpi/generic/mpih-sub1.c +++ b/linden/indra/libgcrypt/libgcrypt-1.2.2/mpi/generic/mpih-sub1.c | |||
@@ -1,66 +1,66 @@ | |||
1 | /* mpihelp-add_2.c - MPI helper functions | 1 | /* mpihelp-add_2.c - MPI helper functions |
2 | * Copyright (C) 1994, 1996, 1997, 1998, 2001, | 2 | * Copyright (C) 1994, 1996, 1997, 1998, 2001, |
3 | * 2002 Free Software Foundation, Inc. | 3 | * 2002 Free Software Foundation, Inc. |
4 | * | 4 | * |
5 | * This file is part of Libgcrypt. | 5 | * This file is part of Libgcrypt. |
6 | * | 6 | * |
7 | * Libgcrypt is free software; you can redistribute it and/or modify | 7 | * Libgcrypt is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU Lesser General Public License as | 8 | * it under the terms of the GNU Lesser General Public License as |
9 | * published by the Free Software Foundation; either version 2.1 of | 9 | * published by the Free Software Foundation; either version 2.1 of |
10 | * the License, or (at your option) any later version. | 10 | * the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * Libgcrypt is distributed in the hope that it will be useful, | 12 | * Libgcrypt is distributed in the hope that it will be useful, |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | * GNU Lesser General Public License for more details. | 15 | * GNU Lesser General Public License for more details. |
16 | * | 16 | * |
17 | * You should have received a copy of the GNU Lesser General Public | 17 | * You should have received a copy of the GNU Lesser General Public |
18 | * License along with this program; if not, write to the Free Software | 18 | * License along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA | 19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
20 | * | 20 | * |
21 | * Note: This code is heavily based on the GNU MP Library. | 21 | * Note: This code is heavily based on the GNU MP Library. |
22 | * Actually it's the same code with only minor changes in the | 22 | * Actually it's the same code with only minor changes in the |
23 | * way the data is stored; this is to support the abstraction | 23 | * way the data is stored; this is to support the abstraction |
24 | * of an optional secure memory allocation which may be used | 24 | * of an optional secure memory allocation which may be used |
25 | * to avoid revealing of sensitive data due to paging etc. | 25 | * to avoid revealing of sensitive data due to paging etc. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <config.h> | 28 | #include <config.h> |
29 | #include <stdio.h> | 29 | #include <stdio.h> |
30 | #include <stdlib.h> | 30 | #include <stdlib.h> |
31 | #include "mpi-internal.h" | 31 | #include "mpi-internal.h" |
32 | #include "longlong.h" | 32 | #include "longlong.h" |
33 | 33 | ||
34 | mpi_limb_t | 34 | mpi_limb_t |
35 | _gcry_mpih_sub_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, | 35 | _gcry_mpih_sub_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, |
36 | mpi_ptr_t s2_ptr, mpi_size_t size) | 36 | mpi_ptr_t s2_ptr, mpi_size_t size) |
37 | { | 37 | { |
38 | mpi_limb_t x, y, cy; | 38 | mpi_limb_t x, y, cy; |
39 | mpi_size_t j; | 39 | mpi_size_t j; |
40 | 40 | ||
41 | /* The loop counter and index J goes from -SIZE to -1. This way | 41 | /* The loop counter and index J goes from -SIZE to -1. This way |
42 | the loop becomes faster. */ | 42 | the loop becomes faster. */ |
43 | j = -size; | 43 | j = -size; |
44 | 44 | ||
45 | /* Offset the base pointers to compensate for the negative indices. */ | 45 | /* Offset the base pointers to compensate for the negative indices. */ |
46 | s1_ptr -= j; | 46 | s1_ptr -= j; |
47 | s2_ptr -= j; | 47 | s2_ptr -= j; |
48 | res_ptr -= j; | 48 | res_ptr -= j; |
49 | 49 | ||
50 | cy = 0; | 50 | cy = 0; |
51 | do | 51 | do |
52 | { | 52 | { |
53 | y = s2_ptr[j]; | 53 | y = s2_ptr[j]; |
54 | x = s1_ptr[j]; | 54 | x = s1_ptr[j]; |
55 | y += cy; /* add previous carry to subtrahend */ | 55 | y += cy; /* add previous carry to subtrahend */ |
56 | cy = y < cy; /* get out carry from that addition */ | 56 | cy = y < cy; /* get out carry from that addition */ |
57 | y = x - y; /* main subtract */ | 57 | y = x - y; /* main subtract */ |
58 | cy += y > x; /* get out carry from the subtract, combine */ | 58 | cy += y > x; /* get out carry from the subtract, combine */ |
59 | res_ptr[j] = y; | 59 | res_ptr[j] = y; |
60 | } | 60 | } |
61 | while( ++j ); | 61 | while( ++j ); |
62 | 62 | ||
63 | return cy; | 63 | return cy; |
64 | } | 64 | } |
65 | 65 | ||
66 | 66 | ||