1 //===------------------------- __libunwind_config.h -----------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef ____LIBUNWIND_CONFIG_H__ 11 #define ____LIBUNWIND_CONFIG_H__ 12 13 #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ 14 !defined(__ARM_DWARF_EH__) 15 #define _LIBUNWIND_ARM_EHABI 16 #endif 17 18 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86 8 19 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64 32 20 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC 112 21 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64 116 22 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 95 23 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 287 24 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 32 25 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS 65 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 # define _LIBUNWIND_CURSOR_SIZE 78 61 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 62 # elif defined(__arm__) 63 # define _LIBUNWIND_TARGET_ARM 1 64 # if defined(__SEH__) 65 # define _LIBUNWIND_CONTEXT_SIZE 42 66 # define _LIBUNWIND_CURSOR_SIZE 80 67 # elif defined(__ARM_WMMX) 68 # define _LIBUNWIND_CONTEXT_SIZE 61 69 # define _LIBUNWIND_CURSOR_SIZE 68 70 # else 71 # define _LIBUNWIND_CONTEXT_SIZE 42 72 # define _LIBUNWIND_CURSOR_SIZE 49 73 # endif 74 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 75 # elif defined(__or1k__) 76 # define _LIBUNWIND_TARGET_OR1K 1 77 # define _LIBUNWIND_CONTEXT_SIZE 16 78 # define _LIBUNWIND_CURSOR_SIZE 24 79 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 80 # elif defined(__mips__) 81 # if defined(_ABIO32) && _MIPS_SIM == _ABIO32 82 # define _LIBUNWIND_TARGET_MIPS_O32 1 83 # if defined(__mips_hard_float) 84 # define _LIBUNWIND_CONTEXT_SIZE 50 85 # define _LIBUNWIND_CURSOR_SIZE 57 86 # else 87 # define _LIBUNWIND_CONTEXT_SIZE 18 88 # define _LIBUNWIND_CURSOR_SIZE 24 89 # endif 90 # elif defined(_ABIN32) && _MIPS_SIM == _ABIN32 91 # define _LIBUNWIND_TARGET_MIPS_NEWABI 1 92 # if defined(__mips_hard_float) 93 # define _LIBUNWIND_CONTEXT_SIZE 67 94 # define _LIBUNWIND_CURSOR_SIZE 74 95 # else 96 # define _LIBUNWIND_CONTEXT_SIZE 35 97 # define _LIBUNWIND_CURSOR_SIZE 42 98 # endif 99 # elif defined(_ABI64) && _MIPS_SIM == _ABI64 100 # define _LIBUNWIND_TARGET_MIPS_NEWABI 1 101 # if defined(__mips_hard_float) 102 # define _LIBUNWIND_CONTEXT_SIZE 67 103 # define _LIBUNWIND_CURSOR_SIZE 79 104 # else 105 # define _LIBUNWIND_CONTEXT_SIZE 35 106 # define _LIBUNWIND_CURSOR_SIZE 47 107 # endif 108 # else 109 # error "Unsupported MIPS ABI and/or environment" 110 # endif 111 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS 112 # else 113 # error "Unsupported architecture." 114 # endif 115 #else // !_LIBUNWIND_IS_NATIVE_ONLY 116 # define _LIBUNWIND_TARGET_I386 117 # define _LIBUNWIND_TARGET_X86_64 1 118 # define _LIBUNWIND_TARGET_PPC 1 119 # define _LIBUNWIND_TARGET_PPC64 1 120 # define _LIBUNWIND_TARGET_AARCH64 1 121 # define _LIBUNWIND_TARGET_ARM 1 122 # define _LIBUNWIND_TARGET_OR1K 1 123 # define _LIBUNWIND_TARGET_MIPS_O32 1 124 # define _LIBUNWIND_TARGET_MIPS_NEWABI 1 125 # define _LIBUNWIND_CONTEXT_SIZE 167 126 # define _LIBUNWIND_CURSOR_SIZE 179 127 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287 128 #endif // _LIBUNWIND_IS_NATIVE_ONLY 129 130 #endif // ____LIBUNWIND_CONFIG_H__ 131