]> pd.if.org Git - lice/blobdiff - arch_amd64.h
autocommit for files dated 2014-11-17 20:15:16
[lice] / arch_amd64.h
diff --git a/arch_amd64.h b/arch_amd64.h
new file mode 100644 (file)
index 0000000..a770cbe
--- /dev/null
@@ -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