summaryrefslogtreecommitdiffstats
path: root/media/base/yuv_row_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/base/yuv_row_linux.cc')
-rw-r--r--media/base/yuv_row_linux.cc78
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"