Merge master branch into experimental
authorJohn Koleszar <jkoleszar@google.com>
Fri, 1 Mar 2013 00:25:38 +0000 (16:25 -0800)
committerJohn Koleszar <jkoleszar@google.com>
Fri, 1 Mar 2013 19:06:05 +0000 (11:06 -0800)
Picks up some build system changes, compiler warning fixes, etc.

Change-Id: I2712f99e653502818a101a72696ad54018152d4e

14 files changed:
1  2 
build/make/configure.sh
configure
test/test.mk
vp8/decoder/onyxd_if.c
vp9/common/vp9_findnearmv.c
vp9/common/vp9_rtcd_defs.sh
vp9/common/x86/vp9_subpixel_8t_ssse3.asm
vp9/decoder/vp9_decodframe.c
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_variance.h
vp9/encoder/x86/vp9_sad_sse3.asm
vpx/vpx_decoder.h
vpxenc.c

              ;;
          esac
  
 -        if enabled gcc && ! disabled sse4_1 && ! check_cflags -msse4.1; then
 +        soft_enable runtime_cpu_detect
 +        soft_enable mmx
 +        soft_enable sse
 +        soft_enable sse2
 +        soft_enable sse3
 +        soft_enable ssse3
+         # We can't use 'check_cflags' until the compiler is configured and CC is
+         # populated.
 +        if enabled gcc && ! disabled sse4_1 && ! check_cflags -msse4; then
              RTCD_OPTIONS="${RTCD_OPTIONS}--disable-sse4_1 "
          else
              soft_enable sse4_1
diff --cc configure
Simple merge
diff --cc test/test.mk
Simple merge
@@@ -367,6 -300,25 +300,25 @@@ int check_fragments_for_errors(VP8D_COM
          return 0;
      }
  
 - 
