diff options
Diffstat (limited to 'packages/mplayer/files/yuv.S')
-rw-r--r-- | packages/mplayer/files/yuv.S | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/packages/mplayer/files/yuv.S b/packages/mplayer/files/yuv.S deleted file mode 100644 index 3eaf284a61..0000000000 --- a/packages/mplayer/files/yuv.S +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright (C) 2008 Mans Rullgard - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - */ - - .fpu neon - .text - -@ yuv420_to_yuv422(uint8_t *yuv, uint8_t *y, uint8_t *u, uint8_t *v, -@ int w, int h, int yw, int cw, int dw) - -#define yuv r0 -#define y r1 -#define u r2 -#define v r3 -#define w r4 -#define h r5 -#define yw r6 -#define cw r7 -#define dw r8 - -#define tyuv r9 -#define ty r10 -#define tu r11 -#define tv r12 -#define i lr - - .global yuv420_to_yuv422 - .func yuv420_to_yuv422 -yuv420_to_yuv422: - push {r4-r11,lr} - add r4, sp, #36 - ldm r4, {r4-r8} - dmb -1: - mov tu, u - mov tv, v - vld1.64 {d2}, [u,:64], cw @ u0 - vld1.64 {d3}, [v,:64], cw @ v0 - mov tyuv, yuv - mov ty, y - vzip.8 d2, d3 @ u0v0 - mov i, #16 -2: - pld [y, #64] - vld1.64 {d0, d1}, [y,:128], yw @ y0 - pld [u, #64] - subs i, i, #4 - vld1.64 {d6}, [u,:64], cw @ u2 - pld [y, #64] - vld1.64 {d4, d5}, [y,:128], yw @ y1 - pld [v, #64] - vld1.64 {d7}, [v,:64], cw @ v2 - pld [y, #64] - vld1.64 {d16,d17}, [y,:128], yw @ y2 - vzip.8 d6, d7 @ u2v2 - pld [u, #64] - vld1.64 {d22}, [u,:64], cw @ u4 - pld [v, #64] - vld1.64 {d23}, [v,:64], cw @ v4 - pld [y, #64] - vld1.64 {d20,d21}, [y,:128], yw @ y3 - vmov q9, q3 @ u2v2 - vzip.8 d22, d23 @ u4v4 - vrhadd.u8 q3, q1, q3 @ u1v1 - vzip.8 q0, q1 @ y0u0y0v0 - vmov q12, q11 @ u4v4 - vzip.8 q2, q3 @ y1u1y1v1 - vrhadd.u8 q11, q9, q11 @ u3v3 - vst1.64 {d0-d3}, [yuv,:128], dw @ y0u0y0v0 - vzip.8 q8, q9 @ y2u2y2v2 - vst1.64 {d4-d7}, [yuv,:128], dw @ y1u1y1v1 - vzip.8 q10, q11 @ y3u3y3v3 - vst1.64 {d16-d19}, [yuv,:128], dw @ y2u2y2v2 - vmov q1, q12 - vst1.64 {d20-d23}, [yuv,:128], dw @ y3u3y3v3 - bgt 2b - - subs w, w, #16 - add yuv, tyuv, #32 - add y, ty, #16 - add u, tu, #8 - add v, tv, #8 - bgt 1b - - ldr w, [sp, #36] - subs h, h, #16 - add yuv, yuv, dw, lsl #4 - sub yuv, yuv, w, lsl #1 - add y, y, yw, lsl #4 - sub y, y, w - add u, u, cw, lsl #3 - sub u, u, w, asr #1 - add v, v, cw, lsl #3 - sub v, v, w, asr #1 - bgt 1b - - pop {r4-r11,pc} - .endfunc - |