aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTwinaphex2017-12-16 17:03:43 +0100
committerGitHub2017-12-16 17:03:43 +0100
commitec665d133f4973be8a03bc3066a94c2d9de1d8ee (patch)
treedfdfb70758b40b744dbd7b01b89909c24e05989d
parent4324dede86cdca94a697fe06040cbc3df154f58a (diff)
parent72b80d66dbdec3a4aae2d631dd9f0e930435f315 (diff)
downloadpcsx_rearmed-ec665d133f4973be8a03bc3066a94c2d9de1d8ee.tar.gz
pcsx_rearmed-ec665d133f4973be8a03bc3066a94c2d9de1d8ee.tar.bz2
pcsx_rearmed-ec665d133f4973be8a03bc3066a94c2d9de1d8ee.zip
Merge pull request #146 from hevey/master
iOS Compilation Updates
-rw-r--r--Makefile.libretro21
-rw-r--r--frontend/cspace.c50
2 files changed, 50 insertions, 21 deletions
diff --git a/Makefile.libretro b/Makefile.libretro
index fb13657..b085912 100644
--- a/Makefile.libretro
+++ b/Makefile.libretro
@@ -53,11 +53,20 @@ else ifeq ($(platform), osx)
fpic += -mmacosx-version-min=10.1
# iOS
+else ifeq ($(platform),$(filter $(platform),ios-arm64))
+ ARCH := arm64
+ USE_DYNAREC = 0
+ HAVE_NEON = 0
+ BUILTIN_GPU = peops
+ TARGET := $(TARGET_NAME)_libretro_ios.dylib
+
else ifneq (,$(findstring ios,$(platform)))
ARCH := arm
USE_DYNAREC ?= 1
+ HAVE_NEON = 1
+ BUILTIN_GPU = neon
TARGET := $(TARGET_NAME)_libretro_ios.dylib
-ifeq ($(USE_DYNAREC),0)
+ifeq ($(USE_DYNAREC),1)
# Override
TARGET := $(TARGET_NAME)_interpreter_libretro_ios.dylib
endif
@@ -72,8 +81,6 @@ endif
CC_AS = perl ./tools/gas-preprocessor.pl $(CC)
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
- HAVE_NEON = 1
- BUILTIN_GPU = neon
CFLAGS += -DIOS
ifeq ($(platform),ios9)
CC += -miphoneos-version-min=8.0
@@ -122,7 +129,7 @@ else ifeq ($(platform), vita)
AR = arm-vita-eabi-ar$(EXE_EXT)
CFLAGS += -DVITA
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm
- CFLAGS += -fsingle-precision-constant -mword-relocations -fno-unwind-tables
+ CFLAGS += -fsingle-precision-constant -mword-relocations -fno-unwind-tables
CFLAGS += -fno-asynchronous-unwind-tables -ftree-vectorize -funroll-loops
CFLAGS += -fno-optimize-sibling-calls
CFLAGS += -I$(VITASDK)/include -Ifrontend/vita
@@ -148,7 +155,7 @@ else ifeq ($(platform), ctr)
CFLAGS += -DARM11 -D_3DS -DNO_OS -DNO_DYLIB -DNO_SOCKET
CFLAGS += -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp -mtp=soft
CFLAGS += -Wall -mword-relocations
- CFLAGS += -fomit-frame-pointer -ffast-math
+ CFLAGS += -fomit-frame-pointer -ffast-math
CFLAGS += -Ifrontend/3ds
CFLAGS += -Werror=implicit-function-declaration
@@ -209,7 +216,7 @@ else ifeq ($(platform), rpi2)
ARCH = arm
BUILTIN_GPU = neon
USE_DYNAREC = 1
-
+
#Raspberry Pi 3
else ifeq ($(platform), rpi3)
TARGET := $(TARGET_NAME)_libretro.so
@@ -256,7 +263,7 @@ else
BUILTIN_GPU = peops
PLATFORM = libretro
MAIN_LDFLAGS += -static-libgcc -static-libstdc++ -s
- CFLAGS += -D__WIN32__ -DNO_DYLIB
+ CFLAGS += -D__WIN32__ -DNO_DYLIB
MMAP_WIN32=1
MAIN_LDLIBS += -lws2_32
LIBPTHREAD :=
diff --git a/frontend/cspace.c b/frontend/cspace.c
index 33a981d..55d4ac6 100644
--- a/frontend/cspace.c
+++ b/frontend/cspace.c
@@ -34,24 +34,46 @@ void bgr555_to_rgb565(void *dst_, const void *src_, int bytes)
#endif
+#ifdef __arm64__
+
+void bgr888_to_rgb565(void *dst_, const void *src_, int bytes)
+{
+ const unsigned char *src = src_;
+ unsigned int *dst = dst_;
+ unsigned int r1, g1, b1, r2, g2, b2;
+
+ for (; bytes >= 6; bytes -= 6, src += 6, dst++) {
+ r1 = src[0] & 0xf8;
+ g1 = src[1] & 0xfc;
+ b1 = src[2] & 0xf8;
+ r2 = src[3] & 0xf8;
+ g2 = src[4] & 0xfc;
+ b2 = src[5] & 0xf8;
+ *dst = (r2 << 24) | (g2 << 19) | (b2 << 13) |
+ (r1 << 8) | (g1 << 3) | (b1 >> 3);
+ }
+}
+
+#endif
+
#ifndef __ARM_NEON__
void bgr888_to_rgb565(void *dst_, const void *src_, int bytes)
{
- const unsigned char *src = src_;
- unsigned int *dst = dst_;
- unsigned int r1, g1, b1, r2, g2, b2;
-
- for (; bytes >= 6; bytes -= 6, src += 6, dst++) {
- r1 = src[0] & 0xf8;
- g1 = src[1] & 0xfc;
- b1 = src[2] & 0xf8;
- r2 = src[3] & 0xf8;
- g2 = src[4] & 0xfc;
- b2 = src[5] & 0xf8;
- *dst = (r2 << 24) | (g2 << 19) | (b2 << 13) |
- (r1 << 8) | (g1 << 3) | (b1 >> 3);
- }
+ const unsigned char *src = src_;
+ unsigned int *dst = dst_;
+ unsigned int r1, g1, b1, r2, g2, b2;
+
+ for (; bytes >= 6; bytes -= 6, src += 6, dst++) {
+ r1 = src[0] & 0xf8;
+ g1 = src[1] & 0xfc;
+ b1 = src[2] & 0xf8;
+ r2 = src[3] & 0xf8;
+ g2 = src[4] & 0xfc;
+ b2 = src[5] & 0xf8;
+ *dst = (r2 << 24) | (g2 << 19) | (b2 << 13) |
+ (r1 << 8) | (g1 << 3) | (b1 >> 3);
+ }
}
// TODO?