1 #ifndef JEMALLOC_INTERNAL_QUANTUM_H 2 #define JEMALLOC_INTERNAL_QUANTUM_H 3 4 /* 5 * Minimum allocation alignment is 2^LG_QUANTUM bytes (ignoring tiny size 6 * classes). 7 */ 8 #ifndef LG_QUANTUM 9 # if (defined(__i386__) || defined(_M_IX86)) 10 # define LG_QUANTUM 4 11 # endif 12 # ifdef __ia64__ 13 # define LG_QUANTUM 4 14 # endif 15 # ifdef __alpha__ 16 # define LG_QUANTUM 4 17 # endif 18 # if (defined(__sparc64__) || defined(__sparcv9) || defined(__sparc_v9__)) 19 # define LG_QUANTUM 4 20 # endif 21 # if (defined(__amd64__) || defined(__x86_64__) || defined(_M_X64)) 22 # define LG_QUANTUM 4 23 # endif 24 # ifdef __arm__ 25 # define LG_QUANTUM 3 26 # endif 27 # ifdef __aarch64__ 28 # define LG_QUANTUM 4 29 # endif 30 # ifdef __hppa__ 31 # define LG_QUANTUM 4 32 # endif 33 # ifdef __loongarch__ 34 # define LG_QUANTUM 4 35 # endif 36 # ifdef __m68k__ 37 # define LG_QUANTUM 3 38 # endif 39 # ifdef __mips__ 40 # if defined(__mips_n32) || defined(__mips_n64) 41 # define LG_QUANTUM 4 42 # else 43 # define LG_QUANTUM 3 44 # endif 45 # endif 46 # ifdef __nios2__ 47 # define LG_QUANTUM 3 48 # endif 49 # ifdef __or1k__ 50 # define LG_QUANTUM 3 51 # endif 52 # ifdef __powerpc__ 53 # define LG_QUANTUM 4 54 # endif 55 # if defined(__riscv) || defined(__riscv__) 56 # define LG_QUANTUM 4 57 # endif 58 # ifdef __s390__ 59 # define LG_QUANTUM 4 60 # endif 61 # if (defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || \ 62 defined(__SH4_SINGLE_ONLY__)) 63 # define LG_QUANTUM 4 64 # endif 65 # ifdef __tile__ 66 # define LG_QUANTUM 4 67 # endif 68 # ifdef __le32__ 69 # define LG_QUANTUM 4 70 # endif 71 # ifdef __arc__ 72 # define LG_QUANTUM 3 73 # endif 74 # ifndef LG_QUANTUM 75 # error "Unknown minimum alignment for architecture; specify via " 76 "--with-lg-quantum" 77 # endif 78 #endif 79 80 #define QUANTUM ((size_t)(1U << LG_QUANTUM)) 81 #define QUANTUM_MASK (QUANTUM - 1) 82 83 /* Return the smallest quantum multiple that is >= a. */ 84 #define QUANTUM_CEILING(a) \ 85 (((a) + QUANTUM_MASK) & ~QUANTUM_MASK) 86 87 #endif /* JEMALLOC_INTERNAL_QUANTUM_H */ 88