bink: Rename BinkDSPContext member so as not to clash with BlockDSPContext
[ffmpeg.git] / libavcodec / bfin / hpel_pixels_no_rnd.S
1 /*
2  * Blackfin Pixel Operations
3  * Copyright (C) 2007 Marc Hoffman <marc.hoffman@analog.com>
4  *
5  * This file is part of Libav.
6  *
7  * Libav is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * Libav is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with Libav; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 #include "libavutil/bfin/asm.h"
23
24 DEFUN(put_pixels8uc_no_rnd,mL1,
25         (uint8_t *block, const uint8_t *s0, const uint8_t *s1,
26                  int line_size, int h)):
27         i3=r0;        // dest
28         i0=r1;        // src0
29         i1=r2;        // src1
30         r2=[sp+12];   // line_size
31         p0=[sp+16];   // h
32         [--sp] = (r7:6);
33         r2+=-4;
34         m3=r2;
35         r2+=-4;
36         m0=r2;
37         LSETUP(pp8$2,pp8$3) LC0=P0;
38         DISALGNEXCPT                || R0 = [I0++]  || R2  =[I1++];
39
40 pp8$2:  DISALGNEXCPT                || R1 = [I0++]  || R3  =[I1++];
41         R6 = BYTEOP1P(R1:0,R3:2)(T)  || R0 = [I0++M0]|| R2  =[I1++M0];
42         R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R0 = [I0++]  || [I3++] = R6 ;
43 pp8$3:  DISALGNEXCPT                || R2 = [I1++]  || [I3++M3] = R7;
44
45         (r7:6) = [sp++];
46         RTS;
47 DEFUN_END(put_pixels8uc_no_rnd)
48
49 DEFUN(put_pixels16uc_no_rnd,mL1,
50         (uint8_t *block, const uint8_t *s0, const uint8_t *s1,
51                  int line_size, int h)):
52         i3=r0;        // dest
53         i0=r1;        // src0
54         i1=r2;        // src1
55         r2=[sp+12];   // line_size
56         p0=[sp+16];   // h
57
58         [--sp] = (r7:6);
59         r2+=-12;
60         m3=r2;        // line_size
61         r2+=-4;
62         m0=r2;
63
64         LSETUP(pp16$2,pp16$3) LC0=P0;
65         DISALGNEXCPT                || R0 = [I0++]   || R2  =[I1++];
66
67 pp16$2:
68         DISALGNEXCPT                || R1 = [I0++]   || R3  =[I1++];
69         R6 = BYTEOP1P(R1:0,R3:2)(T)    || R0 = [I0++]   || R2  =[I1++];
70         R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R1 = [I0++]   || R3  =[I1++];
71         [I3++] = R6;
72
73         R6 = BYTEOP1P(R1:0,R3:2)(T)    || R0 = [I0++M0] || R2  =[I1++M0];
74         R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R0 = [I0++]   || [I3++] = R7 ;
75         [I3++] = R6;
76 pp16$3: DISALGNEXCPT                || R2 = [I1++]   || [I3++M3] = R7;
77
78         (r7:6) = [sp++];
79
80         RTS;
81 DEFUN_END(put_pixels16uc_no_rnd)