Ignore:
Timestamp:
Jul 28, 2017 2:51:44 AM (7 years ago)
Author:
nanang
Message:

Re #2004: Update libyuv version from libyuv git master repo dated 27 July 2017, the compile errors on old gcc versions issue persists though.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/third_party/yuv/source/rotate_win.cc

    r5358 r5633  
    99 */ 
    1010 
     11#include "libyuv/rotate_row.h" 
    1112#include "libyuv/row.h" 
    12 #include "libyuv/rotate_row.h" 
    1313 
    1414#ifdef __cplusplus 
     
    2020#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) 
    2121 
    22 __declspec(naked) 
    23 void TransposeWx8_SSSE3(const uint8* src, int src_stride, 
    24                         uint8* dst, int dst_stride, int width) { 
     22__declspec(naked) void TransposeWx8_SSSE3(const uint8* src, 
     23                                          int src_stride, 
     24                                          uint8* dst, 
     25                                          int dst_stride, 
     26                                          int width) { 
    2527  __asm { 
    2628    push      edi 
    2729    push      esi 
    2830    push      ebp 
    29     mov       eax, [esp + 12 + 4]   // src 
    30     mov       edi, [esp + 12 + 8]   // src_stride 
     31    mov       eax, [esp + 12 + 4]  // src 
     32    mov       edi, [esp + 12 + 8]  // src_stride 
    3133    mov       edx, [esp + 12 + 12]  // dst 
    3234    mov       esi, [esp + 12 + 16]  // dst_stride 
     
    111113} 
    112114 
    113 __declspec(naked) 
    114 void TransposeUVWx8_SSE2(const uint8* src, int src_stride, 
    115                          uint8* dst_a, int dst_stride_a, 
    116                          uint8* dst_b, int dst_stride_b, 
    117                          int w) { 
     115__declspec(naked) void TransposeUVWx8_SSE2(const uint8* src, 
     116                                           int src_stride, 
     117                                           uint8* dst_a, 
     118                                           int dst_stride_a, 
     119                                           uint8* dst_b, 
     120                                           int dst_stride_b, 
     121                                           int w) { 
    118122  __asm { 
    119123    push      ebx 
     
    121125    push      edi 
    122126    push      ebp 
    123     mov       eax, [esp + 16 + 4]   // src 
    124     mov       edi, [esp + 16 + 8]   // src_stride 
     127    mov       eax, [esp + 16 + 4]  // src 
     128    mov       edi, [esp + 16 + 8]  // src_stride 
    125129    mov       edx, [esp + 16 + 12]  // dst_a 
    126130    mov       esi, [esp + 16 + 16]  // dst_stride_a 
     
    134138 
    135139    align      4 
    136  convertloop: 
    137140    // Read in the data from the source pointer. 
    138141    // First round of bit swap. 
     142  convertloop: 
    139143    movdqu    xmm0, [eax] 
    140144    movdqu    xmm1, [eax + edi] 
     
    163167    movdqu    [esp], xmm5  // backup xmm5 
    164168    neg       edi 
    165     movdqa    xmm5, xmm6   // use xmm5 as temp register. 
     169    movdqa    xmm5, xmm6  // use xmm5 as temp register. 
    166170    punpcklbw xmm6, xmm7 
    167171    punpckhbw xmm5, xmm7 
     
    184188    movdqu    xmm5, [esp]  // restore xmm5 
    185189    movdqu    [esp], xmm6  // backup xmm6 
    186     movdqa    xmm6, xmm5    // use xmm6 as temp register. 
     190    movdqa    xmm6, xmm5  // use xmm6 as temp register. 
    187191    punpcklwd xmm5, xmm7 
    188192    punpckhwd xmm6, xmm7 
    189193    movdqa    xmm7, xmm6 
     194 
    190195    // Third round of bit swap. 
    191196    // Write to the destination pointer. 
     
    201206    movhpd    qword ptr [ebx + ebp], xmm4 
    202207    lea       ebx, [ebx + 2 * ebp] 
    203     movdqa    xmm0, xmm2   // use xmm0 as the temp register. 
     208    movdqa    xmm0, xmm2  // use xmm0 as the temp register. 
    204209    punpckldq xmm2, xmm6 
    205210    movlpd    qword ptr [edx], xmm2 
     
    210215    movhpd    qword ptr [ebx + ebp], xmm0 
    211216    lea       ebx, [ebx + 2 * ebp] 
    212     movdqa    xmm0, xmm1   // use xmm0 as the temp register. 
     217    movdqa    xmm0, xmm1  // use xmm0 as the temp register. 
    213218    punpckldq xmm1, xmm5 
    214219    movlpd    qword ptr [edx], xmm1 
     
    219224    movhpd    qword ptr [ebx + ebp], xmm0 
    220225    lea       ebx, [ebx + 2 * ebp] 
    221     movdqa    xmm0, xmm3   // use xmm0 as the temp register. 
     226    movdqa    xmm0, xmm3  // use xmm0 as the temp register. 
    222227    punpckldq xmm3, xmm7 
    223228    movlpd    qword ptr [edx], xmm3 
Note: See TracChangeset for help on using the changeset viewer.