| //===----------------------------------------------------------------------===// |
| // |
| // 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__ |
| |
| #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ |
| !defined(__ARM_DWARF_EH__) |
| #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_HEXAGON 34 |
| #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV 64 |
| #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE 143 |
| |
| #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(__ppc__) |
| # 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__) |
| #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 |
| # 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_HEXAGON 1 |
| # define _LIBUNWIND_TARGET_RISCV 1 |
| # define _LIBUNWIND_TARGET_VE 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__ |