Go to the documentation of this file.
23 #ifndef ASCON_SELECT_BACKEND_H
24 #define ASCON_SELECT_BACKEND_H
29 #if defined(ASCON_FORCE_C32)
32 #define ASCON_BACKEND_C32 1
33 #define ASCON_BACKEND_SLICED32 1
35 #elif defined(ASCON_FORCE_C64)
38 #define ASCON_BACKEND_C64 1
39 #define ASCON_BACKEND_SLICED64 1
41 #elif defined(ASCON_FORCE_DIRECT_XOR) || defined(ASCON_FORCE_GENERIC)
44 #define ASCON_BACKEND_C64_DIRECT_XOR 1
45 #define ASCON_BACKEND_DIRECT_XOR 1
47 #elif defined(__AVR__) && __AVR_ARCH__ >= 5
50 #define ASCON_BACKEND_AVR5 1
51 #define ASCON_BACKEND_DIRECT_XOR 1
52 #define ASCON_BACKEND_FREE 1
54 #elif defined(__ARM_ARCH_8A) && defined(__ARM_ARCH_ISA_A64)
57 #define ASCON_BACKEND_ARMV8A 1
58 #define ASCON_BACKEND_SLICED64 1
59 #define ASCON_BACKEND_FREE 1
61 #elif defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH == 8 && defined(__ARM_ARCH_8M__)
65 #define ASCON_BACKEND_ARMV7M 1
66 #define ASCON_BACKEND_SLICED32 1
68 #elif defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH == 7
72 #define ASCON_BACKEND_ARMV7M 1
73 #define ASCON_BACKEND_SLICED32 1
75 #elif defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH == 6 && defined(__ARM_ARCH_6M__)
78 #define ASCON_BACKEND_ARMV6M 1
79 #define ASCON_BACKEND_SLICED32 1
81 #elif defined(__ARM_ARCH) && __ARM_ARCH == 6
84 #define ASCON_BACKEND_ARMV6 1
85 #define ASCON_BACKEND_SLICED32 1
87 #elif defined(__XTENSA__)
90 #define ASCON_BACKEND_XTENSA 1
91 #define ASCON_BACKEND_SLICED64 1
92 #if !defined(__XTENSA_WINDOWED_ABI__)
93 #define ASCON_BACKEND_FREE 1
96 #elif (defined(__x86_64) || defined(__x86_64__)) && !defined(__CYGWIN__) && !defined(_WIN64)
100 #define ASCON_BACKEND_X86_64 1
101 #define ASCON_BACKEND_SLICED64 1
102 #define ASCON_BACKEND_FREE 1
104 #elif defined(__i386) || defined(__i386__)
107 #define ASCON_BACKEND_I386 1
108 #define ASCON_BACKEND_SLICED32 1
110 #elif defined(__m68k) || defined(__m68k__)
113 #define ASCON_BACKEND_M68K 1
114 #define ASCON_BACKEND_SLICED32 1
116 #elif defined(__riscv) && __riscv_xlen == 64
119 #define ASCON_BACKEND_RISCV64I 1
120 #define ASCON_BACKEND_SLICED64 1
121 #define ASCON_BACKEND_FREE 1
123 #elif defined(__riscv) && __riscv_xlen == 32 && defined(__riscv_32e)
126 #define ASCON_BACKEND_RISCV32E 1
127 #define ASCON_BACKEND_SLICED32 1
128 #define ASCON_BACKEND_FREE 1
130 #elif defined(__riscv) && __riscv_xlen == 32
133 #define ASCON_BACKEND_RISCV32I 1
134 #define ASCON_BACKEND_SLICED32 1
135 #define ASCON_BACKEND_FREE 1
137 #elif defined(__x86_64) || defined(__x86_64__) || \
138 defined(__aarch64__) || defined(__ARM_ARCH_ISA_A64) || \
139 defined(_M_AMD64) || defined(_M_X64) || defined(_M_IA64) || \
140 (defined(__riscv) && __riscv_xlen == 64)
143 #define ASCON_BACKEND_C64 1
144 #define ASCON_BACKEND_SLICED64 1
149 #define ASCON_BACKEND_C32 1
150 #define ASCON_BACKEND_SLICED32 1