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 | 6 |
7 EXPORT SYMBOL | 7 EXPORT SYMBOL |
8 align function_align | 8 align function_align |
9 | 9 |
10 mangle(SYMBOL): | 10 mangle(SYMBOL): |
11 %assign stack_offset 0 | 11 %assign stack_offset 0 |
12 PROLOGUE 6, 7, 3, Y, U, V, A, ARGB, WIDTH, TEMP | 12 PROLOGUE 7, 7, 3, Y, U, V, A, ARGB, WIDTH, TABLE, TEMP |
13 extern mangle(kCoefficientsRgbY) | |
14 PUSH WIDTHq | 13 PUSH WIDTHq |
15 DEFINE_ARGS Y, U, V, A, ARGB, TABLE, TEMP | 14 DEFINE_ARGS Y, U, V, A, ARGB, TABLE, TEMP |
16 LOAD_SYM TABLEq, mangle(kCoefficientsRgbY) | |
17 jmp .convertend | 15 jmp .convertend |
18 | 16 |
19 .convertloop: | 17 .convertloop: |
20 movzx TEMPd, BYTE [Uq] | 18 movzx TEMPd, BYTE [Uq] |
21 movq mm0, [TABLEq + 2048 + 8 * TEMPq] | 19 movq mm0, [TABLEq + 2048 + 8 * TEMPq] |
22 add Uq, 1 | 20 add Uq, 1 |
23 | 21 |
24 movzx TEMPd, BYTE [Vq] | 22 movzx TEMPd, BYTE [Vq] |
25 paddsw mm0, [TABLEq + 4096 + 8 * TEMPq] | 23 paddsw mm0, [TABLEq + 4096 + 8 * TEMPq] |
26 add Vq, 1 | 24 add Vq, 1 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 movq mm0, [TABLEq + 6144 + 8 * TEMPq] | 83 movq mm0, [TABLEq + 6144 + 8 * TEMPq] |
86 pmullw mm1, mm0 | 84 pmullw mm1, mm0 |
87 psrlw mm1, 8 | 85 psrlw mm1, 8 |
88 packuswb mm1, mm1 | 86 packuswb mm1, mm1 |
89 | 87 |
90 movd [ARGBq], mm1 | 88 movd [ARGBq], mm1 |
91 | 89 |
92 .convertdone: | 90 .convertdone: |
93 POP TABLEq | 91 POP TABLEq |
94 RET | 92 RET |
OLD | NEW |