Path: blob/main/lib/libc/powerpc/softfloat/powerpc-gcc.h
39530 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#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__8#define LITTLEENDIAN9#else10#define BIGENDIAN11#endif1213/*14-------------------------------------------------------------------------------15The macro `BITS64' can be defined to indicate that 64-bit integer types are16supported by the compiler.17-------------------------------------------------------------------------------18*/19#define BITS642021/*22-------------------------------------------------------------------------------23Each of the following `typedef's defines the most convenient type that holds24integers of at least as many bits as specified. For example, `uint8' should25be the most convenient type that can hold unsigned integers of as many as268 bits. The `flag' type must be able to hold either a 0 or 1. For most27implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed28to the same as `int'.29-------------------------------------------------------------------------------30*/31typedef int flag;32typedef unsigned int uint8;33typedef int int8;34typedef unsigned int uint16;35typedef int int16;36typedef unsigned int uint32;37typedef signed int int32;38#ifdef BITS6439typedef unsigned long long int uint64;40typedef signed long long int int64;41#endif4243/*44-------------------------------------------------------------------------------45Each of the following `typedef's defines a type that holds integers46of _exactly_ the number of bits specified. For instance, for most47implementation of C, `bits16' and `sbits16' should be `typedef'ed to48`unsigned short int' and `signed short int' (or `short int'), respectively.49-------------------------------------------------------------------------------50*/51typedef unsigned char bits8;52typedef signed char sbits8;53typedef unsigned short int bits16;54typedef signed short int sbits16;55typedef unsigned int bits32;56typedef signed int sbits32;57#ifdef BITS6458typedef unsigned long long int bits64;59typedef signed long long int sbits64;60#endif6162#ifdef BITS6463/*64-------------------------------------------------------------------------------65The `LIT64' macro takes as its argument a textual integer literal and66if necessary ``marks'' the literal as having a 64-bit integer type.67For example, the GNU C Compiler (`gcc') requires that 64-bit literals be68appended with the letters `LL' standing for `long long', which is `gcc's69name for the 64-bit integer type. Some compilers may allow `LIT64' to be70defined as the identity macro: `#define LIT64( a ) a'.71-------------------------------------------------------------------------------72*/73#define LIT64( a ) a##LL74#endif7576/*77-------------------------------------------------------------------------------78The macro `INLINE' can be used before functions that should be inlined. If79a compiler does not support explicit inlining, this macro should be defined80to be `static'.81-------------------------------------------------------------------------------82*/83#define INLINE static __inline8485/*86-------------------------------------------------------------------------------87The ARM FPA is odd in that it stores doubles high-order word first, no matter88what the endianness of the CPU. VFP is sane.89-------------------------------------------------------------------------------90*/91#if defined(SOFTFLOAT_FOR_GCC)92#define FLOAT64_DEMANGLE(a) (a)93#define FLOAT64_MANGLE(a) (a)94#endif959697