| 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 "media/base/simd/media_export.asm" |
| 5 %include "third_party/x86inc/x86inc.asm" | 6 %include "third_party/x86inc/x86inc.asm" |
| 6 | 7 |
| 7 ; | 8 ; |
| 8 ; This file uses MMX, SSE2 and instructions. | 9 ; This file uses MMX, SSE2 and instructions. |
| 9 ; | 10 ; |
| 10 SECTION_TEXT | 11 SECTION_TEXT |
| 11 CPU SSE2 | 12 CPU SSE2 |
| 12 | 13 |
| 13 ; void ScaleYUVToRGB32Row_SSE2_X64(const uint8* y_buf, | 14 ; void ScaleYUVToRGB32Row_SSE2_X64(const uint8* y_buf, |
| 14 ; const uint8* u_buf, | 15 ; const uint8* u_buf, |
| 15 ; const uint8* v_buf, | 16 ; const uint8* v_buf, |
| 16 ; uint8* rgb_buf, | 17 ; uint8* rgb_buf, |
| 17 ; ptrdiff_t width, | 18 ; ptrdiff_t width, |
| 18 ; ptrdiff_t source_dx); | 19 ; ptrdiff_t source_dx); |
| 19 %define SYMBOL ScaleYUVToRGB32Row_SSE2_X64 | 20 %define SYMBOL ScaleYUVToRGB32Row_SSE2_X64 |
| 20 | 21 EXPORT SYMBOL |
| 21 global mangle(SYMBOL) PRIVATE | |
| 22 align function_align | 22 align function_align |
| 23 | 23 |
| 24 mangle(SYMBOL): | 24 mangle(SYMBOL): |
| 25 %assign stack_offset 0 | 25 %assign stack_offset 0 |
| 26 extern mangle(kCoefficientsRgbY) | 26 extern mangle(kCoefficientsRgbY) |
| 27 | 27 |
| 28 ; Parameters are in the following order: | 28 ; Parameters are in the following order: |
| 29 ; 1. Y plane | 29 ; 1. Y plane |
| 30 ; 2. U plane | 30 ; 2. U plane |
| 31 ; 3. V plane | 31 ; 3. V plane |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 paddsw xmm1, xmm0 | 101 paddsw xmm1, xmm0 |
| 102 psraw xmm1, 6 | 102 psraw xmm1, 6 |
| 103 packuswb xmm1, xmm1 | 103 packuswb xmm1, xmm1 |
| 104 movd DWORD [ARGBq], xmm1 | 104 movd DWORD [ARGBq], xmm1 |
| 105 | 105 |
| 106 .scaledone: | 106 .scaledone: |
| 107 POP r12 | 107 POP r12 |
| 108 POP r11 | 108 POP r11 |
| 109 POP r10 | 109 POP r10 |
| 110 RET | 110 RET |
| OLD | NEW |