//===----------------------------------------------------------------------===//
 
//
 
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 
// See https://llvm.org/LICENSE.txt for license information.
 
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
//
 
//===----------------------------------------------------------------------===//
 
 
 
#ifndef ____LIBUNWIND_CONFIG_H__
 
#define ____LIBUNWIND_CONFIG_H__
 
 
 
#define _LIBUNWIND_VERSION 15000
 
 
 
#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
 
    !defined(__ARM_DWARF_EH__) && !defined(__SEH__)
 
#define _LIBUNWIND_ARM_EHABI
 
#endif
 
 
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86       8
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64    32
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC       112
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64     116
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64     95
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM       287
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K      32
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS      65
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC     31
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64   31
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON   34
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV     64
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE        143
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X     83
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH 64
 
 
 
#if defined(_LIBUNWIND_IS_NATIVE_ONLY)
 
# if defined(__linux__)
 
#  define _LIBUNWIND_TARGET_LINUX 1
 
# endif
 
# if defined(__i386__)
 
#  define _LIBUNWIND_TARGET_I386
 
#  define _LIBUNWIND_CONTEXT_SIZE 8
 
#  define _LIBUNWIND_CURSOR_SIZE 15
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86
 
# elif defined(__x86_64__)
 
#  define _LIBUNWIND_TARGET_X86_64 1
 
#  if defined(_WIN64)
 
#    define _LIBUNWIND_CONTEXT_SIZE 54
 
#    ifdef __SEH__
 
#      define _LIBUNWIND_CURSOR_SIZE 204
 
#    else
 
#      define _LIBUNWIND_CURSOR_SIZE 66
 
#    endif
 
#  else
 
#    define _LIBUNWIND_CONTEXT_SIZE 21
 
#    define _LIBUNWIND_CURSOR_SIZE 33
 
#  endif
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64
 
# elif defined(__powerpc64__)
 
#  define _LIBUNWIND_TARGET_PPC64 1
 
#  define _LIBUNWIND_CONTEXT_SIZE 167
 
#  define _LIBUNWIND_CURSOR_SIZE 179
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
 
# elif defined(__powerpc__)
 
#  define _LIBUNWIND_TARGET_PPC 1
 
#  define _LIBUNWIND_CONTEXT_SIZE 117
 
#  define _LIBUNWIND_CURSOR_SIZE 124
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC
 
# elif defined(__aarch64__)
 
#  define _LIBUNWIND_TARGET_AARCH64 1
 
#  define _LIBUNWIND_CONTEXT_SIZE 66
 
#  if defined(__SEH__)
 
#    define _LIBUNWIND_CURSOR_SIZE 164
 
#  else
 
#    define _LIBUNWIND_CURSOR_SIZE 78
 
#  endif
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64
 
# elif defined(__arm__)
 
#  define _LIBUNWIND_TARGET_ARM 1
 
#  if defined(__SEH__)
 
#    define _LIBUNWIND_CONTEXT_SIZE 42
 
#    define _LIBUNWIND_CURSOR_SIZE 80
 
#  elif defined(__ARM_WMMX)
 
#    define _LIBUNWIND_CONTEXT_SIZE 61
 
#    define _LIBUNWIND_CURSOR_SIZE 68
 
#  else
 
#    define _LIBUNWIND_CONTEXT_SIZE 42
 
#    define _LIBUNWIND_CURSOR_SIZE 49
 
#  endif
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM
 
# elif defined(__or1k__)
 
#  define _LIBUNWIND_TARGET_OR1K 1
 
#  define _LIBUNWIND_CONTEXT_SIZE 16
 
#  define _LIBUNWIND_CURSOR_SIZE 24
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K
 
# elif defined(__hexagon__)
 
#  define _LIBUNWIND_TARGET_HEXAGON 1
 
// Values here change when : Registers.hpp - hexagon_thread_state_t change
 
#  define _LIBUNWIND_CONTEXT_SIZE 18
 
#  define _LIBUNWIND_CURSOR_SIZE 24
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON
 
# elif defined(__mips__)
 
#  if defined(_ABIO32) && _MIPS_SIM == _ABIO32
 
#    define _LIBUNWIND_TARGET_MIPS_O32 1
 
#    if defined(__mips_hard_float)
 
#      define _LIBUNWIND_CONTEXT_SIZE 50
 
#      define _LIBUNWIND_CURSOR_SIZE 57
 
#    else
 
#      define _LIBUNWIND_CONTEXT_SIZE 18
 
#      define _LIBUNWIND_CURSOR_SIZE 24
 
#    endif
 
#  elif defined(_ABIN32) && _MIPS_SIM == _ABIN32
 
#    define _LIBUNWIND_TARGET_MIPS_NEWABI 1
 
