#ifndef MBEDTLS_BN_MUL_H
#define MBEDTLS_BN_MUL_H
#include "mbedtls/build_info.h"
#include "mbedtls/bignum.h"
#if defined(MBEDTLS_HAVE_INT32)
#define MBEDTLS_BYTES_TO_T_UINT_4 …
#define MBEDTLS_BYTES_TO_T_UINT_2 …
#define MBEDTLS_BYTES_TO_T_UINT_8 …
#else
#define MBEDTLS_BYTES_TO_T_UINT_8(a, b, c, d, e, f, g, h) …
#define MBEDTLS_BYTES_TO_T_UINT_4(a, b, c, d) …
#define MBEDTLS_BYTES_TO_T_UINT_2(a, b) …
#endif
#if defined(MBEDTLS_HAVE_ASM)
#if defined(__GNUC__) && \
( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 )
#if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__)
#define MULADDC_CANNOT_USE_EBX
#endif
#if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#if defined(MBEDTLS_HAVE_SSE2)
#define MULADDC_X8_INIT …
#define MULADDC_X8_CORE …
#define MULADDC_X8_STOP … \
#endif
#endif
#if defined(__amd64__) || defined (__x86_64__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#if defined(__aarch64__) && (UINTPTR_MAX == 0xfffffffful || UINTPTR_MAX == 0xfffffffffffffffful)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#if defined(__mc68020__) || defined(__mcpu32__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#define MULADDC_X8_INIT …
#define MULADDC_X8_CORE …
#define MULADDC_X8_STOP …
#endif
#if defined(__powerpc64__) || defined(__ppc64__)
#if defined(__MACH__) && defined(__APPLE__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#else
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#elif defined(__powerpc__) || defined(__ppc__)
#if defined(__MACH__) && defined(__APPLE__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#else
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#endif
#if 0 && defined(__sparc__)
#if defined(__sparc64__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#else
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#endif
#if defined(__microblaze__) || defined(microblaze)
#define MULADDC_X1_INIT …
#if(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
#define MULADDC_LHUI …
#else
#define MULADDC_LHUI …
#endif
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#if defined(__tricore__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#if defined(__arm__)
#if defined(__thumb__) && !defined(__thumb2__)
#if defined(MBEDTLS_COMPILER_IS_GCC)
#if !defined(__OPTIMIZE__) && defined(__GNUC__)
#define MULADDC_SCRATCH …
#define MULADDC_PRESERVE_SCRATCH …
#define MULADDC_RESTORE_SCRATCH …
#define MULADDC_SCRATCH_CLOBBER …
#else
#define MULADDC_SCRATCH …
#define MULADDC_PRESERVE_SCRATCH …
#define MULADDC_RESTORE_SCRATCH …
#define MULADDC_SCRATCH_CLOBBER …
#endif
#define MULADDC_X1_INIT … \
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#elif (__ARM_ARCH >= 6) && \
defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#define MULADDC_X2_INIT …
#define MULADDC_X2_CORE …
#define MULADDC_X2_STOP …
#else
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#endif
#if defined(__alpha__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#if defined(__mips__) && !defined(__mips64)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#endif
#if (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#if defined(MBEDTLS_HAVE_SSE2)
#define EMIT …
#define MULADDC_X8_INIT …
#define MULADDC_X8_CORE …
#define MULADDC_X8_STOP …
#endif
#endif
#endif
#if !defined(MULADDC_X1_CORE)
#if defined(MBEDTLS_HAVE_UDBL)
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#else
#define MULADDC_X1_INIT …
#define MULADDC_X1_CORE …
#define MULADDC_X1_STOP …
#endif
#endif
#if !defined(MULADDC_X2_CORE)
#define MULADDC_X2_INIT …
#define MULADDC_X2_STOP …
#define MULADDC_X2_CORE …
#endif
#if !defined(MULADDC_X4_CORE)
#define MULADDC_X4_INIT …
#define MULADDC_X4_STOP …
#define MULADDC_X4_CORE …
#endif
#if !defined(MULADDC_X8_CORE)
#define MULADDC_X8_INIT …
#define MULADDC_X8_STOP …
#define MULADDC_X8_CORE …
#endif
#endif