PKGBUILDs/community/xbmc/alarm.patch
2012-06-08 19:57:07 -04:00

136 lines
6.5 KiB
Diff

diff -urN a/configure b/configure
--- a/configure 2012-03-24 13:06:47.000000000 -0600
+++ b/configure 2012-06-08 14:37:25.504009179 -0600
@@ -15984,38 +15984,9 @@
LIBS="$LIBS -framework ApplicationServices"
fi
elif test "$use_arch" = "arm"; then
- CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
- if test "$use_tegra" = "yes"; then
- # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="-mfpu=vfpv3-d16"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo;
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
- use_cpu=cortex-a9
-else
- CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- use_cpu=cortex-a8
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- else
- # Compile for ARMv7a architecture, CortexA8 cpu and check for enabled NEON coprocessor
- CFLAGS="$CFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- if test "$use_neon" = "yes"; then
- CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
- fi
- fi
+ CFLAGS="$CFLAGS"
+ CXXFLAGS="$CXXFLAGS"
+ FFMPEG_EXTRACFLAGS=""
fi
# Checks for library functions.
diff -urN a/configure.in b/configure.in
--- a/configure.in 2012-03-21 16:07:50.000000000 -0600
+++ b/configure.in 2012-06-08 14:46:52.687054825 -0600
@@ -572,32 +572,9 @@
LIBS="$LIBS -framework ApplicationServices"
fi
elif test "$use_arch" = "arm"; then
- CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
- if test "$use_tegra" = "yes"; then
- # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="-mfpu=vfpv3-d16"
- AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE([int foo;])],
- [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
- use_cpu=cortex-a9],
- [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- use_cpu=cortex-a8])
- else
- # Compile for ARMv7a architecture, CortexA8 cpu and check for enabled NEON coprocessor
- CFLAGS="$CFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- if test "$use_neon" = "yes"; then
- CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
- fi
- fi
+ CFLAGS="$CFLAGS"
+ CXXFLAGS="$CXXFLAGS"
+ FFMPEG_EXTRACFLAGS=""
fi
# Checks for library functions.
diff -urN a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
--- a/xbmc/utils/MathUtils.h 2012-03-21 16:07:50.000000000 -0600
+++ b/xbmc/utils/MathUtils.h 2012-06-08 15:43:59.044891727 -0600
@@ -63,46 +63,8 @@
sar i, 1
}
#else
-#if defined(__powerpc__) || defined(__ppc__)
+#if defined(__powerpc__) || defined(__ppc__) || defined(__arm__)
i = floor(x + round_to_nearest);
-#elif defined(__arm__)
- // From 'ARM®v7-M Architecture Reference Manual' page A7-569:
- // "The floating-point to integer operation (vcvt) [normally] uses the Round towards Zero rounding mode"
- // Because of this...we must use some less-than-straightforward logic to perform this operation without
- // changing the rounding mode flags
-
- /* The assembly below implements the following logic:
- if (x < 0)
- inc = -0.5f
- else
- inc = 0.5f
- int_val = trunc(x+inc);
- err = x - int_val;
- if (err == 0.5f)
- int_val++;
- return int_val;
- */
-
- __asm__ __volatile__ (
- "vmov.F64 d1,%[rnd_val] \n\t" // Copy round_to_nearest into a working register (d1 = 0.5)
- "fcmpezd %P[value] \n\t" // Check value against zero (value == 0?)
- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags
- "it mi \n\t"
- "vnegmi.F64 d1, d1 \n\t" // if N-flag is set, negate round_to_nearest (if (value < 0) d1 = -1 * d1)
- "vadd.F64 d1,%P[value],d1 \n\t" // Add round_to_nearest to value, store result in working register (d1 += value)
- "vcvt.S32.F64 s3,d1 \n\t" // Truncate(round towards zero) (s3 = (int)d1)
- "vmov %[result],s3 \n\t" // Store the integer result in a general-purpose register (result = s3)
- "vcvt.F64.S32 d1,s3 \n\t" // Convert back to floating-point (d1 = (double)s3)
- "vsub.F64 d1,%P[value],d1 \n\t" // Calculate the error (d1 = value - d1)
- "vmov.F64 d2,%[rnd_val] \n\t" // d2 = 0.5;
- "fcmped d1, d2 \n\t" // (d1 == 0.5?)
- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags
- "it eq \n\t"
- "addeq %[result],#1 \n\t" // (if (d1 == d2) result++;)
- : [result] "=r"(i) // Outputs
- : [rnd_val] "Dv" (round_to_nearest), [value] "w"(x) // Inputs
- : "d1", "d2", "s3" // Clobbers
- );
#else
__asm__ __volatile__ (
"fadd %%st\n\t"