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_ARM64 95 22 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 287 23 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 31 24 #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS 65 25 26 #if defined(_LIBUNWIND_IS_NATIVE_ONLY) 27 # if defined(__i386__) 28 # define _LIBUNWIND_TARGET_I386 29 # define _LIBUNWIND_CONTEXT_SIZE 8 30 # define _LIBUNWIND_CURSOR_SIZE 15 31 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86 32 # elif defined(__x86_64__) 33 # define _LIBUNWIND_TARGET_X86_64 1 34 # if defined(_WIN64) 35 # define _LIBUNWIND_CONTEXT_SIZE 54 36 # define _LIBUNWIND_CURSOR_SIZE 66 37 # else 38 # define _LIBUNWIND_CONTEXT_SIZE 21 39 # define _LIBUNWIND_CURSOR_SIZE 33 40 # endif 41 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64 42 # elif defined(__ppc__) 43 # define _LIBUNWIND_TARGET_PPC 1 44 # define _LIBUNWIND_CONTEXT_SIZE 117 45 # define _LIBUNWIND_CURSOR_SIZE 124 46 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC 47 # elif defined(__aarch64__) 48 # define _LIBUNWIND_TARGET_AARCH64 1 49 # define _LIBUNWIND_CONTEXT_SIZE 66 50 # define _LIBUNWIND_CURSOR_SIZE 78 51 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 52 # elif defined(__arm__) 53 # define _LIBUNWIND_TARGET_ARM 1 54 # if defined(__ARM_WMMX) 55 # define _LIBUNWIND_CONTEXT_SIZE 61 56 # define _LIBUNWIND_CURSOR_SIZE 68 57 # else 58 # define _LIBUNWIND_CONTEXT_SIZE 42 59 # define _LIBUNWIND_CURSOR_SIZE 49 60 # endif 61 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 62 # elif defined(__or1k__) 63 # define _LIBUNWIND_TARGET_OR1K 1 64 # define _LIBUNWIND_CONTEXT_SIZE 16 65 # define _LIBUNWIND_CURSOR_SIZE 24 66 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 67 # elif defined(__mips__) 68 # if defined(_ABIO32) && defined(__mips_soft_float) 69 # define _LIBUNWIND_TARGET_MIPS_O32 1 70 # define _LIBUNWIND_CONTEXT_SIZE 18 71 # define _LIBUNWIND_CURSOR_SIZE 24 72 # elif defined(_ABI64) && defined(__mips_soft_float) 73 # define _LIBUNWIND_TARGET_MIPS_N64 1 74 # define _LIBUNWIND_CONTEXT_SIZE 35 75 # define _LIBUNWIND_CURSOR_SIZE 47 76 # else 77 # error "Unsupported MIPS ABI and/or environment" 78 # endif 79 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS 80 # else 81 # error "Unsupported architecture." 82 # endif 83 #else // !_LIBUNWIND_IS_NATIVE_ONLY 84 # define _LIBUNWIND_TARGET_I386 85 # define _LIBUNWIND_TARGET_X86_64 1 86 # define _LIBUNWIND_TARGET_PPC 1 87 # define _LIBUNWIND_TARGET_AARCH64 1 88 # define _LIBUNWIND_TARGET_ARM 1 89 # define _LIBUNWIND_TARGET_OR1K 1 90 # define _LIBUNWIND_TARGET_MIPS_O32 1 91 # define _LIBUNWIND_TARGET_MIPS_N64 1 92 # define _LIBUNWIND_CONTEXT_SIZE 128 93 # define _LIBUNWIND_CURSOR_SIZE 140 94 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287 95 #endif // _LIBUNWIND_IS_NATIVE_ONLY 96 97 #endif // ____LIBUNWIND_CONFIG_H__ 98