home *** CD-ROM | disk | FTP | other *** search
- /*******************************************************************************
- +
- + LEDA 2.1.1 11-15-1991
- +
- +
- + _fix.c
- +
- +
- + Copyright (c) 1991 by Max-Planck-Institut fuer Informatik
- + Im Stadtwald, 6600 Saarbruecken, FRG
- + All rights reserved.
- +
- *******************************************************************************/
-
-
-
- /* For compatibility with gcc */
-
- #ifndef __GNUG__
-
- #define BITS_PER_WORD 32
- #define HIGH_BIT_INT_COEFF (1 << (BITS_PER_WORD - 1))
- #define HIGH_BIT_COEFF (2 * (double) (1 << (BITS_PER_WORD - 2)))
-
- long __fixunsdfsi (a)
- double a;
- {
- if (a < HIGH_BIT_COEFF)
- return (long)a;
- /* Convert large positive numbers to smaller ones,
- then increase again after you have a fixed point number. */
- else
- return ((long) (a - HIGH_BIT_COEFF)) + HIGH_BIT_INT_COEFF;
- }
-
-
- #ifdef sparc
-
- asm (".global _save_registers");
- asm ("_save_registers:");
- asm ("st %i0,[%fp+68]");
- asm ("st %i1,[%fp+72]");
- asm ("st %i2,[%fp+76]");
- asm ("st %i3,[%fp+80]");
- asm ("st %i4,[%fp+84]");
- asm ("retl");
- asm ("st %i5,[%fp+88]");
-
- #else
- void save_registers() {};
-
- #endif
-
- #else
- void save_registers() {};
-
- #endif
-
-