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 "media/base/simd/media_export.asm" |
6 %include "third_party/x86inc/x86inc.asm" | 6 %include "third_party/x86inc/x86inc.asm" |
7 | 7 |
8 ; | 8 ; |
9 ; This file uses MMX instructions. | 9 ; This file uses MMX instructions. |
10 ; | 10 ; |
11 SECTION_TEXT | 11 SECTION_TEXT |
12 CPU MMX | 12 CPU MMX |
13 | 13 |
14 ;void LinearScaleYUVToRGB32Row_MMX_X64(const uint8* y_buf, | 14 ;void LinearScaleYUVToRGB32Row_MMX_X64(const uint8_t* y_buf, |
15 ; const uint8* u_buf, | 15 ; const uint8_t* u_buf, |
16 ; const uint8* v_buf, | 16 ; const uint8_t* v_buf, |
17 ; uint8* rgb_buf, | 17 ; uint8_t* rgb_buf, |
18 ; ptrdiff_t width, | 18 ; ptrdiff_t width, |
19 ; ptrdiff_t source_dx); | 19 ; ptrdiff_t source_dx); |
20 %define SYMBOL LinearScaleYUVToRGB32Row_MMX_X64 | 20 %define SYMBOL LinearScaleYUVToRGB32Row_MMX_X64 |
21 EXPORT SYMBOL | 21 EXPORT SYMBOL |
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 | 26 |
27 ; Parameters are in the following order: | 27 ; Parameters are in the following order: |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 | 143 |
144 .lscalelastpixel: | 144 .lscalelastpixel: |
145 paddsw mm1, mm0 | 145 paddsw mm1, mm0 |
146 psraw mm1, 6 | 146 psraw mm1, 6 |
147 packuswb mm1, mm1 | 147 packuswb mm1, mm1 |
148 movd [ARGBq], mm1 | 148 movd [ARGBq], mm1 |
149 | 149 |
150 .epilogue | 150 .epilogue |
151 EPILOGUE | 151 EPILOGUE |
152 RET | 152 RET |
OLD | NEW |