util: Add DETECT_ARCH_* and DETECT_CC_* macros for latter usage

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19674>
This commit is contained in:
Yonggang Luo 2022-11-11 01:06:36 +08:00 committed by Marge Bot
parent db01b983ed
commit 4304177675
2 changed files with 70 additions and 0 deletions

View file

@ -55,10 +55,12 @@
*/
#if defined(__i386__) /* gcc */ || defined(_M_IX86) /* msvc */ || defined(_X86_) || defined(__386__) || defined(i386) || defined(__i386) /* Sun cc */
#define DETECT_ARCH_X86 1
#define PIPE_ARCH_X86
#endif
#if defined(__x86_64__) /* gcc */ || defined(_M_X64) /* msvc */ || defined(_M_AMD64) /* msvc */ || defined(__x86_64) /* Sun cc */
#define DETECT_ARCH_X86_64 1
#define PIPE_ARCH_X86_64
#endif
@ -66,37 +68,85 @@
#if defined(PIPE_CC_GCC) && !defined(__SSE2__)
/* #warning SSE2 support requires -msse -msse2 compiler options */
#else
#define DETECT_ARCH_SSE 1
#define PIPE_ARCH_SSE
#endif
#endif
#if defined(__ppc__) || defined(__ppc64__) || defined(__PPC__) || defined(__PPC64__)
#define DETECT_ARCH_PPC 1
#define PIPE_ARCH_PPC
#if defined(__ppc64__) || defined(__PPC64__)
#define DETECT_ARCH_PPC_64 1
#define PIPE_ARCH_PPC_64
#endif
#endif
#if defined(__s390x__)
#define DETECT_ARCH_S390 1
#define PIPE_ARCH_S390
#endif
#if defined(__arm__)
#define DETECT_ARCH_ARM 1
#define PIPE_ARCH_ARM
#endif
#if defined(__aarch64__) || defined(_M_ARM64)
#define DETECT_ARCH_AARCH64 1
#define PIPE_ARCH_AARCH64
#endif
#if defined(__mips64) && defined(__LP64__)
#define DETECT_ARCH_MIPS64 1
#define PIPE_ARCH_MIPS64
#endif
#if defined(__mips__)
#define DETECT_ARCH_MIPS 1
#define PIPE_ARCH_MIPS
#endif
#ifndef DETECT_ARCH_X86
#define DETECT_ARCH_X86 0
#endif
#ifndef DETECT_ARCH_X86_64
#define DETECT_ARCH_X86_64 0
#endif
#ifndef DETECT_ARCH_SSE
#define DETECT_ARCH_SSE 0
#endif
#ifndef DETECT_ARCH_PPC
#define DETECT_ARCH_PPC 0
#endif
#ifndef DETECT_ARCH_PPC_64
#define DETECT_ARCH_PPC_64 0
#endif
#ifndef DETECT_ARCH_S390
#define DETECT_ARCH_S390 0
#endif
#ifndef DETECT_ARCH_ARM
#define DETECT_ARCH_ARM 0
#endif
#ifndef DETECT_ARCH_AARCH64
#define DETECT_ARCH_AARCH64 0
#endif
#ifndef DETECT_ARCH_MIPS64
#define DETECT_ARCH_MIPS64 0
#endif
#ifndef DETECT_ARCH_MIPS
#define DETECT_ARCH_MIPS 0
#endif
/*
* Endian detection.
*/

View file

@ -44,6 +44,8 @@
*/
#if defined(__GNUC__)
#define DETECT_CC_GCC 1
#define DETECT_CC_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
#define PIPE_CC_GCC
#define PIPE_CC_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
#endif
@ -62,11 +64,29 @@
* versions.
*/
#if defined(_MSC_VER) || defined(__MSC__)
#define DETECT_CC_MSVC 1
#define PIPE_CC_MSVC
#endif
#if defined(__ICL)
#define DETECT_CC_ICL 1
#define PIPE_CC_ICL
#endif
#ifndef DETECT_CC_GCC
#define DETECT_CC_GCC 0
#endif
#ifndef DETECT_CC_GCC_VERSION
#define DETECT_CC_GCC_VERSION 0
#endif
#ifndef DETECT_CC_MSVC
#define DETECT_CC_MSVC 0
#endif
#ifndef DETECT_CC_ICL
#define DETECT_CC_ICL 0
#endif
#endif /* UTIL_DETECT_CC_H_ */