xref: /plan9/sys/src/cmd/gs/amd64.h (revision 8deabd962e84f51c67a12f970084955d97d8a8f2)
1*8deabd96SDavid du Colombier /* Parameters derived from machine and compiler architecture. */
2*8deabd96SDavid du Colombier /* This file is generated mechanically by genarch.c. */
3*8deabd96SDavid du Colombier 
4*8deabd96SDavid du Colombier 	 /* ---------------- Scalar alignments ---------------- */
5*8deabd96SDavid du Colombier 
6*8deabd96SDavid du Colombier #define ARCH_ALIGN_SHORT_MOD 2
7*8deabd96SDavid du Colombier #define ARCH_ALIGN_INT_MOD 4
8*8deabd96SDavid du Colombier #define ARCH_ALIGN_LONG_MOD 4
9*8deabd96SDavid du Colombier #define ARCH_ALIGN_PTR_MOD 8
10*8deabd96SDavid du Colombier #define ARCH_ALIGN_FLOAT_MOD 4
11*8deabd96SDavid du Colombier #define ARCH_ALIGN_DOUBLE_MOD 8
12*8deabd96SDavid du Colombier #define ARCH_ALIGN_STRUCT_MOD 4
13*8deabd96SDavid du Colombier 
14*8deabd96SDavid du Colombier 	 /* ---------------- Scalar sizes ---------------- */
15*8deabd96SDavid du Colombier 
16*8deabd96SDavid du Colombier #define ARCH_LOG2_SIZEOF_CHAR 0
17*8deabd96SDavid du Colombier #define ARCH_LOG2_SIZEOF_SHORT 1
18*8deabd96SDavid du Colombier #define ARCH_LOG2_SIZEOF_INT 2
19*8deabd96SDavid du Colombier #define ARCH_LOG2_SIZEOF_LONG 2
20*8deabd96SDavid du Colombier #define ARCH_LOG2_SIZEOF_LONG_LONG 3
21*8deabd96SDavid du Colombier #define ARCH_SIZEOF_PTR 8
22*8deabd96SDavid du Colombier #define ARCH_SIZEOF_FLOAT 4
23*8deabd96SDavid du Colombier #define ARCH_SIZEOF_DOUBLE 8
24*8deabd96SDavid du Colombier #define ARCH_FLOAT_MANTISSA_BITS 24
25*8deabd96SDavid du Colombier #define ARCH_DOUBLE_MANTISSA_BITS 53
26*8deabd96SDavid du Colombier 
27*8deabd96SDavid du Colombier 	 /* ---------------- Unsigned max values ---------------- */
28*8deabd96SDavid du Colombier 
29*8deabd96SDavid du Colombier #define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
30*8deabd96SDavid du Colombier #define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
31*8deabd96SDavid du Colombier #define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
32*8deabd96SDavid du Colombier #define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
33*8deabd96SDavid du Colombier 
34*8deabd96SDavid du Colombier 	 /* ---------------- Cache sizes ---------------- */
35*8deabd96SDavid du Colombier 
36*8deabd96SDavid du Colombier #define ARCH_CACHE1_SIZE 4096
37*8deabd96SDavid du Colombier #define ARCH_CACHE2_SIZE 4194304
38*8deabd96SDavid du Colombier 
39*8deabd96SDavid du Colombier 	 /* ---------------- Miscellaneous ---------------- */
40*8deabd96SDavid du Colombier 
41*8deabd96SDavid du Colombier #define ARCH_IS_BIG_ENDIAN 0
42*8deabd96SDavid du Colombier #define ARCH_PTRS_ARE_SIGNED 0
43*8deabd96SDavid du Colombier #define ARCH_FLOATS_ARE_IEEE 1
44*8deabd96SDavid du Colombier #define ARCH_ARITH_RSHIFT 2
45*8deabd96SDavid du Colombier #define ARCH_CAN_SHIFT_FULL_LONG 0
46*8deabd96SDavid du Colombier #define ARCH_DIV_NEG_POS_TRUNCATES 1
47