X-Git-Url: https://pd.if.org/git/?p=lice;a=blobdiff_plain;f=arch_amd64.h;fp=arch_amd64.h;h=a770cbef6b56afc93526701a6a0bc0df528b6f35;hp=0000000000000000000000000000000000000000;hb=aaf71be0a6e44d207803dedebbc646bf25b6c152;hpb=a9511e8a95a13585126c4a26a827463801e67d04 diff --git a/arch_amd64.h b/arch_amd64.h new file mode 100644 index 0000000..a770cbe --- /dev/null +++ b/arch_amd64.h @@ -0,0 +1,42 @@ +#ifndef LICE_ARCH_AMD64_HDR +/* + * File: arch_amd64.h + * Isolates AMD64 / SystemV ABI specific details that are used in + * a variety of places of the compiler to target AMD64. + */ + +/* + * Constants: Native type sizes + * + * The following are macros which describe the sizes of various native + * data types, they should reflect their true sizes on the given + * architecture unless mentioned otherwise by a specific ABI. + * + * ARCH_TYPE_SIZE_CHAR - Size of a char + * ARCH_TYPE_SIZE_LONG - Size of a long + * ARCH_TYPE_SIZE_LLONG - Size of a long long + * ARCH_TYPE_SIZE_INT - Size of a int + * ARCH_TYPE_SIZE_SHORT - Size of a short + * ARCH_TYPE_SIZE_FLOAT - Size of a float + * ARCH_TYPE_SIZE_DOUBLE - Size of a double + * ARCH_TYPE_SIZE_LDOUBLE - Size of a long double + * ARCH_TYPE_SIZE_POINTER - Size of a pointer + */ +#define ARCH_TYPE_SIZE_CHAR 1 +#define ARCH_TYPE_SIZE_LONG 8 +#define ARCH_TYPE_SIZE_LLONG 8 +#define ARCH_TYPE_SIZE_INT 4 +#define ARCH_TYPE_SIZE_SHORT 2 +#define ARCH_TYPE_SIZE_FLOAT 4 +#define ARCH_TYPE_SIZE_DOUBLE 8 +#define ARCH_TYPE_SIZE_LDOUBLE 8 +#define ARCH_TYPE_SIZE_POINTER 8 + +/* + * Macro: ARCH_ALIGNMENT + * The default alignment of structure elements (padding) for the given + * architecture / ABI + */ +#define ARCH_ALIGNMENT 16 + +#endif