]> git.sesse.net Git - x264/commitdiff
Disable Altivec and VIS optimizations when --disable-asm is specified
authorDavid Conrad <lessen42@gmail.com>
Thu, 25 Feb 2010 00:39:57 +0000 (19:39 -0500)
committerFiona Glaser <fiona@x264.com>
Thu, 25 Feb 2010 00:50:57 +0000 (16:50 -0800)
Makefile
common/dct.c
common/frame.c
common/mc.c
common/pixel.c
common/predict.c
common/quant.c
configure

index 3ac975d51292f5e072a3f8d440786533594284cb..c0927fce84aa83178b829a2715b37d7d657e392b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -75,10 +75,12 @@ endif
 
 # AltiVec optims
 ifeq ($(ARCH),PPC)
+ifneq ($(AS),)
 SRCS += common/ppc/mc.c common/ppc/pixel.c common/ppc/dct.c \
         common/ppc/quant.c common/ppc/deblock.c \
         common/ppc/predict.c
 endif
+endif
 
 # NEON optims
 ifeq ($(ARCH),ARM)
index 55f78a51b5967d4c59b55fcb246f4e9c4f10852b..07af94f809a853f5c61976a22dbf2bbe3243171d 100644 (file)
@@ -491,7 +491,7 @@ void x264_dct_init( int cpu, x264_dct_function_t *dctf )
 
 #endif //HAVE_MMX
 
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if( cpu&X264_CPU_ALTIVEC )
     {
         dctf->sub4x4_dct    = x264_sub4x4_dct_altivec;
@@ -742,7 +742,7 @@ void x264_zigzag_init( int cpu, x264_zigzag_function_t *pf, int b_interlaced )
         }
 #endif
 
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
         if( cpu&X264_CPU_ALTIVEC )
             pf->scan_4x4   = x264_zigzag_scan_4x4_field_altivec;
 #endif
@@ -771,7 +771,7 @@ void x264_zigzag_init( int cpu, x264_zigzag_function_t *pf, int b_interlaced )
         }
 #endif
 
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
         if( cpu&X264_CPU_ALTIVEC )
             pf->scan_4x4   = x264_zigzag_scan_4x4_frame_altivec;
 #endif
index ee1b8f3c1d7d735e1ad5a0c62d48134e6e9d46d3..03e7c3d414fd1aab7011c0577f981ba0ecc10a69 100644 (file)
@@ -913,13 +913,13 @@ void x264_deblock_init( int cpu, x264_deblock_function_t *pf )
     }
 #endif
 
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if( cpu&X264_CPU_ALTIVEC )
     {
         pf->deblock_v_luma = x264_deblock_v_luma_altivec;
         pf->deblock_h_luma = x264_deblock_h_luma_altivec;
    }
-#endif // ARCH_PPC
+#endif // HAVE_ALTIVEC
 
 #ifdef HAVE_ARMV6
    if( cpu&X264_CPU_NEON )
index d062af3911442093bf8e925b0f6f1989c80d6173..ac41e9b313dc2b051df086cc791e390b6a2fe2c0 100644 (file)
@@ -502,7 +502,7 @@ void x264_mc_init( int cpu, x264_mc_functions_t *pf )
 #ifdef HAVE_MMX
     x264_mc_init_mmx( cpu, pf );
 #endif
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if( cpu&X264_CPU_ALTIVEC )
         x264_mc_altivec_init( pf );
 #endif
index 7c6023711e94e18b37ff794df07addfee0de54af..02c490fd53819a12a4e171ca86176a1e5e5f4aec 100644 (file)
@@ -862,7 +862,7 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf )
         }
     }
 #endif
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if( cpu&X264_CPU_ALTIVEC )
     {
         x264_pixel_altivec_init( pixf );
index 119458d0becb0ba1b49e08b4a6ff84a2430d0d5f..6c3047426d0a6aa8dc8eb80f2a18a68811a054a1 100644 (file)
@@ -754,7 +754,7 @@ void x264_predict_16x16_init( int cpu, x264_predict_t pf[7] )
     x264_predict_16x16_init_mmx( cpu, pf );
 #endif
 
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if( cpu&X264_CPU_ALTIVEC )
     {
         x264_predict_16x16_init_altivec( pf );
@@ -780,7 +780,7 @@ void x264_predict_8x8c_init( int cpu, x264_predict_t pf[7] )
     x264_predict_8x8c_init_mmx( cpu, pf );
 #endif
 
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if( cpu&X264_CPU_ALTIVEC )
     {
         x264_predict_8x8c_init_altivec( pf );
index 7434a3d82b3832714bef357a39b4d8f888ce0e18..b0d1afb5d64f11ffa6e21b43d9d17150db1006e6 100644 (file)
@@ -380,7 +380,7 @@ void x264_quant_init( x264_t *h, int cpu, x264_quant_function_t *pf )
     }
 #endif // HAVE_MMX
 
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if( cpu&X264_CPU_ALTIVEC ) {
         pf->quant_2x2_dc = x264_quant_2x2_dc_altivec;
         pf->quant_4x4_dc = x264_quant_4x4_dc_altivec;
index d0ff43ad35a7eab3e29db84d927a445044a9eebb..8ed83abc749b01bd57968e389e413842eac8f151 100755 (executable)
--- a/configure
+++ b/configure
@@ -12,7 +12,7 @@ echo "  --disable-lavf-input     disables libavformat input"
 echo "  --disable-ffms-input     disables ffmpegsource input"
 echo "  --disable-mp4-output     disables mp4 output (using gpac)"
 echo "  --disable-pthread        disables multithreaded encoding"
-echo "  --disable-asm            disables assembly optimizations on x86 and arm"
+echo "  --disable-asm            disables platform-specific assembly optimizations"
 echo "  --enable-debug           adds -g, doesn't strip"
 echo "  --enable-gprof           adds -pg, doesn't strip"
 echo "  --enable-visualize       enables visualization (X11 only)"
@@ -348,20 +348,23 @@ case $host_cpu in
     ;;
   powerpc|powerpc64)
     ARCH="PPC"
-    if [ $SYS = MACOSX ]
-    then
-      CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
-    else
-      CFLAGS="$CFLAGS -maltivec -mabi=altivec"
-      define HAVE_ALTIVEC_H
+    if [ $asm = yes ] ; then
+      define HAVE_ALTIVEC
+      AS="${AS-${cross_prefix}gcc}"
+      if [ $SYS = MACOSX ] ; then
+        CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
+      else
+        CFLAGS="$CFLAGS -maltivec -mabi=altivec"
+        define HAVE_ALTIVEC_H
+      fi
     fi
     ;;
   sparc)
-    if test "$(uname -m)" = "sun4u"; then
+    if [ $asm = yes ] && test "$(uname -m)" = "sun4u"; then
       ARCH="UltraSparc"
       CFLAGS="$CFLAGS -mcpu=ultrasparc"
       LDFLAGS="$LDFLAGS -mcpu=ultrasparc"
-      AS="${cross_prefix}as"
+      AS="${AS-${cross_prefix}as}"
       ASFLAGS="$ASFLAGS -xarch=v8plusa"
     else
       ARCH="Sparc"