From e26aa6c189bafd26f603a833c4d4e67d2ebddc3f Mon Sep 17 00:00:00 2001 From: "Dr. Chat" Date: Sun, 7 May 2017 18:25:06 -0500 Subject: [PATCH] Add XE_ARCH_* --- src/xenia/base/math.h | 8 ++++++-- src/xenia/base/platform.h | 10 +++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/xenia/base/math.h b/src/xenia/base/math.h index 4252cd370..aa969768f 100644 --- a/src/xenia/base/math.h +++ b/src/xenia/base/math.h @@ -10,8 +10,6 @@ #ifndef XENIA_BASE_MATH_H_ #define XENIA_BASE_MATH_H_ -#include - #include #include #include @@ -19,6 +17,10 @@ #include "xenia/base/platform.h" +#if XE_ARCH_AMD64 +#include +#endif + namespace xe { template @@ -255,6 +257,7 @@ T clamp(T value, T min_value, T max_value) { return t > max_value ? max_value : t; } +#if XE_ARCH_AMD64 // Utilities for SSE values. template float m128_f32(const __m128& v) { @@ -294,6 +297,7 @@ template int64_t m128_i64(const __m128& v) { return m128_i64(_mm_castps_pd(v)); } +#endif uint16_t float_to_half(float value); float half_to_float(uint16_t value); diff --git a/src/xenia/base/platform.h b/src/xenia/base/platform.h index 2c732922f..0e0c6919d 100644 --- a/src/xenia/base/platform.h +++ b/src/xenia/base/platform.h @@ -47,6 +47,14 @@ #define XE_COMPILER_UNKNOWN 1 #endif +#if defined(_M_AMD64) || defined(__amd64__) +#define XE_ARCH_AMD64 1 +#elif defined(_M_IX86) +#error "Xenia is not supported on 32-bit platforms." +#elif defined(_M_PPC) || defined(__powerpc__) +#define XE_ARCH_PPC 1 +#endif + #if XE_PLATFORM_WIN32 #define strdup _strdup #define strcasecmp _stricmp @@ -57,7 +65,7 @@ #if XE_PLATFORM_WIN32 #include -#else +#elif XE_ARCH_AMD64 #include #endif // XE_PLATFORM_WIN32