packages feed

aihc-cpp-2.0.0.0: bench/include/MachDeps.h

/*
 * A stand-in for GHC's MachDeps.h, for the benchmark corpus only.
 *
 * Around a hundred modules in a Stackage snapshot include this header. In a
 * real build GHC supplies it from the RTS include directory; a bare source tree
 * has no such directory, so those modules fail to preprocess and drop out of
 * the measurement — and the tools disagree about whether that is fatal, which
 * made the failure counts describe include resolution rather than the
 * preprocessors.
 *
 * The values below describe a conventional 64-bit platform. They are not read
 * for accuracy: nothing here is compiled, only preprocessed, so all that
 * matters is that the macros are defined and that arithmetic in #if conditions
 * evaluates. This is written from the macro names GHC's header defines rather
 * than copied from it, so that this repository stays under a single licence.
 */

#pragma once

#define WORD_SIZE_IN_BITS 64
#define WORD_SIZE_IN_BITS_FLOAT 64

#define SIZEOF_HSCHAR 4
#define ALIGNMENT_HSCHAR 4
#define SIZEOF_HSINT 8
#define ALIGNMENT_HSINT 8
#define SIZEOF_HSWORD 8
#define ALIGNMENT_HSWORD 8
#define SIZEOF_HSFLOAT 4
#define ALIGNMENT_HSFLOAT 4
#define SIZEOF_HSDOUBLE 8
#define ALIGNMENT_HSDOUBLE 8
#define SIZEOF_HSPTR 8
#define ALIGNMENT_HSPTR 8
#define SIZEOF_HSFUNPTR 8
#define ALIGNMENT_HSFUNPTR 8
#define SIZEOF_HSSTABLEPTR 8
#define ALIGNMENT_HSSTABLEPTR 8

#define SIZEOF_INT8 1
#define ALIGNMENT_INT8 1
#define SIZEOF_WORD8 1
#define ALIGNMENT_WORD8 1
#define SIZEOF_INT16 2
#define ALIGNMENT_INT16 2
#define SIZEOF_WORD16 2
#define ALIGNMENT_WORD16 2
#define SIZEOF_INT32 4
#define ALIGNMENT_INT32 4
#define SIZEOF_WORD32 4
#define ALIGNMENT_WORD32 4
#define SIZEOF_INT64 8
#define ALIGNMENT_INT64 8
#define SIZEOF_WORD64 8
#define ALIGNMENT_WORD64 8

#define SIZEOF_VOID_P 8
#define ALIGNMENT_VOID_P 8
#define SIZEOF_LONG 8
#define ALIGNMENT_LONG 8
#define SIZEOF_UNSIGNED_LONG 8
#define ALIGNMENT_UNSIGNED_LONG 8

#define TAG_BITS 3
#define TAG_MASK ((1 << TAG_BITS) - 1)