Add XE_ARCH_*
This commit is contained in:
parent
99078fffbd
commit
e26aa6c189
|
@ -10,8 +10,6 @@
|
||||||
#ifndef XENIA_BASE_MATH_H_
|
#ifndef XENIA_BASE_MATH_H_
|
||||||
#define XENIA_BASE_MATH_H_
|
#define XENIA_BASE_MATH_H_
|
||||||
|
|
||||||
#include <xmmintrin.h>
|
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
@ -19,6 +17,10 @@
|
||||||
|
|
||||||
#include "xenia/base/platform.h"
|
#include "xenia/base/platform.h"
|
||||||
|
|
||||||
|
#if XE_ARCH_AMD64
|
||||||
|
#include <xmmintrin.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
|
|
||||||
template <typename T, size_t N>
|
template <typename T, size_t N>
|
||||||
|
@ -255,6 +257,7 @@ T clamp(T value, T min_value, T max_value) {
|
||||||
return t > max_value ? max_value : t;
|
return t > max_value ? max_value : t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if XE_ARCH_AMD64
|
||||||
// Utilities for SSE values.
|
// Utilities for SSE values.
|
||||||
template <int N>
|
template <int N>
|
||||||
float m128_f32(const __m128& v) {
|
float m128_f32(const __m128& v) {
|
||||||
|
@ -294,6 +297,7 @@ template <int N>
|
||||||
int64_t m128_i64(const __m128& v) {
|
int64_t m128_i64(const __m128& v) {
|
||||||
return m128_i64<N>(_mm_castps_pd(v));
|
return m128_i64<N>(_mm_castps_pd(v));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
uint16_t float_to_half(float value);
|
uint16_t float_to_half(float value);
|
||||||
float half_to_float(uint16_t value);
|
float half_to_float(uint16_t value);
|
||||||
|
|
|
@ -47,6 +47,14 @@
|
||||||
#define XE_COMPILER_UNKNOWN 1
|
#define XE_COMPILER_UNKNOWN 1
|
||||||
#endif
|
#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
|
#if XE_PLATFORM_WIN32
|
||||||
#define strdup _strdup
|
#define strdup _strdup
|
||||||
#define strcasecmp _stricmp
|
#define strcasecmp _stricmp
|
||||||
|
@ -57,7 +65,7 @@
|
||||||
|
|
||||||
#if XE_PLATFORM_WIN32
|
#if XE_PLATFORM_WIN32
|
||||||
#include <intrin.h>
|
#include <intrin.h>
|
||||||
#else
|
#elif XE_ARCH_AMD64
|
||||||
#include <x86intrin.h>
|
#include <x86intrin.h>
|
||||||
#endif // XE_PLATFORM_WIN32
|
#endif // XE_PLATFORM_WIN32
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue