Path: blob/main/contrib/llvm-project/libunwind/include/__libunwind_config.h
35148 views
//===----------------------------------------------------------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef ____LIBUNWIND_CONFIG_H__9#define ____LIBUNWIND_CONFIG_H__1011#define _LIBUNWIND_VERSION 150001213#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \14!defined(__ARM_DWARF_EH__) && !defined(__SEH__)15#define _LIBUNWIND_ARM_EHABI16#endif1718#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86 819#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64 3220#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC 11221#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64 11622#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 9523#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 28724#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 3225#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS 6526#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC 3127#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64 3128#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON 3429#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV 6430#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE 14331#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X 8332#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH 643334#if defined(_LIBUNWIND_IS_NATIVE_ONLY)35# if defined(__linux__)36# define _LIBUNWIND_TARGET_LINUX 137# endif38# if defined(__HAIKU__)39# define _LIBUNWIND_TARGET_HAIKU 140# endif41# if defined(__i386__)42# define _LIBUNWIND_TARGET_I38643# define _LIBUNWIND_CONTEXT_SIZE 844# define _LIBUNWIND_CURSOR_SIZE 1545# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X8646# elif defined(__x86_64__)47# define _LIBUNWIND_TARGET_X86_64 148# if defined(_WIN64)49# define _LIBUNWIND_CONTEXT_SIZE 5450# ifdef __SEH__51# define _LIBUNWIND_CURSOR_SIZE 20452# else53# define _LIBUNWIND_CURSOR_SIZE 6654# endif55# else56# define _LIBUNWIND_CONTEXT_SIZE 2157# define _LIBUNWIND_CURSOR_SIZE 3358# endif59# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_6460# elif defined(__powerpc64__)61# define _LIBUNWIND_TARGET_PPC64 162# define _LIBUNWIND_CONTEXT_SIZE 16763# define _LIBUNWIND_CURSOR_SIZE 17964# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC6465# elif defined(__powerpc__)66# define _LIBUNWIND_TARGET_PPC 167# define _LIBUNWIND_CONTEXT_SIZE 11768# define _LIBUNWIND_CURSOR_SIZE 12469# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC70# elif defined(__aarch64__)71# define _LIBUNWIND_TARGET_AARCH64 172# define _LIBUNWIND_CONTEXT_SIZE 6673# if defined(__SEH__)74# define _LIBUNWIND_CURSOR_SIZE 16475# else76# define _LIBUNWIND_CURSOR_SIZE 7877# endif78# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM6479# elif defined(__arm__)80# define _LIBUNWIND_TARGET_ARM 181# if defined(__SEH__)82# define _LIBUNWIND_CONTEXT_SIZE 4283# define _LIBUNWIND_CURSOR_SIZE 8084# elif defined(__ARM_WMMX)85# define _LIBUNWIND_CONTEXT_SIZE 6186# define _LIBUNWIND_CURSOR_SIZE 6887# else88# define _LIBUNWIND_CONTEXT_SIZE 4289# define _LIBUNWIND_CURSOR_SIZE 4990# endif91# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM92# elif defined(__or1k__)93# define _LIBUNWIND_TARGET_OR1K 194# define _LIBUNWIND_CONTEXT_SIZE 1695# define _LIBUNWIND_CURSOR_SIZE 2496# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K97# elif defined(__hexagon__)98# define _LIBUNWIND_TARGET_HEXAGON 199// Values here change when : Registers.hpp - hexagon_thread_state_t change100# define _LIBUNWIND_CONTEXT_SIZE 18101# define _LIBUNWIND_CURSOR_SIZE 24102# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON103# elif defined(__mips__)104# if defined(_ABIO32) && _MIPS_SIM == _ABIO32105# define _LIBUNWIND_TARGET_MIPS_O32 1106# if defined(__mips_hard_float)107# define _LIBUNWIND_CONTEXT_SIZE 50108# define _LIBUNWIND_CURSOR_SIZE 57109# else110# define _LIBUNWIND_CONTEXT_SIZE 18111# define _LIBUNWIND_CURSOR_SIZE 24112# endif113# elif defined(_ABIN32) && _MIPS_SIM == _ABIN32114# define _LIBUNWIND_TARGET_MIPS_NEWABI 1115# if defined(__mips_hard_float)116# define _LIBUNWIND_CONTEXT_SIZE 67117# define _LIBUNWIND_CURSOR_SIZE 74118# else119# define _LIBUNWIND_CONTEXT_SIZE 35120# define _LIBUNWIND_CURSOR_SIZE 42121# endif122# elif defined(_ABI64) && _MIPS_SIM == _ABI64123# define _LIBUNWIND_TARGET_MIPS_NEWABI 1124# if defined(__mips_hard_float)125# define _LIBUNWIND_CONTEXT_SIZE 67126# define _LIBUNWIND_CURSOR_SIZE 79127# else128# define _LIBUNWIND_CONTEXT_SIZE 35129# define _LIBUNWIND_CURSOR_SIZE 47130# endif131# else132# error "Unsupported MIPS ABI and/or environment"133# endif134# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS135#elif defined(__sparc__) && defined(__arch64__)136#define _LIBUNWIND_TARGET_SPARC64 1137#define _LIBUNWIND_HIGHEST_DWARF_REGISTER \138_LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64139#define _LIBUNWIND_CONTEXT_SIZE 33140#define _LIBUNWIND_CURSOR_SIZE 45141# elif defined(__sparc__)142#define _LIBUNWIND_TARGET_SPARC 1143#define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC144#define _LIBUNWIND_CONTEXT_SIZE 16145#define _LIBUNWIND_CURSOR_SIZE 23146# elif defined(__riscv)147# define _LIBUNWIND_TARGET_RISCV 1148# if defined(__riscv_flen)149# define RISCV_FLEN __riscv_flen150# else151# define RISCV_FLEN 0152# endif153# define _LIBUNWIND_CONTEXT_SIZE (32 * (__riscv_xlen + RISCV_FLEN) / 64)154# if __riscv_xlen == 32155# define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 7)156# elif __riscv_xlen == 64157# define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 12)158# else159# error "Unsupported RISC-V ABI"160# endif161# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV162# elif defined(__ve__)163# define _LIBUNWIND_TARGET_VE 1164# define _LIBUNWIND_CONTEXT_SIZE 67165# define _LIBUNWIND_CURSOR_SIZE 79166# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE167# elif defined(__s390x__)168# define _LIBUNWIND_TARGET_S390X 1169# define _LIBUNWIND_CONTEXT_SIZE 34170# define _LIBUNWIND_CURSOR_SIZE 46171# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X172#elif defined(__loongarch__)173#define _LIBUNWIND_TARGET_LOONGARCH 1174#if __loongarch_grlen == 64175#define _LIBUNWIND_CONTEXT_SIZE 65176#define _LIBUNWIND_CURSOR_SIZE 77177#else178#error "Unsupported LoongArch ABI"179#endif180#define _LIBUNWIND_HIGHEST_DWARF_REGISTER \181_LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH182#elif defined(__wasm__)183// Unused184#define _LIBUNWIND_CONTEXT_SIZE 0185#define _LIBUNWIND_CURSOR_SIZE 0186# else187# error "Unsupported architecture."188# endif189#else // !_LIBUNWIND_IS_NATIVE_ONLY190# define _LIBUNWIND_TARGET_I386191# define _LIBUNWIND_TARGET_X86_64 1192# define _LIBUNWIND_TARGET_PPC 1193# define _LIBUNWIND_TARGET_PPC64 1194# define _LIBUNWIND_TARGET_AARCH64 1195# define _LIBUNWIND_TARGET_ARM 1196# define _LIBUNWIND_TARGET_OR1K 1197# define _LIBUNWIND_TARGET_MIPS_O32 1198# define _LIBUNWIND_TARGET_MIPS_NEWABI 1199# define _LIBUNWIND_TARGET_SPARC 1200# define _LIBUNWIND_TARGET_SPARC64 1201# define _LIBUNWIND_TARGET_HEXAGON 1202# define _LIBUNWIND_TARGET_RISCV 1203# define _LIBUNWIND_TARGET_VE 1204# define _LIBUNWIND_TARGET_S390X 1205# define _LIBUNWIND_TARGET_LOONGARCH 1206# define _LIBUNWIND_CONTEXT_SIZE 167207# define _LIBUNWIND_CURSOR_SIZE 204208# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287209#endif // _LIBUNWIND_IS_NATIVE_ONLY210211#endif // ____LIBUNWIND_CONFIG_H__212213214