Path: blob/main/lib/libc/powerpc64/softfloat/powerpc-gcc.h
39491 views
/* $NetBSD: arm-gcc.h,v 1.2 2001/02/21 18:09:25 bjh21 Exp $ */12/*3-------------------------------------------------------------------------------4One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined.5-------------------------------------------------------------------------------6*/7#define BIGENDIAN89/*10-------------------------------------------------------------------------------11The macro `BITS64' can be defined to indicate that 64-bit integer types are12supported by the compiler.13-------------------------------------------------------------------------------14*/15#define BITS641617/*18-------------------------------------------------------------------------------19Each of the following `typedef's defines the most convenient type that holds20integers of at least as many bits as specified. For example, `uint8' should21be the most convenient type that can hold unsigned integers of as many as228 bits. The `flag' type must be able to hold either a 0 or 1. For most23implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed24to the same as `int'.25-------------------------------------------------------------------------------26*/27typedef int flag;28typedef unsigned int uint8;29typedef int int8;30typedef unsigned int uint16;31typedef int int16;32typedef unsigned int uint32;33typedef signed int int32;34#ifdef BITS6435typedef unsigned long long int uint64;36typedef signed long long int int64;37#endif3839/*40-------------------------------------------------------------------------------41Each of the following `typedef's defines a type that holds integers42of _exactly_ the number of bits specified. For instance, for most43implementation of C, `bits16' and `sbits16' should be `typedef'ed to44`unsigned short int' and `signed short int' (or `short int'), respectively.45-------------------------------------------------------------------------------46*/47typedef unsigned char bits8;48typedef signed char sbits8;49typedef unsigned short int bits16;50typedef signed short int sbits16;51typedef unsigned int bits32;52typedef signed int sbits32;53#ifdef BITS6454typedef unsigned long long int bits64;55typedef signed long long int sbits64;56#endif5758#ifdef BITS6459/*60-------------------------------------------------------------------------------61The `LIT64' macro takes as its argument a textual integer literal and62if necessary ``marks'' the literal as having a 64-bit integer type.63For example, the GNU C Compiler (`gcc') requires that 64-bit literals be64appended with the letters `LL' standing for `long long', which is `gcc's65name for the 64-bit integer type. Some compilers may allow `LIT64' to be66defined as the identity macro: `#define LIT64( a ) a'.67-------------------------------------------------------------------------------68*/69#define LIT64( a ) a##LL70#endif7172/*73-------------------------------------------------------------------------------74The macro `INLINE' can be used before functions that should be inlined. If75a compiler does not support explicit inlining, this macro should be defined76to be `static'.77-------------------------------------------------------------------------------78*/79#define INLINE static __inline8081/*82-------------------------------------------------------------------------------83The ARM FPA is odd in that it stores doubles high-order word first, no matter84what the endianness of the CPU. VFP is sane.85-------------------------------------------------------------------------------86*/87#if defined(SOFTFLOAT_FOR_GCC)88#define FLOAT64_DEMANGLE(a) (a)89#define FLOAT64_MANGLE(a) (a)90#endif919293