1 //===------------------------- __libunwind_config.h -----------------------===// 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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef ____LIBUNWIND_CONFIG_H__ 10 #define ____LIBUNWIND_CONFIG_H__ 11 12 #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ 13 !defined(__ARM_DWARF_EH__) 14 #define _LIBUNWIND_ARM_EHABI 15 #endif 16 17 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86 8 18 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64 32 19 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC 112 20 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64 116 21 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 95 22 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 287 23 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 32 24 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS 65 25 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC 31 26 27 #if defined(_LIBUNWIND_IS_NATIVE_ONLY) 28 # if defined(__i386__) 29 # define _LIBUNWIND_TARGET_I386 30 # define _LIBUNWIND_CONTEXT_SIZE 8 31 # define _LIBUNWIND_CURSOR_SIZE 15 32 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86 33 # elif defined(__x86_64__) 34 # define _LIBUNWIND_TARGET_X86_64 1 35 # if defined(_WIN64) 36 # define _LIBUNWIND_CONTEXT_SIZE 54 37 # ifdef __SEH__ 38 # define _LIBUNWIND_CURSOR_SIZE 204 39 # else 40 # define _LIBUNWIND_CURSOR_SIZE 66 41 # endif 42 # else 43 # define _LIBUNWIND_CONTEXT_SIZE 21 44 # define _LIBUNWIND_CURSOR_SIZE 33 45 # endif 46 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64 47 # elif defined(__powerpc64__) 48 # define _LIBUNWIND_TARGET_PPC64 1 49 # define _LIBUNWIND_CONTEXT_SIZE 167 50 # define _LIBUNWIND_CURSOR_SIZE 179 51 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64 52 # elif defined(__ppc__) 53 # define _LIBUNWIND_TARGET_PPC 1 54 # define _LIBUNWIND_CONTEXT_SIZE 117 55 # define _LIBUNWIND_CURSOR_SIZE 124 56 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC 57 # elif defined(__aarch64__) 58 # define _LIBUNWIND_TARGET_AARCH64 1 59 # define _LIBUNWIND_CONTEXT_SIZE 66 60 # if defined(__SEH__) 61 # define _LIBUNWIND_CURSOR_SIZE 164 62 # else 63 # define _LIBUNWIND_CURSOR_SIZE 78 64 # endif 65 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 66 # elif defined(__arm__) 67 # define _LIBUNWIND_TARGET_ARM 1 68 # if defined(__SEH__) 69 # define _LIBUNWIND_CONTEXT_SIZE 42 70 # define _LIBUNWIND_CURSOR_SIZE 80 71 # elif defined(__ARM_WMMX) 72 # define _LIBUNWIND_CONTEXT_SIZE 61 73 # define _LIBUNWIND_CURSOR_SIZE 68 74 # else 75 # define _LIBUNWIND_CONTEXT_SIZE 42 76 # define _LIBUNWIND_CURSOR_SIZE 49 77 # endif 78 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 79 # elif defined(__or1k__) 80 # define _LIBUNWIND_TARGET_OR1K 1 81 # define _LIBUNWIND_CONTEXT_SIZE 16 82 # define _LIBUNWIND_CURSOR_SIZE 24 83 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 84 # elif defined(__mips__) 85 # if defined(_ABIO32) && _MIPS_SIM == _ABIO32 86 # define _LIBUNWIND_TARGET_MIPS_O32 1 87 # if defined(__mips_hard_float) 88 # define _LIBUNWIND_CONTEXT_SIZE 50 89 # define _LIBUNWIND_CURSOR_SIZE 57 90 # else 91 # define _LIBUNWIND_CONTEXT_SIZE 18 92 # define _LIBUNWIND_CURSOR_SIZE 24 93 # endif 94 # elif defined(_ABIN32) && _MIPS_SIM == _ABIN32 95 # define _LIBUNWIND_TARGET_MIPS_NEWABI 1 96 # if defined(__mips_hard_float) 97 # define _LIBUNWIND_CONTEXT_SIZE 67 98 # define _LIBUNWIND_CURSOR_SIZE 74 99 # else 100 # define _LIBUNWIND_CONTEXT_SIZE 35 101 # define _LIBUNWIND_CURSOR_SIZE 42 102 # endif 103 # elif defined(_ABI64) && _MIPS_SIM == _ABI64 104 # define _LIBUNWIND_TARGET_MIPS_NEWABI 1 105 # if defined(__mips_hard_float) 106 # define _LIBUNWIND_CONTEXT_SIZE 67 107 # define _LIBUNWIND_CURSOR_SIZE 79 108 # else 109 # define _LIBUNWIND_CONTEXT_SIZE 35 110 # define _LIBUNWIND_CURSOR_SIZE 47 111 # endif 112 # else 113 # error "Unsupported MIPS ABI and/or environment" 114 # endif 115 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS 116 # elif defined(__sparc__) 117 #define _LIBUNWIND_TARGET_SPARC 1 118 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC 119 #define _LIBUNWIND_CONTEXT_SIZE 16 120 #define _LIBUNWIND_CURSOR_SIZE 23 121 # else 122 # error "Unsupported architecture." 123 # endif 124 #else // !_LIBUNWIND_IS_NATIVE_ONLY 125 # define _LIBUNWIND_TARGET_I386 126 # define _LIBUNWIND_TARGET_X86_64 1 127 # define _LIBUNWIND_TARGET_PPC 1 128 # define _LIBUNWIND_TARGET_PPC64 1 129 # define _LIBUNWIND_TARGET_AARCH64 1 130 # define _LIBUNWIND_TARGET_ARM 1 131 # define _LIBUNWIND_TARGET_OR1K 1 132 # define _LIBUNWIND_TARGET_MIPS_O32 1 133 # define _LIBUNWIND_TARGET_MIPS_NEWABI 1 134 # define _LIBUNWIND_TARGET_SPARC 1 135 # define _LIBUNWIND_CONTEXT_SIZE 167 136 # define _LIBUNWIND_CURSOR_SIZE 179 137 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287 138 #endif // _LIBUNWIND_IS_NATIVE_ONLY 139 140 #endif // ____LIBUNWIND_CONFIG_H__ 141