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 1 16 #else 17 #define _LIBUNWIND_ARM_EHABI 0 18 #endif 19 20 #if defined(_LIBUNWIND_IS_NATIVE_ONLY) 21 # if defined(__i386__) 22 # define _LIBUNWIND_TARGET_I386 1 23 # define _LIBUNWIND_CONTEXT_SIZE 8 24 # define _LIBUNWIND_CURSOR_SIZE 19 25 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 9 26 # elif defined(__x86_64__) 27 # define _LIBUNWIND_TARGET_X86_64 1 28 # define _LIBUNWIND_CONTEXT_SIZE 21 29 # define _LIBUNWIND_CURSOR_SIZE 33 30 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 17 31 # elif defined(__ppc__) 32 # define _LIBUNWIND_TARGET_PPC 1 33 # define _LIBUNWIND_CONTEXT_SIZE 117 34 # define _LIBUNWIND_CURSOR_SIZE 128 35 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 113 36 # elif defined(__aarch64__) 37 # define _LIBUNWIND_TARGET_AARCH64 1 38 # define _LIBUNWIND_CONTEXT_SIZE 66 39 # define _LIBUNWIND_CURSOR_SIZE 78 40 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96 41 # elif defined(__arm__) 42 # define _LIBUNWIND_TARGET_ARM 1 43 # if defined(__ARM_WMMX) 44 # define _LIBUNWIND_CONTEXT_SIZE 60 45 # define _LIBUNWIND_CURSOR_SIZE 67 46 # else 47 # define _LIBUNWIND_CONTEXT_SIZE 42 48 # define _LIBUNWIND_CURSOR_SIZE 49 49 # endif 50 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96 51 # elif defined(__or1k__) 52 # define _LIBUNWIND_TARGET_OR1K 1 53 # define _LIBUNWIND_CONTEXT_SIZE 16 54 # define _LIBUNWIND_CURSOR_SIZE 28 55 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 32 56 # else 57 # error "Unsupported architecture." 58 # endif 59 #else // !_LIBUNWIND_IS_NATIVE_ONLY 60 # define _LIBUNWIND_TARGET_I386 1 61 # define _LIBUNWIND_TARGET_X86_64 1 62 # define _LIBUNWIND_TARGET_PPC 1 63 # define _LIBUNWIND_TARGET_AARCH64 1 64 # define _LIBUNWIND_TARGET_ARM 1 65 # define _LIBUNWIND_TARGET_OR1K 1 66 # define _LIBUNWIND_CONTEXT_SIZE 128 67 # define _LIBUNWIND_CURSOR_SIZE 140 68 # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 120 69 #endif // _LIBUNWIND_IS_NATIVE_ONLY 70 71 #endif // ____LIBUNWIND_CONFIG_H__ 72