source: trunk/third/binutils/gas/bignum.h @ 16965

Revision 16965, 2.0 KB checked in by ghudson, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r16964, which included commits to RCS files with non-trunk default branches.
Line 
1/* bignum.h-arbitrary precision integers
2   Copyright 1987, 1992 Free Software Foundation, Inc.
3
4   This file is part of GAS, the GNU Assembler.
5
6   GAS is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   GAS is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with GAS; see the file COPYING.  If not, write to
18   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
19
20/***********************************************************************\
21 *                                                                      *
22 *      Arbitrary-precision integer arithmetic.                         *
23 *      For speed, we work in groups of bits, even though this          *
24 *      complicates algorithms.                                         *
25 *      Each group of bits is called a 'littlenum'.                     *
26 *      A bunch of littlenums representing a (possibly large)           *
27 *      integer is called a 'bignum'.                                   *
28 *      Bignums are >= 0.                                               *
29 *                                                                      *
30 \***********************************************************************/
31
32#define LITTLENUM_NUMBER_OF_BITS        (16)
33#define LITTLENUM_RADIX                 (1 << LITTLENUM_NUMBER_OF_BITS)
34#define LITTLENUM_MASK                  (0xFFFF)
35#define LITTLENUM_SHIFT                 (1)
36#define CHARS_PER_LITTLENUM             (1 << LITTLENUM_SHIFT)
37#ifndef BITS_PER_CHAR
38#define BITS_PER_CHAR                   (8)
39#endif
40
41typedef unsigned short LITTLENUM_TYPE;
42
43/* JF truncated this to get around a problem with GCC */
44#define LOG_TO_BASE_2_OF_10 (3.3219280948873623478703194294893901758651)
45/* WARNING: I haven't checked that the trailing digits are correct! */
46
47/* lengths are in sizeof(littlenum)s */
48
49int bignum_copy PARAMS ((LITTLENUM_TYPE * in, int in_length,
50                         LITTLENUM_TYPE * out, int out_length));
51
52/* end of bignum.h */
Note: See TracBrowser for help on using the repository browser.