brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · 980d11e Raw
225 lines · c
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef ____LIBUNWIND_CONFIG_H__10#define ____LIBUNWIND_CONFIG_H__11 12#define _LIBUNWIND_VERSION 1500013 14#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \15    !defined(__ARM_DWARF_EH__) && !defined(__SEH__)16#define _LIBUNWIND_ARM_EHABI17#endif18 19#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86       820#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64    3221#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC       11222#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64     11623#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64     9524#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM       28725#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K      3226#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS      6527#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC     3128#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64   3129#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON   3430#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV     6431#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE        14332#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X     8333#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH 6434 35#if defined(_LIBUNWIND_IS_NATIVE_ONLY)36# if defined(__linux__)37#  define _LIBUNWIND_TARGET_LINUX 138# endif39# if defined(__HAIKU__)40#  define _LIBUNWIND_TARGET_HAIKU 141# endif42# if defined(__i386__)43#  define _LIBUNWIND_TARGET_I38644#  define _LIBUNWIND_CONTEXT_SIZE 845#  define _LIBUNWIND_CURSOR_SIZE 1546#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X8647# elif defined(__x86_64__)48#  define _LIBUNWIND_TARGET_X86_64 149#  if defined(_WIN64)50#    define _LIBUNWIND_CONTEXT_SIZE 5451#    ifdef __SEH__52#      define _LIBUNWIND_CURSOR_SIZE 20453#    else54#      define _LIBUNWIND_CURSOR_SIZE 6655#    endif56#  elif defined(__ILP32__)57#    define _LIBUNWIND_CONTEXT_SIZE 2158#    define _LIBUNWIND_CURSOR_SIZE 2859#  else60#    define _LIBUNWIND_CONTEXT_SIZE 2161#    define _LIBUNWIND_CURSOR_SIZE 3362#  endif63#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_6464# elif defined(__powerpc64__)65#  define _LIBUNWIND_TARGET_PPC64 166#  define _LIBUNWIND_CONTEXT_SIZE 16767#  define _LIBUNWIND_CURSOR_SIZE 17968#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC6469# elif defined(__powerpc__)70#  define _LIBUNWIND_TARGET_PPC 171#  define _LIBUNWIND_CONTEXT_SIZE 11772#  define _LIBUNWIND_CURSOR_SIZE 12473#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC74# elif defined(__aarch64__)75#  define _LIBUNWIND_TARGET_AARCH64 176#define _LIBUNWIND_CONTEXT_SIZE 6777#  if defined(__SEH__)78#    define _LIBUNWIND_CURSOR_SIZE 16479#  else80#define _LIBUNWIND_CURSOR_SIZE 7981#  endif82#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM6483# elif defined(__arm__)84#  define _LIBUNWIND_TARGET_ARM 185#  if defined(__SEH__)86#    define _LIBUNWIND_CONTEXT_SIZE 4287#    define _LIBUNWIND_CURSOR_SIZE 8088#  elif defined(__ARM_WMMX)89#    define _LIBUNWIND_CONTEXT_SIZE 6190#    define _LIBUNWIND_CURSOR_SIZE 6891#  else92#    define _LIBUNWIND_CONTEXT_SIZE 4293#    define _LIBUNWIND_CURSOR_SIZE 4994#  endif95#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM96# elif defined(__or1k__)97#  define _LIBUNWIND_TARGET_OR1K 198#  define _LIBUNWIND_CONTEXT_SIZE 1699#  define _LIBUNWIND_CURSOR_SIZE 24100#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K101# elif defined(__hexagon__)102#  define _LIBUNWIND_TARGET_HEXAGON 1103// Values here change when : Registers.hpp - hexagon_thread_state_t change104#  define _LIBUNWIND_CONTEXT_SIZE 18105#  define _LIBUNWIND_CURSOR_SIZE 24106#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON107# elif defined(__mips__)108#  if defined(_ABIO32) && _MIPS_SIM == _ABIO32109#    define _LIBUNWIND_TARGET_MIPS_O32 1110#    if defined(__mips_hard_float)111#      define _LIBUNWIND_CONTEXT_SIZE 50112#      define _LIBUNWIND_CURSOR_SIZE 57113#    else114#      define _LIBUNWIND_CONTEXT_SIZE 18115#      define _LIBUNWIND_CURSOR_SIZE 24116#    endif117#  elif defined(_ABIN32) && _MIPS_SIM == _ABIN32118#    define _LIBUNWIND_TARGET_MIPS_NEWABI 1119#    if defined(__mips_hard_float)120#      define _LIBUNWIND_CONTEXT_SIZE 67121#      define _LIBUNWIND_CURSOR_SIZE 74122#    else123#      define _LIBUNWIND_CONTEXT_SIZE 35124#      define _LIBUNWIND_CURSOR_SIZE 42125#    endif126#  elif defined(_ABI64) && _MIPS_SIM == _ABI64127#    define _LIBUNWIND_TARGET_MIPS_NEWABI 1128#    if defined(__mips_hard_float)129#      define _LIBUNWIND_CONTEXT_SIZE 67130#      define _LIBUNWIND_CURSOR_SIZE 79131#    else132#      define _LIBUNWIND_CONTEXT_SIZE 35133#      define _LIBUNWIND_CURSOR_SIZE 47134#    endif135#  else136#    error "Unsupported MIPS ABI and/or environment"137#  endif138#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS139#elif defined(__sparc__) && defined(__arch64__)140#define _LIBUNWIND_TARGET_SPARC64 1141#define _LIBUNWIND_HIGHEST_DWARF_REGISTER                                      \142  _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64143#define _LIBUNWIND_CONTEXT_SIZE 33144#define _LIBUNWIND_CURSOR_SIZE 45145# elif defined(__sparc__)146  #define _LIBUNWIND_TARGET_SPARC 1147  #define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC148  #define _LIBUNWIND_CONTEXT_SIZE 16149  #define _LIBUNWIND_CURSOR_SIZE 23150# elif defined(__riscv)151#  define _LIBUNWIND_TARGET_RISCV 1152#  if defined(__riscv_flen)153#   define RISCV_FLEN __riscv_flen154#  else155#   define RISCV_FLEN 0156#  endif157#  define _LIBUNWIND_CONTEXT_SIZE (32 * (__riscv_xlen + RISCV_FLEN) / 64)158#  if __riscv_xlen == 32159#   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 7)160#  elif __riscv_xlen == 64161#   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 12)162#  else163#   error "Unsupported RISC-V ABI"164#  endif165# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV166# elif defined(__ve__)167#  define _LIBUNWIND_TARGET_VE 1168#  define _LIBUNWIND_CONTEXT_SIZE 67169#  define _LIBUNWIND_CURSOR_SIZE 79170#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE171# elif defined(__s390x__)172#  define _LIBUNWIND_TARGET_S390X 1173#  define _LIBUNWIND_CONTEXT_SIZE 34174#  define _LIBUNWIND_CURSOR_SIZE 46175#  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X176#elif defined(__loongarch__)177#define _LIBUNWIND_TARGET_LOONGARCH 1178#if __loongarch_grlen == 64179#define _LIBUNWIND_CONTEXT_SIZE 65180#define _LIBUNWIND_CURSOR_SIZE 77181#else182#error "Unsupported LoongArch ABI"183#endif184#define _LIBUNWIND_HIGHEST_DWARF_REGISTER                                      \185  _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH186#elif defined(__wasm__)187// Unused188#define _LIBUNWIND_CONTEXT_SIZE 0189#define _LIBUNWIND_CURSOR_SIZE 0190# else191#  error "Unsupported architecture."192# endif193#else // !_LIBUNWIND_IS_NATIVE_ONLY194# define _LIBUNWIND_TARGET_I386195# define _LIBUNWIND_TARGET_X86_64 1196# define _LIBUNWIND_TARGET_PPC 1197# define _LIBUNWIND_TARGET_PPC64 1198# define _LIBUNWIND_TARGET_AARCH64 1199# define _LIBUNWIND_TARGET_ARM 1200# define _LIBUNWIND_TARGET_OR1K 1201# define _LIBUNWIND_TARGET_MIPS_O32 1202# define _LIBUNWIND_TARGET_MIPS_NEWABI 1203# define _LIBUNWIND_TARGET_SPARC 1204# define _LIBUNWIND_TARGET_SPARC64 1205# define _LIBUNWIND_TARGET_HEXAGON 1206# define _LIBUNWIND_TARGET_RISCV 1207# define _LIBUNWIND_TARGET_VE 1208# define _LIBUNWIND_TARGET_S390X 1209# define _LIBUNWIND_TARGET_LOONGARCH 1210# define _LIBUNWIND_CONTEXT_SIZE 167211# define _LIBUNWIND_CURSOR_SIZE 204212# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287213#endif // _LIBUNWIND_IS_NATIVE_ONLY214 215#if defined(__has_feature)216#  if __has_feature(ptrauth_calls) && __has_feature(ptrauth_returns)217#    define _LIBUNWIND_TARGET_AARCH64_AUTHENTICATED_UNWINDING 1218#  elif __has_feature(ptrauth_calls) != __has_feature(ptrauth_returns)219#    error "Either both or none of ptrauth_calls and ptrauth_returns "\220           "is allowed to be enabled"221#  endif222#endif223 224#endif // ____LIBUNWIND_CONFIG_H__225