OLD | NEW |
1 ; Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 ; Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 ; Use of this source code is governed by a BSD-style license that can be | 2 ; Use of this source code is governed by a BSD-style license that can be |
3 ; found in the LICENSE file. | 3 ; found in the LICENSE file. |
4 | 4 |
5 %include "third_party/x86inc/x86inc.asm" | 5 %include "third_party/x86inc/x86inc.asm" |
6 | 6 |
7 ; | 7 ; |
8 ; This file uses MMX, SSE2 and instructions. | 8 ; This file uses MMX, SSE2 and instructions. |
9 ; | 9 ; |
10 SECTION_TEXT | 10 SECTION_TEXT |
11 CPU SSE2 | 11 CPU SSE2 |
12 | 12 |
13 ; void ScaleYUVToRGB32Row_SSE2_X64(const uint8* y_buf, | 13 ; void ScaleYUVToRGB32Row_SSE2_X64(const uint8* y_buf, |
14 ; const uint8* u_buf, | 14 ; const uint8* u_buf, |
15 ; const uint8* v_buf, | 15 ; const uint8* v_buf, |
16 ; uint8* rgb_buf, | 16 ; uint8* rgb_buf, |
17 ; ptrdiff_t width, | 17 ; ptrdiff_t width, |
18 ; ptrdiff_t source_dx); | 18 ; ptrdiff_t source_dx); |
19 %define SYMBOL ScaleYUVToRGB32Row_SSE2_X64 | 19 %define SYMBOL ScaleYUVToRGB32Row_SSE2_X64 |
20 | 20 EXPORT SYMBOL |
21 global mangle(SYMBOL) PRIVATE | |
22 align function_align | 21 align function_align |
23 | 22 |
24 mangle(SYMBOL): | 23 mangle(SYMBOL): |
25 %assign stack_offset 0 | 24 %assign stack_offset 0 |
26 extern mangle(kCoefficientsRgbY) | 25 extern mangle(kCoefficientsRgbY) |
27 | 26 |
28 ; Parameters are in the following order: | 27 ; Parameters are in the following order: |
29 ; 1. Y plane | 28 ; 1. Y plane |
30 ; 2. U plane | 29 ; 2. U plane |
31 ; 3. V plane | 30 ; 3. V plane |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 paddsw xmm1, xmm0 | 100 paddsw xmm1, xmm0 |
102 psraw xmm1, 6 | 101 psraw xmm1, 6 |
103 packuswb xmm1, xmm1 | 102 packuswb xmm1, xmm1 |
104 movd DWORD [ARGBq], xmm1 | 103 movd DWORD [ARGBq], xmm1 |
105 | 104 |
106 .scaledone: | 105 .scaledone: |
107 POP r12 | 106 POP r12 |
108 POP r11 | 107 POP r11 |
109 POP r10 | 108 POP r10 |
110 RET | 109 RET |
OLD | NEW |