forked from OSchip/llvm-project
185 lines
6.7 KiB
C
185 lines
6.7 KiB
C
//===----------------------------------------------------------------------===//
|
|
//
|
|
// 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_SPARC64 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(__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
|
|
# 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_CONTEXT_SIZE 167
|
|
# define _LIBUNWIND_CURSOR_SIZE 179
|
|
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287
|
|
#endif // _LIBUNWIND_IS_NATIVE_ONLY
|
|
|
|
#endif // ____LIBUNWIND_CONFIG_H__
|