#    if defined(__mips_hard_float)
 
#      define _LIBUNWIND_CONTEXT_SIZE 67
 
#      define _LIBUNWIND_CURSOR_SIZE 74
 
#    else
 
#      define _LIBUNWIND_CONTEXT_SIZE 35
 
#      define _LIBUNWIND_CURSOR_SIZE 42
 
#    endif
 
#  elif defined(_ABI64) && _MIPS_SIM == _ABI64
 
#    define _LIBUNWIND_TARGET_MIPS_NEWABI 1
 
#    if defined(__mips_hard_float)
 
#      define _LIBUNWIND_CONTEXT_SIZE 67
 
#      define _LIBUNWIND_CURSOR_SIZE 79
 
#    else
 
#      define _LIBUNWIND_CONTEXT_SIZE 35
 
#      define _LIBUNWIND_CURSOR_SIZE 47
 
#    endif
 
#  else
 
#    error "Unsupported MIPS ABI and/or environment"
 
#  endif
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS
 
#elif defined(__sparc__) && defined(__arch64__)
 
#define _LIBUNWIND_TARGET_SPARC64 1
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER                                      \
 
  _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64
 
#define _LIBUNWIND_CONTEXT_SIZE 33
 
#define _LIBUNWIND_CURSOR_SIZE 45
 
# elif defined(__sparc__)
 
  #define _LIBUNWIND_TARGET_SPARC 1
 
  #define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC
 
  #define _LIBUNWIND_CONTEXT_SIZE 16
 
  #define _LIBUNWIND_CURSOR_SIZE 23
 
# elif defined(__riscv)
 
#  define _LIBUNWIND_TARGET_RISCV 1
 
#  if defined(__riscv_flen)
 
#   define RISCV_FLEN __riscv_flen
 
#  else
 
#   define RISCV_FLEN 0
 
#  endif
 
#  define _LIBUNWIND_CONTEXT_SIZE (32 * (__riscv_xlen + RISCV_FLEN) / 64)
 
#  if __riscv_xlen == 32
 
#   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 7)
 
#  elif __riscv_xlen == 64
 
#   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 12)
 
#  else
 
#   error "Unsupported RISC-V ABI"
 
#  endif
 
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV
 
# elif defined(__ve__)
 
#  define _LIBUNWIND_TARGET_VE 1
 
#  define _LIBUNWIND_CONTEXT_SIZE 67
 
#  define _LIBUNWIND_CURSOR_SIZE 79
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE
 
# elif defined(__s390x__)
 
#  define _LIBUNWIND_TARGET_S390X 1
 
#  define _LIBUNWIND_CONTEXT_SIZE 34
 
#  define _LIBUNWIND_CURSOR_SIZE 46
 
#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X
 
#elif defined(__loongarch__)
 
#define _LIBUNWIND_TARGET_LOONGARCH 1
 
#if __loongarch_grlen == 64
 
#define _LIBUNWIND_CONTEXT_SIZE 65
 
#define _LIBUNWIND_CURSOR_SIZE 77
 
#else
 
#error "Unsupported LoongArch ABI"
 
#endif
 
#define _LIBUNWIND_HIGHEST_DWARF_REGISTER                                      \
 
  _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH
 
# else
 
#  error "Unsupported architecture."
 
# endif
 
#else // !_LIBUNWIND_IS_NATIVE_ONLY
 
# define _LIBUNWIND_TARGET_I386
 
# define _LIBUNWIND_TARGET_X86_64 1
 
# define _LIBUNWIND_TARGET_PPC 1
 
# define _LIBUNWIND_TARGET_PPC64 1
 
# define _LIBUNWIND_TARGET_AARCH64 1
 
# define _LIBUNWIND_TARGET_ARM 1
 
# define _LIBUNWIND_TARGET_OR1K 1
 
# define _LIBUNWIND_TARGET_MIPS_O32 1
 
# define _LIBUNWIND_TARGET_MIPS_NEWABI 1
 
# define _LIBUNWIND_TARGET_SPARC 1
 
# define _LIBUNWIND_TARGET_SPARC64 1
 
# define _LIBUNWIND_TARGET_HEXAGON 1
 
# define _LIBUNWIND_TARGET_RISCV 1
 
# define _LIBUNWIND_TARGET_VE 1
 
# define _LIBUNWIND_TARGET_S390X 1
 
#define _LIBUNWIND_TARGET_LOONGARCH 1
 
# define _LIBUNWIND_CONTEXT_SIZE 167
 
# define _LIBUNWIND_CURSOR_SIZE 179
 
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287
 
#endif // _LIBUNWIND_IS_NATIVE_ONLY
 
 
 
#endif // ____LIBUNWIND_CONFIG_H__