| Index: media/base/simd/linear_scale_yuv_to_rgb_mmx.inc
|
| diff --git a/media/base/simd/linear_scale_yuv_to_rgb_mmx.inc b/media/base/simd/linear_scale_yuv_to_rgb_mmx.inc
|
| index 48f62acf25ad57893e598a0c1cb10f632b462413..dce591d78044e26bd5c6122f65c13e30493d4af1 100644
|
| --- a/media/base/simd/linear_scale_yuv_to_rgb_mmx.inc
|
| +++ b/media/base/simd/linear_scale_yuv_to_rgb_mmx.inc
|
| @@ -10,6 +10,8 @@
|
| mangle(SYMBOL):
|
| %assign stack_offset 0
|
|
|
| + extern mangle(kCoefficientsRgbY)
|
| +
|
| ; Parameters are in the following order:
|
| ; 1. Y plane
|
| ; 2. U plane
|
| @@ -17,9 +19,8 @@
|
| ; 4. ARGB frame
|
| ; 5. Width
|
| ; 6. Source dx
|
| -; 7. Conversion lookup table
|
|
|
| -PROLOGUE 7, 7, 3, Y, R0, R1, ARGB, R2, TEMP, R3
|
| +PROLOGUE 6, 7, 3, Y, R0, R1, ARGB, R2, R3, TEMP
|
|
|
| %if gprsize == 8
|
| %define WORD_SIZE QWORD
|
| @@ -33,7 +34,7 @@
|
| %define COMPLd R2d ; Component A value
|
| %define U_ARG_REGq R0q ; U plane address argument
|
| %define V_ARG_REGq R1q ; V plane address argument
|
| -%define SOURCE_DX_ARG_REGq TEMPq ; Source dx argument
|
| +%define SOURCE_DX_ARG_REGq R3q ; Source dx argument
|
| %define WIDTH_ARG_REGq R2q ; Width argument
|
|
|
| %define COMPRq R0q ; Component B value
|
| @@ -54,6 +55,11 @@
|
| PUSH SOURCE_DX_ARG_REGq
|
| imul WIDTH_ARG_REGq, SOURCE_DX_ARG_REGq ; source_width = width * source_dx
|
| PUSH WIDTH_ARG_REGq
|
| +
|
| +; Load the address of kCoefficientsRgbY into TABLE
|
| + mov TEMPq, SOURCE_DX_ARG_REGq ; Need to save source_dx first
|
| + LOAD_SYM TABLE, mangle(kCoefficientsRgbY)
|
| +%define SOURCE_DX_ARG_REGq TEMPq ; Overwrite SOURCE_DX_ARG_REGq to TEMPq
|
|
|
| %macro EPILOGUE 0
|
| ADD rsp, 4 * gprsize
|
|
|