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