a 4:2:2 or 4:2:0 JPEG image using the merged (non-fancy) upsampling algorithms
(that is, when setting `cinfo.do_fancy_upsampling` to `FALSE`.)
+7. The new CMake-based build system will now disable the MIPS DSPr2 SIMD
+extensions if it detects that the compiler does not support DSPr2 instructions.
+
1.5.90 (2.0 beta1)
==================
set(EFFECTIVE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CMAKE_ASM_FLAGS_${CMAKE_BUILD_TYPE_UC}}")
message(STATUS "CMAKE_ASM_FLAGS = ${EFFECTIVE_ASM_FLAGS}")
+set(CMAKE_REQUIRED_FLAGS -mdspr2)
+
+check_c_source_compiles("
+ #if !(defined(__mips__) && __mips_isa_rev >= 2)
+ #error MIPS DSPr2 is currently only available on MIPS32r2 platforms.
+ #endif
+ int main(void) {
+ int c = 0, a = 0, b = 0;
+ __asm__ __volatile__ (
+ \"precr.qb.ph %[c], %[a], %[b]\"
+ : [c] \"=r\" (c)
+ : [a] \"r\" (a), [b] \"r\" (b)
+ );
+ return c;
+ }" HAVE_DSPR2)
+
+unset(CMAKE_REQUIRED_FLAGS)
+
+if(NOT HAVE_DSPR2)
+ simd_fail("SIMD extensions not available for this CPU")
+ return()
+endif()
+
add_library(simd OBJECT ${CPU_TYPE}/jsimd_dspr2.S ${CPU_TYPE}/jsimd.c)
if(CMAKE_POSITION_INDEPENDENT_CODE OR ENABLE_SHARED)