OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.target/] [x86_64/] [abi/] [defines.h] - Diff between revs 328 and 338

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 328 Rev 338
#ifndef DEFINED_DEFINES_H
#ifndef DEFINED_DEFINES_H
#define DEFINED_DEFINES_H
#define DEFINED_DEFINES_H
 
 
/* Get __m64 and __m128. */
/* Get __m64 and __m128. */
#include <xmmintrin.h>
#include <xmmintrin.h>
 
 
typedef unsigned long ulong;
typedef unsigned long ulong;
typedef long double ldouble;
typedef long double ldouble;
 
 
/* These defines determines what part of the test should be run.  When
/* These defines determines what part of the test should be run.  When
   GCC implements these parts, the defines should be uncommented to
   GCC implements these parts, the defines should be uncommented to
   enable testing.  */
   enable testing.  */
 
 
/* Scalar type __int128.  */
/* Scalar type __int128.  */
/* #define CHECK_INT128 */
/* #define CHECK_INT128 */
 
 
/* Scalar type long double.  */
/* Scalar type long double.  */
#define CHECK_LONG_DOUBLE
#define CHECK_LONG_DOUBLE
 
 
/* Scalar type __float128.  */
/* Scalar type __float128.  */
/* #define CHECK_FLOAT128 */
/* #define CHECK_FLOAT128 */
 
 
/* Scalar types __m64 and __m128.  */
/* Scalar types __m64 and __m128.  */
#define CHECK_M64_M128
#define CHECK_M64_M128
 
 
/* Returning of complex type.  */
/* Returning of complex type.  */
#define CHECK_COMPLEX
#define CHECK_COMPLEX
 
 
/* Structs with size >= 16.  */
/* Structs with size >= 16.  */
#define CHECK_LARGER_STRUCTS
#define CHECK_LARGER_STRUCTS
 
 
/* Checks for passing floats and doubles.  */
/* Checks for passing floats and doubles.  */
#define CHECK_FLOAT_DOUBLE_PASSING
#define CHECK_FLOAT_DOUBLE_PASSING
 
 
/* Union passing with not-extremely-simple unions.  */
/* Union passing with not-extremely-simple unions.  */
#define CHECK_LARGER_UNION_PASSING
#define CHECK_LARGER_UNION_PASSING
 
 
/* Variable args.  */
/* Variable args.  */
#define CHECK_VARARGS
#define CHECK_VARARGS
 
 
/* Check argument passing and returning for scalar types with sizeof = 16.  */
/* Check argument passing and returning for scalar types with sizeof = 16.  */
/* TODO: Implement these tests. Don't activate them for now.  */
/* TODO: Implement these tests. Don't activate them for now.  */
#define CHECK_LARGE_SCALAR_PASSING
#define CHECK_LARGE_SCALAR_PASSING
 
 
/* Defines for sizing and alignment.  */
/* Defines for sizing and alignment.  */
 
 
#define TYPE_SIZE_CHAR         1
#define TYPE_SIZE_CHAR         1
#define TYPE_SIZE_SHORT        2
#define TYPE_SIZE_SHORT        2
#define TYPE_SIZE_INT          4
#define TYPE_SIZE_INT          4
#define TYPE_SIZE_LONG         8
#define TYPE_SIZE_LONG         8
#define TYPE_SIZE_LONG_LONG    8
#define TYPE_SIZE_LONG_LONG    8
#define TYPE_SIZE_INT128       16
#define TYPE_SIZE_INT128       16
#define TYPE_SIZE_FLOAT        4
#define TYPE_SIZE_FLOAT        4
#define TYPE_SIZE_DOUBLE       8
#define TYPE_SIZE_DOUBLE       8
#define TYPE_SIZE_LONG_DOUBLE  16
#define TYPE_SIZE_LONG_DOUBLE  16
#define TYPE_SIZE_FLOAT128     16
#define TYPE_SIZE_FLOAT128     16
#define TYPE_SIZE_M64          8
#define TYPE_SIZE_M64          8
#define TYPE_SIZE_M128         16
#define TYPE_SIZE_M128         16
#define TYPE_SIZE_ENUM         4
#define TYPE_SIZE_ENUM         4
#define TYPE_SIZE_POINTER      8
#define TYPE_SIZE_POINTER      8
 
 
#define TYPE_ALIGN_CHAR        1
#define TYPE_ALIGN_CHAR        1
#define TYPE_ALIGN_SHORT       2
#define TYPE_ALIGN_SHORT       2
#define TYPE_ALIGN_INT         4
#define TYPE_ALIGN_INT         4
#define TYPE_ALIGN_LONG        8
#define TYPE_ALIGN_LONG        8
#define TYPE_ALIGN_LONG_LONG   8
#define TYPE_ALIGN_LONG_LONG   8
#define TYPE_ALIGN_INT128      16
#define TYPE_ALIGN_INT128      16
#define TYPE_ALIGN_FLOAT       4
#define TYPE_ALIGN_FLOAT       4
#define TYPE_ALIGN_DOUBLE      8
#define TYPE_ALIGN_DOUBLE      8
#define TYPE_ALIGN_LONG_DOUBLE 16
#define TYPE_ALIGN_LONG_DOUBLE 16
#define TYPE_ALIGN_FLOAT128    16
#define TYPE_ALIGN_FLOAT128    16
#define TYPE_ALIGN_M64         8
#define TYPE_ALIGN_M64         8
#define TYPE_ALIGN_M128        16
#define TYPE_ALIGN_M128        16
#define TYPE_ALIGN_ENUM        4
#define TYPE_ALIGN_ENUM        4
#define TYPE_ALIGN_POINTER     8
#define TYPE_ALIGN_POINTER     8
 
 
/* These defines control the building of the list of types to check. There
/* These defines control the building of the list of types to check. There
   is a string identifying the type (with a comma after), a size of the type
   is a string identifying the type (with a comma after), a size of the type
   (also with a comma and an integer for adding to the total amount of types)
   (also with a comma and an integer for adding to the total amount of types)
   and an alignment of the type (which is currently not really needed since
   and an alignment of the type (which is currently not really needed since
   the abi specifies that alignof == sizeof for all scalar types).  */
   the abi specifies that alignof == sizeof for all scalar types).  */
