diff options
Diffstat (limited to 'media/base/yuv_row_linux.cc')
-rw-r--r-- | media/base/yuv_row_linux.cc | 78 |
1 files changed, 40 insertions, 38 deletions
diff --git a/media/base/yuv_row_linux.cc b/media/base/yuv_row_linux.cc index b99c7bf..5825960 100644 --- a/media/base/yuv_row_linux.cc +++ b/media/base/yuv_row_linux.cc @@ -263,19 +263,19 @@ void FastConvertYUVToRGB32Row(const uint8* y_buf, // rdi "add $0x1,%rsi\n" "movzb (%rdx),%r11\n" "add $0x1,%rdx\n" - "movq kCoefficientsRgbU(,%r10,8),%xmm0\n" + "movq kCoefficientsRgbU(,%r10,8),%mm0\n" "movzb (%rdi),%r10\n" - "paddsw kCoefficientsRgbV(,%r11,8),%xmm0\n" + "paddsw kCoefficientsRgbV(,%r11,8),%mm0\n" "movzb 0x1(%rdi),%r11\n" - "movq kCoefficientsRgbY(,%r10,8),%xmm1\n" + "movq kCoefficientsRgbY(,%r10,8),%mm1\n" "add $0x2,%rdi\n" - "movq kCoefficientsRgbY(,%r11,8),%xmm2\n" - "paddsw %xmm0,%xmm1\n" - "paddsw %xmm0,%xmm2\n" - "psraw $0x6,%xmm1\n" - "psraw $0x6,%xmm2\n" - "packuswb %xmm2,%xmm1\n" - "movq %xmm1,0x0(%rcx)\n" + "movq kCoefficientsRgbY(,%r11,8),%mm2\n" + "paddsw %mm0,%mm1\n" + "paddsw %mm0,%mm2\n" + "psraw $0x6,%mm1\n" + "psraw $0x6,%mm2\n" + "packuswb %mm2,%mm1\n" + "movntq %mm1,0x0(%rcx)\n" "add $0x8,%rcx\n" "convertend:" "sub $0x2,%r8\n" @@ -285,15 +285,15 @@ void FastConvertYUVToRGB32Row(const uint8* y_buf, // rdi "je convertdone\n" "movzb (%rsi),%r10\n" - "movq kCoefficientsRgbU(,%r10,8),%xmm0\n" + "movq kCoefficientsRgbU(,%r10,8),%mm0\n" "movzb (%rdx),%r10\n" - "paddsw kCoefficientsRgbV(,%r10,8),%xmm0\n" + "paddsw kCoefficientsRgbV(,%r10,8),%mm0\n" "movzb (%rdi),%r10\n" - "movq kCoefficientsRgbY(,%r10,8),%xmm1\n" - "paddsw %xmm0,%xmm1\n" - "psraw $0x6,%xmm1\n" - "packuswb %xmm1,%xmm1\n" - "movd %xmm1,0x0(%rcx)\n" + "movq kCoefficientsRgbY(,%r10,8),%mm1\n" + "paddsw %mm0,%mm1\n" + "psraw $0x6,%mm1\n" + "packuswb %mm1,%mm1\n" + "movd %mm1,0x0(%rcx)\n" "convertdone:" "ret\n" ); @@ -316,23 +316,25 @@ void ScaleYUVToRGB32Row(const uint8* y_buf, // rdi "mov %r11,%r10\n" "sar $0x5,%r10\n" "movzb (%rsi,%r10,1),%rax\n" - "movq kCoefficientsRgbU(,%rax,8),%xmm0\n" + "movq kCoefficientsRgbU(,%rax,8),%mm0\n" "movzb (%rdx,%r10,1),%rax\n" - "paddsw kCoefficientsRgbV(,%rax,8),%xmm0\n" - "lea (%r11,%r9),%r10\n" - "sar $0x4,%r11\n" - "movzb (%rdi,%r11,1),%rax\n" - "movq kCoefficientsRgbY(,%rax,8),%xmm1\n" - "lea (%r10,%r9),%r11\n" + "paddsw kCoefficientsRgbV(,%rax,8),%mm0\n" + "mov %r11,%r10\n" + "add %r9,%r11\n" "sar $0x4,%r10\n" "movzb (%rdi,%r10,1),%rax\n" - "movq kCoefficientsRgbY(,%rax,8),%xmm2\n" - "paddsw %xmm0,%xmm1\n" - "paddsw %xmm0,%xmm2\n" - "psraw $0x6,%xmm1\n" - "psraw $0x6,%xmm2\n" - "packuswb %xmm2,%xmm1\n" - "movq %xmm1,0x0(%rcx)\n" + "movq kCoefficientsRgbY(,%rax,8),%mm1\n" + "mov %r11,%r10\n" + "add %r9,%r11\n" + "sar $0x4,%r10\n" + "movzb (%rdi,%r10,1),%rax\n" + "movq kCoefficientsRgbY(,%rax,8),%mm2\n" + "paddsw %mm0,%mm1\n" + "paddsw %mm0,%mm2\n" + "psraw $0x6,%mm1\n" + "psraw $0x6,%mm2\n" + "packuswb %mm2,%mm1\n" + "movntq %mm1,0x0(%rcx)\n" "add $0x8,%rcx\n" "scaleend:" "sub $0x2,%r8\n" @@ -344,16 +346,16 @@ void ScaleYUVToRGB32Row(const uint8* y_buf, // rdi "mov %r11,%r10\n" "sar $0x5,%r10\n" "movzb (%rsi,%r10,1),%rax\n" - "movq kCoefficientsRgbU(,%rax,8),%xmm0\n" + "movq kCoefficientsRgbU(,%rax,8),%mm0\n" "movzb (%rdx,%r10,1),%rax\n" - "paddsw kCoefficientsRgbV(,%rax,8),%xmm0\n" + "paddsw kCoefficientsRgbV(,%rax,8),%mm0\n" "sar $0x4,%r11\n" "movzb (%rdi,%r11,1),%rax\n" - "movq kCoefficientsRgbY(,%rax,8),%xmm1\n" - "paddsw %xmm0,%xmm1\n" - "psraw $0x6,%xmm1\n" - "packuswb %xmm1,%xmm1\n" - "movd %xmm1,0x0(%rcx)\n" + "movq kCoefficientsRgbY(,%rax,8),%mm1\n" + "paddsw %mm0,%mm1\n" + "psraw $0x6,%mm1\n" + "packuswb %mm1,%mm1\n" + "movd %mm1,0x0(%rcx)\n" "scaledone:" "ret\n" |