+     return 1;
+ }
++
+ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, size_t size,
+                                   const uint8_t *source,
+                                   int64_t time_stamp)
+ {
+ #if HAVE_NEON
+     int64_t dx_store_reg[8];
+ #endif
+     VP8_COMMON *cm = &pbi->common;
+     int retcode = -1;
+     pbi->common.error.error_code = VPX_CODEC_OK;
+     retcode = check_fragments_for_errors(pbi);
+     if(retcode <= 0)
+         return retcode;
  #if HAVE_NEON
  #if CONFIG_RUNTIME_CPU_DETECT
      if (cm->cpu_caps & HAS_NEON)
Simple merge
Simple merge
@@@ -380,316 -424,21 +380,316 @@@ sym(vp9_filter_block1d8_v8_ssse3)
      %define k6k7 [rsp + 16*3]
      %define krd [rsp + 16*4]
  
 -    mov         rdx, arg(5)                 ;filter ptr
 -    mov         rsi, arg(0)                 ;src_ptr
 -    mov         rdi, arg(2)                 ;output_ptr
 -    mov         rcx, 0x0400040
 -
 -    movdqa      xmm4, [rdx]                 ;load filters
 -    movq        xmm5, rcx
 -    packsswb    xmm4, xmm4
 -    pshuflw     xmm0, xmm4, 0b              ;k0_k1
 -    pshuflw     xmm1, xmm4, 01010101b       ;k2_k3
 -    pshuflw     xmm2, xmm4, 10101010b       ;k4_k5
 -    pshuflw     xmm3, xmm4, 11111111b       ;k6_k7
 +    VERTx8 0
  
 -    punpcklqdq  xmm0, xmm0
 -    punpcklqdq  xmm1, xmm1
 +    add rsp, 16*5
 +    pop rsp
 +    pop rbx
 +    ; begin epilog
 +    pop rdi
 +    pop rsi
 +    RESTORE_XMM
 +    UNSHADOW_ARGS
 +    pop         rbp
 +    ret
 +
 +;void vp9_filter_block1d16_v8_ssse3
 +;(
 +;    unsigned char *src_ptr,
 +;    unsigned int   src_pitch,
 +;    unsigned char *output_ptr,
 +;    unsigned int   out_pitch,
 +;    unsigned int   output_height,
 +;    short *filter
 +;)
 +global sym(vp9_filter_block1d16_v8_ssse3) PRIVATE
 +sym(vp9_filter_block1d16_v8_ssse3):
 +    push        rbp
 +    mov         rbp, rsp
 +    SHADOW_ARGS_TO_STACK 6
 +    SAVE_XMM 7
 +    push        rsi
 +    push        rdi
 +    push        rbx
 +    ; end prolog
 +
 +    ALIGN_STACK 16, rax
 +    sub         rsp, 16*5
 +    %define k0k1 [rsp + 16*0]
 +    %define k2k3 [rsp + 16*1]
 +    %define k4k5 [rsp + 16*2]
 +    %define k6k7 [rsp + 16*3]
 +    %define krd [rsp + 16*4]
 +
 +    VERTx16 0
 +
 +    add rsp, 16*5
 +    pop rsp
 +    pop rbx
 +    ; begin epilog
 +    pop rdi
 +    pop rsi
 +    RESTORE_XMM
 +    UNSHADOW_ARGS
 +    pop         rbp
 +    ret
 +
 +;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +
 +global sym(vp9_filter_block1d4_v8_avg_ssse3) PRIVATE
 +sym(vp9_filter_block1d4_v8_avg_ssse3):
 +    push        rbp
 +    mov         rbp, rsp
 +    SHADOW_ARGS_TO_STACK 6
 +    SAVE_XMM 7
 +    push        rsi
 +    push        rdi
 +    push        rbx
 +    ; end prolog
 +
 +    ALIGN_STACK 16, rax
 +    sub         rsp, 16*5
 +    %define k0k1 [rsp + 16*0]
 +    %define k2k3 [rsp + 16*1]
 +    %define k4k5 [rsp + 16*2]
 +    %define k6k7 [rsp + 16*3]
 +    %define krd [rsp + 16*4]
 +
 +    VERTx4 1
 +
 +    add rsp, 16*5
 +    pop rsp
 +    pop rbx
 +    ; begin epilog
 +    pop rdi
 +    pop rsi
 +    RESTORE_XMM
 +    UNSHADOW_ARGS
 +    pop         rbp
 +    ret
 +
 +global sym(vp9_filter_block1d8_v8_avg_ssse3) PRIVATE
 +sym(vp9_filter_block1d8_v8_avg_ssse3):
 +    push        rbp
 +    mov         rbp, rsp
 +    SHADOW_ARGS_TO_STACK 6
 +    SAVE_XMM 7
 +    push        rsi
 +    push        rdi
 +    push        rbx
 +    ; end prolog
 +
 +    ALIGN_STACK 16, rax
 +    sub         rsp, 16*5
 +    %define k0k1 [rsp + 16*0]
 +    %define k2k3 [rsp + 16*1]
 +    %define k4k5 [rsp + 16*2]
 +    %define k6k7 [rsp + 16*3]
 +    %define krd [rsp + 16*4]
 +
 +    VERTx8 1
 +
 +    add rsp, 16*5
 +    pop rsp
 +    pop rbx
 +    ; begin epilog
 +    pop rdi
 +    pop rsi
 +    RESTORE_XMM
 +    UNSHADOW_ARGS
 +    pop         rbp
 +    ret
 +
 +global sym(vp9_filter_block1d16_v8_avg_ssse3) PRIVATE
 +sym(vp9_filter_block1d16_v8_avg_ssse3):
 +    push        rbp
 +    mov         rbp, rsp
 +    SHADOW_ARGS_TO_STACK 6
 +    SAVE_XMM 7
 +    push        rsi
 +    push        rdi
 +    push        rbx
 +    ; end prolog
 +
 +    ALIGN_STACK 16, rax
 +    sub         rsp, 16*5
 +    %define k0k1 [rsp + 16*0]
 +    %define k2k3 [rsp + 16*1]
 +    %define k4k5 [rsp + 16*2]
 +    %define k6k7 [rsp + 16*3]
 +    %define krd [rsp + 16*4]
 +
 +    VERTx16 1
 +
 +    add rsp, 16*5
 +    pop rsp
 +    pop rbx
 +    ; begin epilog
 +    pop rdi
 +    pop rsi
 +    RESTORE_XMM
 +    UNSHADOW_ARGS
 +    pop         rbp
 +    ret
 +
 +;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +%macro HORIZx4 1
 +    mov         rdx, arg(5)                 ;filter ptr
 +    mov         rsi, arg(0)                 ;src_ptr
 +    mov         rdi, arg(2)                 ;output_ptr
 +    mov         rcx, 0x0400040
 +
 +    movdqa      xmm4, [rdx]                 ;load filters
-     movd        xmm5, rcx
++    movq        xmm5, rcx
 +    packsswb    xmm4, xmm4
 +    pshuflw     xmm0, xmm4, 0b              ;k0_k1
 +    pshuflw     xmm1, xmm4, 01010101b       ;k2_k3
 +    pshuflw     xmm2, xmm4, 10101010b       ;k4_k5
 +    pshuflw     xmm3, xmm4, 11111111b       ;k6_k7
 +
 +    punpcklqdq  xmm0, xmm0
 +    punpcklqdq  xmm1, xmm1
 +    punpcklqdq  xmm2, xmm2
 +    punpcklqdq  xmm3, xmm3
 +
 +    movdqa      k0k1, xmm0
 +    movdqa      k2k3, xmm1
 +    pshufd      xmm5, xmm5, 0
 +    movdqa      k4k5, xmm2
 +    movdqa      k6k7, xmm3
 +    movdqa      krd, xmm5
 +
 +    movsxd      rax, dword ptr arg(1)       ;src_pixels_per_line
 +    movsxd      rdx, dword ptr arg(3)       ;output_pitch
 +    movsxd      rcx, dword ptr arg(4)       ;output_height
 +
 +.loop:
 +    movq        xmm0,   [rsi - 3]    ; -3 -2 -1  0  1  2  3  4
 +
 +    movq        xmm3,   [rsi + 5]    ; 5  6  7  8  9 10 11 12
 +    punpcklqdq  xmm0,   xmm3
 +
 +    movdqa      xmm1,   xmm0
 +    pshufb      xmm0,   [GLOBAL(shuf_t0t1)]
 +    pmaddubsw   xmm0,   k0k1
 +
 +    movdqa      xmm2,   xmm1
 +    pshufb      xmm1,   [GLOBAL(shuf_t2t3)]
 +    pmaddubsw   xmm1,   k2k3
 +
 +    movdqa      xmm4,   xmm2
 +    pshufb      xmm2,   [GLOBAL(shuf_t4t5)]
 +    pmaddubsw   xmm2,   k4k5
 +
 +    pshufb      xmm4,   [GLOBAL(shuf_t6t7)]
 +    pmaddubsw   xmm4,   k6k7
 +
 +    paddsw      xmm0,   xmm1
 +    paddsw      xmm0,   xmm4
 +    paddsw      xmm0,   xmm2
 +    paddsw      xmm0,   krd
 +    psraw       xmm0,   7
 +    packuswb    xmm0,   xmm0
 +%if %1
 +    movd        xmm1,   [rdi]
 +    pavgb       xmm0,   xmm1
 +%endif
 +    lea         rsi,    [rsi + rax]
 +    movd        [rdi],  xmm0
 +
 +    lea         rdi,    [rdi + rdx]
 +    dec         rcx
 +    jnz         .loop
 +%endm
 +
 +%macro HORIZx8 1
 +    mov         rdx, arg(5)                 ;filter ptr
 +    mov         rsi, arg(0)                 ;src_ptr
 +    mov         rdi, arg(2)                 ;output_ptr
 +    mov         rcx, 0x0400040
 +
 +    movdqa      xmm4, [rdx]                 ;load filters
 +    movd        xmm5, rcx
 +    packsswb    xmm4, xmm4
 +    pshuflw     xmm0, xmm4, 0b              ;k0_k1
 +    pshuflw     xmm1, xmm4, 01010101b       ;k2_k3
 +    pshuflw     xmm2, xmm4, 10101010b       ;k4_k5
 +    pshuflw     xmm3, xmm4, 11111111b       ;k6_k7
 +
 +    punpcklqdq  xmm0, xmm0
 +    punpcklqdq  xmm1, xmm1
 +    punpcklqdq  xmm2, xmm2
 +    punpcklqdq  xmm3, xmm3
 +
 +    movdqa      k0k1, xmm0
 +    movdqa      k2k3, xmm1
 +    pshufd      xmm5, xmm5, 0
 +    movdqa      k4k5, xmm2
 +    movdqa      k6k7, xmm3
 +    movdqa      krd, xmm5
 +
 +    movsxd      rax, dword ptr arg(1)       ;src_pixels_per_line
 +    movsxd      rdx, dword ptr arg(3)       ;output_pitch
 +    movsxd      rcx, dword ptr arg(4)       ;output_height
 +
 +.loop:
 +    movq        xmm0,   [rsi - 3]    ; -3 -2 -1  0  1  2  3  4
 +
 +    movq        xmm3,   [rsi + 5]    ; 5  6  7  8  9 10 11 12
 +    punpcklqdq  xmm0,   xmm3
 +
 +    movdqa      xmm1,   xmm0
 +    pshufb      xmm0,   [GLOBAL(shuf_t0t1)]
 +    pmaddubsw   xmm0,   k0k1
 +
 +    movdqa      xmm2,   xmm1
 +    pshufb      xmm1,   [GLOBAL(shuf_t2t3)]
 +    pmaddubsw   xmm1,   k2k3
 +
 +    movdqa      xmm4,   xmm2
 +    pshufb      xmm2,   [GLOBAL(shuf_t4t5)]
 +    pmaddubsw   xmm2,   k4k5
 +
 +    pshufb      xmm4,   [GLOBAL(shuf_t6t7)]
 +    pmaddubsw   xmm4,   k6k7
 +
 +    paddsw      xmm0,   xmm1
 +    paddsw      xmm0,   xmm4
 +    paddsw      xmm0,   xmm2
 +    paddsw      xmm0,   krd
 +    psraw       xmm0,   7
 +    packuswb    xmm0,   xmm0
 +%if %1
 +    movq        xmm1,   [rdi]
 +    pavgb       xmm0,   xmm1
 +%endif
 +
 +    lea         rsi,    [rsi + rax]
 +    movq        [rdi],  xmm0
 +
 +    lea         rdi,    [rdi + rdx]
 +    dec         rcx
 +    jnz         .loop
 +%endm
 +
 +%macro HORIZx16 1
 +    mov         rdx, arg(5)                 ;filter ptr
 +    mov         rsi, arg(0)                 ;src_ptr
 +    mov         rdi, arg(2)                 ;output_ptr
 +    mov         rcx, 0x0400040
 +
 +    movdqa      xmm4, [rdx]                 ;load filters
-     movd        xmm5, rcx
++    movq        xmm5, rcx
 +    packsswb    xmm4, xmm4
 +    pshuflw     xmm0, xmm4, 0b              ;k0_k1
 +    pshuflw     xmm1, xmm4, 01010101b       ;k2_k3
 +    pshuflw     xmm2, xmm4, 10101010b       ;k4_k5
 +    pshuflw     xmm3, xmm4, 11111111b       ;k6_k7
 +
 +    punpcklqdq  xmm0, xmm0
 +    punpcklqdq  xmm1, xmm1
      punpcklqdq  xmm2, xmm2
      punpcklqdq  xmm3, xmm3
  
@@@ -565,9 -684,9 +565,9 @@@ static void decode_4x4_sb(VP9D_COMP *pb
  };
  
  static void decode_superblock64(VP9D_COMP *pbi, MACROBLOCKD *xd,
-                                 int mb_row, unsigned int mb_col,
+                                 int mb_row, int mb_col,
                                  BOOL_DECODER* const bc) {
 -  int i, n, eobtotal;
 +  int n, eobtotal;
    TX_SIZE tx_size = xd->mode_info_context->mbmi.txfm_size;
    VP9_COMMON *const pc = &pbi->common;
    MODE_INFO *orig_mi = xd->mode_info_context;
  }
  
  static void decode_superblock32(VP9D_COMP *pbi, MACROBLOCKD *xd,
-                                 int mb_row, unsigned int mb_col,
+                                 int mb_row, int mb_col,
                                  BOOL_DECODER* const bc) {
 -  int i, n, eobtotal;
 +  int n, eobtotal;
    TX_SIZE tx_size = xd->mode_info_context->mbmi.txfm_size;
    VP9_COMMON *const pc = &pbi->common;
    MODE_INFO *orig_mi = xd->mode_info_context;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc vpxenc.c
Simple merge