diff --git a/3rdparty/SoundTouch/CMakeLists.txt b/3rdparty/SoundTouch/CMakeLists.txt index 0a4aa03c0d..7520eb46a8 100644 --- a/3rdparty/SoundTouch/CMakeLists.txt +++ b/3rdparty/SoundTouch/CMakeLists.txt @@ -39,7 +39,7 @@ set(SoundTouchSources RateTransposer.cpp SoundTouch.cpp TDStretch.cpp - WavFile.cpp + # WavFile.cpp # directly include in spu2x cpu_detect_x86_gcc.cpp mmx_optimized.cpp sse_optimized.cpp) @@ -55,7 +55,7 @@ set(SoundTouchHeaders STTypes.h SoundTouch.h TDStretch.h - WavFile.h + # WavFile.h # directly include in spu2x cpu_detect.h) # add library diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake index e87f6f7467..099e21b9b8 100644 --- a/cmake/SearchForStuff.cmake +++ b/cmake/SearchForStuff.cmake @@ -23,9 +23,6 @@ if(Linux) endif(GTK2_FOUND) find_package(X11) - # Manually find Xxf86vm because it is not done in the module... - FIND_LIBRARY(X11_Xxf86vm_LIB Xxf86vm ${X11_LIB_SEARCH_PATH}) - MARK_AS_ADVANCED(X11_Xxf86vm_LIB) endif(Linux) ## Use cmake package to find module diff --git a/common/src/Utilities/x86/MemcpyVibes.cpp b/common/src/Utilities/x86/MemcpyVibes.cpp index 33d2664f09..e3b99b63af 100644 --- a/common/src/Utilities/x86/MemcpyVibes.cpp +++ b/common/src/Utilities/x86/MemcpyVibes.cpp @@ -183,11 +183,11 @@ __fi void memcpy_vibes(void * dest, const void * src, int size) { __asm__ __volatile__ ( ".intel_syntax noprefix\n" - "mov eax, %[qwc]\n" // keep a copy of count for looping - "shr eax, 1\n" - "jz memcpy_qwc_1_%=\n" // only one 16 byte block to copy? + "sub %[qwc], 1\n" // dec the counter to ease the count of 16bytes block later (optimization) + // Note after this line, real value of the counter is %[qwc] + 1 + "jle memcpy_qwc_1_%=\n" // only one 16 byte block to copy? Or nothing. - "cmp eax, 64\n" // "IN_CACHE_COPY/32" + "cmp %[qwc], 127\n" // "IN_CACHE_COPY/16" "jb memcpy_qwc_loop1_%=\n" // small copies should be cached (definite speedup --air) "memcpy_qwc_loop2_%=:\n" // 32-byte blocks, uncached copy @@ -204,8 +204,8 @@ __fi void memcpy_vibes(void * dest, const void * src, int size) { "add %[src],32\n" // update source pointer "add %[dest],32\n" // update destination pointer - "sub eax,1\n" - "jnz memcpy_qwc_loop2_%=\n" // last 64-byte block? + "sub %[qwc],2\n" + "jg memcpy_qwc_loop2_%=\n" // last 64-byte block? "sfence\n" // flush the write buffer "jmp memcpy_qwc_1_%=\n" @@ -227,12 +227,12 @@ __fi void memcpy_vibes(void * dest, const void * src, int size) { "add %[src],32\n" // update source pointer "add %[dest],32\n" // update destination pointer - "sub eax,1\n" - "jnz memcpy_qwc_loop1_%=\n" // last 64-byte block? + "sub %[qwc],2\n" + "jg memcpy_qwc_loop2_%=\n" // last 64-byte block? "memcpy_qwc_1_%=:\n" - "test %[qwc],1\n" - "jz memcpy_qwc_final_%=\n" + "cmp %[qwc],0\n" + "jne memcpy_qwc_final_%=\n" "movq mm0,[%[src]]\n" "movq mm1,[%[src]+8]\n" "movq [%[dest]], mm0\n" @@ -243,7 +243,7 @@ __fi void memcpy_vibes(void * dest, const void * src, int size) { ".att_syntax\n" : "=&r"(dest), "=&r"(src), "=&r"(qwc) : [dest]"0"(dest), [src]"1"(src), [qwc]"2"(qwc) - : "memory", "eax", "mm0", "mm1", "mm2", "mm3" + : "memory", "mm0", "mm1", "mm2", "mm3" ); } #endif diff --git a/common/src/x86emitter/LnxCpuDetect.cpp b/common/src/x86emitter/LnxCpuDetect.cpp index 145e382d7c..5c3c8c36a2 100644 --- a/common/src/x86emitter/LnxCpuDetect.cpp +++ b/common/src/x86emitter/LnxCpuDetect.cpp @@ -16,6 +16,7 @@ #include "PrecompiledHeader.h" #include "cpudetect_internal.h" +#include // Note: Apparently this solution is Linux/Solaris only. // FreeBSD/OsX need something far more complicated (apparently) diff --git a/plugins/FWnull/Linux/FWnull.cbp b/plugins/FWnull/Linux/FWnull.cbp index 572b5391e7..61614cd2b3 100644 --- a/plugins/FWnull/Linux/FWnull.cbp +++ b/plugins/FWnull/Linux/FWnull.cbp @@ -16,7 +16,7 @@ -