1
0
mirror of https://github.com/libretro/RetroArch synced 2025-03-31 19:21:06 +00:00

(iOS) Build fix - don't compile in ARM NEON code in the meantime

until assembly files are fixed to assemble with LLVM/Clang
This commit is contained in:
twinaphex 2014-04-17 23:04:40 +02:00
parent 63b942b301
commit fd215a1d27
4 changed files with 8 additions and 14 deletions
apple/RetroArch_iOS.xcodeproj
audio
performance.c

@ -9,8 +9,6 @@
/* Begin PBXBuildFile section */
501881EC184BAD6D006F665D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501881EB184BAD6D006F665D /* AVFoundation.framework */; };
501881EE184BB54C006F665D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501881ED184BB54C006F665D /* CoreMedia.framework */; };
5027DAD91871E55B007F4DA5 /* sinc_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 5027DAD81871E55B007F4DA5 /* sinc_neon.S */; };
5027DADB1871E572007F4DA5 /* utils_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 5027DADA1871E572007F4DA5 /* utils_neon.S */; };
509FC979183F9F18007A5A30 /* menu.m in Sources */ = {isa = PBXBuildFile; fileRef = 509FC978183F9F18007A5A30 /* menu.m */; };
50CCC828185E0E7D001F5BC8 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */; };
50E7189F184B88AA001956CE /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50E7189E184B88AA001956CE /* CoreVideo.framework */; };
@ -46,8 +44,6 @@
/* Begin PBXFileReference section */
501881EB184BAD6D006F665D /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
501881ED184BB54C006F665D /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
5027DAD81871E55B007F4DA5 /* sinc_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = sinc_neon.S; sourceTree = "<group>"; };
5027DADA1871E572007F4DA5 /* utils_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = utils_neon.S; sourceTree = "<group>"; };
509FC978183F9F18007A5A30 /* menu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = menu.m; path = iOS/menu.m; sourceTree = SOURCE_ROOT; };
50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
50E7189E184B88AA001956CE /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
@ -209,8 +205,6 @@
96AFAEE516C1DC73009DE44C /* audio */ = {
isa = PBXGroup;
children = (
5027DADA1871E572007F4DA5 /* utils_neon.S */,
5027DAD81871E55B007F4DA5 /* sinc_neon.S */,
);
name = audio;
path = ../audio;
@ -318,9 +312,7 @@
963C3C32186E3D2600A6EB1E /* apple_gamecontroller.m in Sources */,
96297A0F16C5AEA100E6DCE0 /* main.m in Sources */,
963F5AC816CC523B009BBD19 /* RAGameView.m in Sources */,
5027DADB1871E572007F4DA5 /* utils_neon.S in Sources */,
D48581DE16F823F9004BEB17 /* griffin.c in Sources */,
5027DAD91871E55B007F4DA5 /* sinc_neon.S in Sources */,
96337E82176AC6E5004685F3 /* utility.m in Sources */,
509FC979183F9F18007A5A30 /* menu.m in Sources */,
9678945B1788EAAE00D6CA69 /* browser.m in Sources */,

@ -379,7 +379,7 @@ static void process_sinc(rarch_sinc_resampler_t *resamp, float *out_buffer)
// movehl { X, R, X, L } == { X, R, X, R }
_mm_store_ss(out_buffer + 1, _mm_movehl_ps(sum, sum));
}
#elif defined(HAVE_NEON)
#elif defined(HAVE_NEON) && !defined(__MACH__)
#if SINC_COEFF_LERP
#error "NEON asm does not support SINC lerp."
@ -473,7 +473,7 @@ static void *resampler_sinc_new(double bandwidth_mod)
}
// Be SIMD-friendly.
#if (defined(__AVX__) && ENABLE_AVX) || defined(HAVE_NEON)
#if (defined(__AVX__) && ENABLE_AVX) || defined(HAVE_NEON) && !defined(__MACH__)
re->taps = (re->taps + 7) & ~7;
#else
re->taps = (re->taps + 3) & ~3;
@ -499,7 +499,7 @@ static void *resampler_sinc_new(double bandwidth_mod)
RARCH_LOG("Sinc resampler [AVX]\n");
#elif defined(__SSE__)
RARCH_LOG("Sinc resampler [SSE]\n");
#elif defined(HAVE_NEON)
#elif defined(HAVE_NEON) && !defined(__MACH__)
unsigned cpu = rarch_get_cpu_features();
process_sinc_func = cpu & RETRO_SIMD_NEON ? process_sinc_neon : process_sinc_C;
RARCH_LOG("Sinc resampler [%s]\n", cpu & RETRO_SIMD_NEON ? "NEON" : "C");

@ -140,7 +140,7 @@ void audio_convert_float_to_s16_altivec(int16_t *out,
else
audio_convert_float_to_s16_C(out, in, samples);
}
#elif defined(HAVE_NEON)
#elif defined(HAVE_NEON) && !defined(__MACH__)
void audio_convert_s16_float_asm(float *out, const int16_t *in, size_t samples, const float *gain); // Avoid potential hard-float/soft-float ABI issues.
static void audio_convert_s16_to_float_neon(float *out, const int16_t *in, size_t samples,
float gain)
@ -264,7 +264,7 @@ void audio_convert_float_to_s16_ALLEGREX(int16_t *out,
void audio_convert_init_simd(void)
{
#ifdef HAVE_NEON
#if defined HAVE_NEON && !defined(__MACH__)
unsigned cpu = rarch_get_cpu_features();
audio_convert_s16_to_float_arm = cpu & RETRO_SIMD_NEON ?
audio_convert_s16_to_float_neon : audio_convert_s16_to_float_C;

@ -275,7 +275,7 @@ static uint64_t xgetbv_x86(uint32_t index)
}
#endif
#ifdef HAVE_NEON
#if defined(HAVE_NEON) && !defined(__MACH__)
static void arm_enable_runfast_mode(void)
{
// RunFast mode. Enables flush-to-zero and some floating point optimizations.
@ -425,7 +425,9 @@ uint64_t rarch_get_cpu_features(void)
RARCH_LOG("[CPUID]: NEON: %u\n", !!(cpu & RETRO_SIMD_NEON));
#elif defined(HAVE_NEON)
cpu |= RETRO_SIMD_NEON;
#ifndef __MACH__
arm_enable_runfast_mode();
#endif
RARCH_LOG("[CPUID]: NEON: %u\n", !!(cpu & RETRO_SIMD_NEON));
#elif defined(__ALTIVEC__)
cpu |= RETRO_SIMD_VMX;