#ifdef CHECK_INT128
#ifdef CHECK_INT128
#define CI128_STR "__int128",
#define CI128_STR "__int128",
#define CI128_SIZ TYPE_SIZE_INT128,
#define CI128_SIZ TYPE_SIZE_INT128,
#define CI128_ALI TYPE_ALIGN_INT128,
#define CI128_ALI TYPE_ALIGN_INT128,
#define CI128_RET "???",
#define CI128_RET "???",
#else
#else
#define CI128_STR
#define CI128_STR
#define CI128_SIZ
#define CI128_SIZ
#define CI128_ALI
#define CI128_ALI
#define CI128_RET
#define CI128_RET
#endif
#endif
#ifdef CHECK_LONG_DOUBLE
#ifdef CHECK_LONG_DOUBLE
#define CLD_STR "long double",
#define CLD_STR "long double",
#define CLD_SIZ TYPE_SIZE_LONG_DOUBLE,
#define CLD_SIZ TYPE_SIZE_LONG_DOUBLE,
#define CLD_ALI TYPE_ALIGN_LONG_DOUBLE,
#define CLD_ALI TYPE_ALIGN_LONG_DOUBLE,
#define CLD_RET "x87_regs[0]._ldouble",
#define CLD_RET "x87_regs[0]._ldouble",
#else
#else
#define CLD_STR
#define CLD_STR
#define CLD_SIZ
#define CLD_SIZ
#define CLD_ALI
#define CLD_ALI
#define CLD_RET
#define CLD_RET
#endif
#endif
#ifdef CHECK_FLOAT128
#ifdef CHECK_FLOAT128
#define CF128_STR "__float128",
#define CF128_STR "__float128",
#define CF128_SIZ TYPE_SIZE_FLOAT128,
#define CF128_SIZ TYPE_SIZE_FLOAT128,
#define CF128_ALI TYPE_ALIGN_FLOAT128, 
#define CF128_ALI TYPE_ALIGN_FLOAT128, 
#define CF128_RET "???",
#define CF128_RET "???",
#else
#else
#define CF128_STR
#define CF128_STR
#define CF128_SIZ
#define CF128_SIZ
#define CF128_ALI
#define CF128_ALI
#define CF128_RET
#define CF128_RET
#endif
#endif
#ifdef CHECK_M64_M128
#ifdef CHECK_M64_M128
#define CMM_STR "__m64", "__m128",
#define CMM_STR "__m64", "__m128",
#define CMM_SIZ TYPE_SIZE_M64, TYPE_SIZE_M128,
#define CMM_SIZ TYPE_SIZE_M64, TYPE_SIZE_M128,
#define CMM_ALI TYPE_ALIGN_M64, TYPE_ALIGN_M128,
#define CMM_ALI TYPE_ALIGN_M64, TYPE_ALIGN_M128,
#define CMM_RET "???", "???",
#define CMM_RET "???", "???",
#else
#else
#define CMM_STR
#define CMM_STR
#define CMM_SIZ
#define CMM_SIZ
#define CMM_ALI
#define CMM_ALI
#define CMM_RET
#define CMM_RET
#endif
#endif
 
 
/* Used in size and alignment tests.  */
/* Used in size and alignment tests.  */
enum dummytype { enumtype };
enum dummytype { enumtype };
 
 
extern void abort (void);
extern void abort (void);
 
 
/* Assertion macro.  */
/* Assertion macro.  */
#define assert(test) if (!(test)) abort()
#define assert(test) if (!(test)) abort()
 
 
#ifdef __GNUC__
#ifdef __GNUC__
#define ATTRIBUTE_UNUSED __attribute__((__unused__))
#define ATTRIBUTE_UNUSED __attribute__((__unused__))
#else
#else
#define ATTRIBUTE_UNUSED
#define ATTRIBUTE_UNUSED
#endif
#endif
 
 
#ifdef __GNUC__
#ifdef __GNUC__
#define PACKED __attribute__((__packed__))
#define PACKED __attribute__((__packed__))
#else
#else
#warning Some tests will fail due to missing __packed__ support
#warning Some tests will fail due to missing __packed__ support
#define PACKED
#define PACKED
#endif
#endif
 
 
#endif /* DEFINED_DEFINES_H */
#endif /* DEFINED_DEFINES_H */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.