diff --git a/Assets/dll/libLibretroBridge.so b/Assets/dll/libLibretroBridge.so index 32b4676fac..5170685b8d 100755 Binary files a/Assets/dll/libLibretroBridge.so and b/Assets/dll/libLibretroBridge.so differ diff --git a/Assets/dll/libMSXHawk.so b/Assets/dll/libMSXHawk.so index a6d59e33c1..7663858e86 100755 Binary files a/Assets/dll/libMSXHawk.so and b/Assets/dll/libMSXHawk.so differ diff --git a/Assets/dll/libbizhash.so b/Assets/dll/libbizhash.so old mode 100644 new mode 100755 index e2ee422b9e..64f3533c97 Binary files a/Assets/dll/libbizhash.so and b/Assets/dll/libbizhash.so differ diff --git a/Assets/dll/libbizlynx.dll.so b/Assets/dll/libbizlynx.dll.so index e12b22ba65..4f20ab1cae 100755 Binary files a/Assets/dll/libbizlynx.dll.so and b/Assets/dll/libbizlynx.dll.so differ diff --git a/Assets/dll/libbizswan.dll.so b/Assets/dll/libbizswan.dll.so old mode 100644 new mode 100755 index a8da74e6f0..bd11325faa Binary files a/Assets/dll/libbizswan.dll.so and b/Assets/dll/libbizswan.dll.so differ diff --git a/Assets/dll/libblip_buf.so b/Assets/dll/libblip_buf.so index 9c060d4189..2b7725fff3 100755 Binary files a/Assets/dll/libblip_buf.so and b/Assets/dll/libblip_buf.so differ diff --git a/Assets/dll/libdarm.so b/Assets/dll/libdarm.so index fe0e31d009..ba229dabcd 100755 Binary files a/Assets/dll/libdarm.so and b/Assets/dll/libdarm.so differ diff --git a/Assets/dll/libemu83.so b/Assets/dll/libemu83.so old mode 100644 new mode 100755 index 17999891f2..2fbef32e03 Binary files a/Assets/dll/libemu83.so and b/Assets/dll/libemu83.so differ diff --git a/Assets/dll/libfwunpack.so b/Assets/dll/libfwunpack.so old mode 100644 new mode 100755 index e0be514cc3..0db8fce2d7 Binary files a/Assets/dll/libfwunpack.so and b/Assets/dll/libfwunpack.so differ diff --git a/Assets/dll/libgambatte.so b/Assets/dll/libgambatte.so index 4c71502707..cb231eea19 100644 Binary files a/Assets/dll/libgambatte.so and b/Assets/dll/libgambatte.so differ diff --git a/Assets/dll/libmgba.dll.so b/Assets/dll/libmgba.dll.so index 0e4f8a25df..043244ce84 100644 Binary files a/Assets/dll/libmgba.dll.so and b/Assets/dll/libmgba.dll.so differ diff --git a/Assets/dll/librcheevos.so b/Assets/dll/librcheevos.so old mode 100644 new mode 100755 index 5630e7e983..22acf83d39 Binary files a/Assets/dll/librcheevos.so and b/Assets/dll/librcheevos.so differ diff --git a/Assets/dll/libsameboy.so b/Assets/dll/libsameboy.so index 24a56dad87..f241da66dd 100755 Binary files a/Assets/dll/libsameboy.so and b/Assets/dll/libsameboy.so differ diff --git a/ExternalProjects/LibBizHash/crc32/crc32_fold_pclmulqdq.c b/ExternalProjects/LibBizHash/crc32/crc32_fold_pclmulqdq.c index f5e68e5491..a9697c9a7e 100644 --- a/ExternalProjects/LibBizHash/crc32/crc32_fold_pclmulqdq.c +++ b/ExternalProjects/LibBizHash/crc32/crc32_fold_pclmulqdq.c @@ -32,7 +32,7 @@ extern uint64_t fold_16_vpclmulqdq(__m128i *xmm_crc0, __m128i *xmm_crc1, extern uint64_t fold_16_vpclmulqdq_copy(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3, uint8_t *dst, const uint8_t *src, uint64_t len); -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static void fold_1(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) { const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596); __m128i x_tmp3; @@ -53,7 +53,7 @@ static void fold_1(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m1 *xmm_crc3 = _mm_castps_si128(ps_res); } -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static void fold_2(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) { const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596); __m128i x_tmp3, x_tmp2; @@ -82,7 +82,7 @@ static void fold_2(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m1 *xmm_crc3 = _mm_castps_si128(ps_res31); } -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static void fold_3(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) { const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596); __m128i x_tmp3; @@ -117,7 +117,7 @@ static void fold_3(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m1 *xmm_crc3 = _mm_castps_si128(ps_res32); } -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static void fold_4(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) { const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596); __m128i x_tmp0, x_tmp1, x_tmp2, x_tmp3; @@ -178,7 +178,7 @@ static const unsigned _Alignas(32) pshufb_shf_table[60] = { 0x0201008f, 0x06050403, 0x0a090807, 0x0e0d0c0b /* shl 1 (16 -15)/shr15*/ }; -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static void partial_fold(const size_t len, __m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3, __m128i *xmm_crc_part) { @@ -224,7 +224,7 @@ static void partial_fold(const size_t len, __m128i *xmm_crc0, __m128i *xmm_crc1, *xmm_crc3 = _mm_castps_si128(ps_res); } -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static inline void crc32_fold_load(__m128i *fold, __m128i *fold0, __m128i *fold1, __m128i *fold2, __m128i *fold3) { *fold0 = _mm_load_si128(fold + 0); *fold1 = _mm_load_si128(fold + 1); @@ -232,7 +232,7 @@ static inline void crc32_fold_load(__m128i *fold, __m128i *fold0, __m128i *fold1 *fold3 = _mm_load_si128(fold + 3); } -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static inline void crc32_fold_save(__m128i *fold, __m128i fold0, __m128i fold1, __m128i fold2, __m128i fold3) { _mm_storeu_si128(fold + 0, fold0); _mm_storeu_si128(fold + 1, fold1); @@ -240,7 +240,7 @@ static inline void crc32_fold_save(__m128i *fold, __m128i fold0, __m128i fold1, _mm_storeu_si128(fold + 3, fold3); } -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static uint32_t crc32_fold_pclmulqdq_reset(crc32_fold *crc) { __m128i xmm_crc0 = _mm_cvtsi32_si128(0x9db42487); __m128i xmm_zero = _mm_setzero_si128(); @@ -251,7 +251,7 @@ static uint32_t crc32_fold_pclmulqdq_reset(crc32_fold *crc) { #define ONCE(op) if (first) { first = 0; op; } #define XOR_INITIAL(where) ONCE(where = _mm_xor_si128(where, xmm_initial)) -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) void crc32_fold_pclmulqdq(crc32_fold *crc, const uint8_t *src, uint64_t len, uint32_t init_crc) { size_t algn_diff; __m128i xmm_t0, xmm_t1, xmm_t2, xmm_t3; @@ -376,7 +376,7 @@ static const unsigned _Alignas(16) crc_mask2[4] = { 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }; -__attribute__((target("sse4.1", "pclmul"))) +__attribute__((target("sse4.1,pclmul"))) static uint32_t crc32_fold_pclmulqdq_final(crc32_fold *crc) { const __m128i xmm_mask = _mm_load_si128((__m128i *)crc_mask); const __m128i xmm_mask2 = _mm_load_si128((__m128i *)crc_mask2); @@ -436,7 +436,8 @@ static uint32_t crc32_fold_pclmulqdq_final(crc32_fold *crc) { return crc->value; } -__attribute__((target("sse4.1", "pclmul"))) __attribute__((visibility("hidden"))) +__attribute__((target("sse4.1,pclmul"))) +__attribute__((visibility("hidden"))) uint32_t crc32_pclmulqdq(uint32_t crc32, const uint8_t *buf, uint32_t len) { // For lens < 64, crc32_braid method is faster. if (len < 64) diff --git a/ExternalProjects/LibBizHash/crc32/crc32_fold_vpclmulqdq.c b/ExternalProjects/LibBizHash/crc32/crc32_fold_vpclmulqdq.c index 21daa2ecc9..af64c069db 100644 --- a/ExternalProjects/LibBizHash/crc32/crc32_fold_vpclmulqdq.c +++ b/ExternalProjects/LibBizHash/crc32/crc32_fold_vpclmulqdq.c @@ -9,7 +9,7 @@ #define ONCE(op) if (first) { first = 0; op; } #define XOR_INITIAL(where) ONCE(where = _mm512_xor_si512(where, zmm_initial)) -__attribute__((target("sse4.1", "pclmul", "avx512f", "vpclmulqdq"))) +__attribute__((target("sse4.1,pclmul,avx512f,vpclmulqdq"))) uint64_t fold_16_vpclmulqdq(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3, const uint8_t *src, uint64_t len, __m128i init_crc, int32_t first) { diff --git a/ExternalProjects/LibBizHash/sha1/sha1_sha.c b/ExternalProjects/LibBizHash/sha1/sha1_sha.c index 2bc1389824..124d3b0b2b 100644 --- a/ExternalProjects/LibBizHash/sha1/sha1_sha.c +++ b/ExternalProjects/LibBizHash/sha1/sha1_sha.c @@ -6,7 +6,7 @@ #include #include "common.h" -__attribute__((target("sha", "sse4.1"))) +__attribute__((target("sha,sse4.1"))) void sha1_sha(uint32_t state[5], const uint8_t data[], uint32_t length) { __m128i ABCD, ABCD_SAVE, E0, E0_SAVE, E1; __m128i MSG0, MSG1, MSG2, MSG3; diff --git a/ExternalProjects/librcheevos/rcheevos b/ExternalProjects/librcheevos/rcheevos index b91d539638..46e1feaafb 160000 --- a/ExternalProjects/librcheevos/rcheevos +++ b/ExternalProjects/librcheevos/rcheevos @@ -1 +1 @@ -Subproject commit b91d539638f08c7810094e9ed8aafffd72a7af26 +Subproject commit 46e1feaafb2e777ced9fbef14a22d54fd0191287 diff --git a/libHawk/MSXHawk/Makefile b/libHawk/MSXHawk/Makefile index 4f5d5d1548..71c0e89ec9 100644 --- a/libHawk/MSXHawk/Makefile +++ b/libHawk/MSXHawk/Makefile @@ -1,7 +1,7 @@ CXX = g++ CFLAGS = -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-value -Wno-type-limits -O3 -flto -fvisibility=internal -LFLAGS = -shared +LFLAGS = -shared -s SRCS = $(wildcard MSXHawk/*.cpp) diff --git a/submodules/sameboy/Makefile b/submodules/sameboy/Makefile index af2db09c12..5201230c82 100644 --- a/submodules/sameboy/Makefile +++ b/submodules/sameboy/Makefile @@ -8,7 +8,7 @@ OBJ_DIR := $(OUT_DIR)/release DOBJ_DIR := $(OUT_DIR)/debug CC := gcc -CCFLAGS := -I$(CORE_DIR) -Wall -Wextra -std=gnu11 -fomit-frame-pointer -Wno-strict-aliasing \ +CCFLAGS := -I$(CORE_DIR) -Wall -Wextra -std=gnu11 -Wno-strict-aliasing \ -Wno-multichar -Wno-implicit-fallthrough -Wno-sign-compare -Wno-unused-parameter \ -Wno-int-in-bool-context -Wno-missing-field-initializers -Wno-overflow -Wno-unused-result \ -D_GNU_SOURCE -D_USE_MATH_DEFINES -DNDEBUG -DGB_INTERNAL -DGB_DISABLE_DEBUGGER \ @@ -18,6 +18,7 @@ ifeq ($(OS),Windows_NT) TARGET := libsameboy.dll else TARGET := libsameboy.so +CCFLAGS := $(CCFLAGS) -fPIC endif SRCS := \ @@ -42,7 +43,7 @@ LDFLAGS := -shared -Wno-attributes CCFLAGS_DEBUG := -O0 -g CCFLAGS_RELEASE := -O3 -flto LDFLAGS_DEBUG := -LDFLAGS_RELEASE := -s +LDFLAGS_RELEASE := -s -Wno-lto-type-mismatch _OBJS := $(addsuffix .o,$(realpath $(SRCS))) OBJS := $(patsubst $(ROOT_DIR)%,$(OBJ_DIR)%,$(_OBJS))