diff options
author | Diego Biurrun <diego@biurrun.de> | 2014-01-22 08:54:21 -0800 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2014-03-13 08:15:53 -0700 |
commit | 929ec39ec4497827f7530f2aaa31646ef35462ee (patch) | |
tree | 050f1e35b5716c1041a373ea60430dc78302c069 /libavcodec/bfin | |
parent | a7cc4ac9d99bd586c8939f4312f8c9e56d5f5730 (diff) | |
download | ffmpeg-streaming-929ec39ec4497827f7530f2aaa31646ef35462ee.zip ffmpeg-streaming-929ec39ec4497827f7530f2aaa31646ef35462ee.tar.gz |
bfin: hpeldsp: Split no_rnd pixel operations off into a separate file
This saves some space in configurations that do not enable hpeldsp.
Diffstat (limited to 'libavcodec/bfin')
-rw-r--r-- | libavcodec/bfin/Makefile | 1 | ||||
-rw-r--r-- | libavcodec/bfin/hpel_pixels_bfin.S | 64 | ||||
-rw-r--r-- | libavcodec/bfin/hpel_pixels_no_rnd.S | 81 |
3 files changed, 82 insertions, 64 deletions
diff --git a/libavcodec/bfin/Makefile b/libavcodec/bfin/Makefile index 62881c4..4fa940b 100644 --- a/libavcodec/bfin/Makefile +++ b/libavcodec/bfin/Makefile @@ -1,6 +1,7 @@ OBJS += bfin/dsputil_bfin.o \ bfin/fdct_bfin.o \ bfin/hpel_pixels_bfin.o \ + bfin/hpel_pixels_no_rnd.o \ bfin/idct_bfin.o \ bfin/pixels_bfin.o \ diff --git a/libavcodec/bfin/hpel_pixels_bfin.S b/libavcodec/bfin/hpel_pixels_bfin.S index 981b4e3..289aa2c 100644 --- a/libavcodec/bfin/hpel_pixels_bfin.S +++ b/libavcodec/bfin/hpel_pixels_bfin.S @@ -97,70 +97,6 @@ pp16$1: DISALGNEXCPT || R2 = [I1++] || [I3++M3] = R7; RTS; DEFUN_END(put_pixels16uc) - - - - - -DEFUN(put_pixels8uc_no_rnd,mL1, - (uint8_t *block, const uint8_t *s0, const uint8_t *s1, - int line_size, int h)): - i3=r0; // dest - i0=r1; // src0 - i1=r2; // src1 - r2=[sp+12]; // line_size - p0=[sp+16]; // h - [--sp] = (r7:6); - r2+=-4; - m3=r2; - r2+=-4; - m0=r2; - LSETUP(pp8$2,pp8$3) LC0=P0; - DISALGNEXCPT || R0 = [I0++] || R2 =[I1++]; - -pp8$2: DISALGNEXCPT || R1 = [I0++] || R3 =[I1++]; - R6 = BYTEOP1P(R1:0,R3:2)(T) || R0 = [I0++M0]|| R2 =[I1++M0]; - R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R0 = [I0++] || [I3++] = R6 ; -pp8$3: DISALGNEXCPT || R2 = [I1++] || [I3++M3] = R7; - - (r7:6) = [sp++]; - RTS; -DEFUN_END(put_pixels8uc_no_rnd) - -DEFUN(put_pixels16uc_no_rnd,mL1, - (uint8_t *block, const uint8_t *s0, const uint8_t *s1, - int line_size, int h)): - i3=r0; // dest - i0=r1; // src0 - i1=r2; // src1 - r2=[sp+12]; // line_size - p0=[sp+16]; // h - - [--sp] = (r7:6); - r2+=-12; - m3=r2; // line_size - r2+=-4; - m0=r2; - - LSETUP(pp16$2,pp16$3) LC0=P0; - DISALGNEXCPT || R0 = [I0++] || R2 =[I1++]; - -pp16$2: - DISALGNEXCPT || R1 = [I0++] || R3 =[I1++]; - R6 = BYTEOP1P(R1:0,R3:2)(T) || R0 = [I0++] || R2 =[I1++]; - R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R1 = [I0++] || R3 =[I1++]; - [I3++] = R6; - - R6 = BYTEOP1P(R1:0,R3:2)(T) || R0 = [I0++M0] || R2 =[I1++M0]; - R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R0 = [I0++] || [I3++] = R7 ; - [I3++] = R6; -pp16$3: DISALGNEXCPT || R2 = [I1++] || [I3++M3] = R7; - - (r7:6) = [sp++]; - - RTS; -DEFUN_END(put_pixels16uc_no_rnd) - DEFUN(z_put_pixels16_xy2,mL1, (uint8_t *block, const uint8_t *s0, int dest_size, int line_size, int h)): diff --git a/libavcodec/bfin/hpel_pixels_no_rnd.S b/libavcodec/bfin/hpel_pixels_no_rnd.S new file mode 100644 index 0000000..0d838ea --- /dev/null +++ b/libavcodec/bfin/hpel_pixels_no_rnd.S @@ -0,0 +1,81 @@ +/* + * Blackfin Pixel Operations + * Copyright (C) 2007 Marc Hoffman <marc.hoffman@analog.com> + * + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "libavutil/bfin/asm.h" + +DEFUN(put_pixels8uc_no_rnd,mL1, + (uint8_t *block, const uint8_t *s0, const uint8_t *s1, + int line_size, int h)): + i3=r0; // dest + i0=r1; // src0 + i1=r2; // src1 + r2=[sp+12]; // line_size + p0=[sp+16]; // h + [--sp] = (r7:6); + r2+=-4; + m3=r2; + r2+=-4; + m0=r2; + LSETUP(pp8$2,pp8$3) LC0=P0; + DISALGNEXCPT || R0 = [I0++] || R2 =[I1++]; + +pp8$2: DISALGNEXCPT || R1 = [I0++] || R3 =[I1++]; + R6 = BYTEOP1P(R1:0,R3:2)(T) || R0 = [I0++M0]|| R2 =[I1++M0]; + R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R0 = [I0++] || [I3++] = R6 ; +pp8$3: DISALGNEXCPT || R2 = [I1++] || [I3++M3] = R7; + + (r7:6) = [sp++]; + RTS; +DEFUN_END(put_pixels8uc_no_rnd) + +DEFUN(put_pixels16uc_no_rnd,mL1, + (uint8_t *block, const uint8_t *s0, const uint8_t *s1, + int line_size, int h)): + i3=r0; // dest + i0=r1; // src0 + i1=r2; // src1 + r2=[sp+12]; // line_size + p0=[sp+16]; // h + + [--sp] = (r7:6); + r2+=-12; + m3=r2; // line_size + r2+=-4; + m0=r2; + + LSETUP(pp16$2,pp16$3) LC0=P0; + DISALGNEXCPT || R0 = [I0++] || R2 =[I1++]; + +pp16$2: + DISALGNEXCPT || R1 = [I0++] || R3 =[I1++]; + R6 = BYTEOP1P(R1:0,R3:2)(T) || R0 = [I0++] || R2 =[I1++]; + R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R1 = [I0++] || R3 =[I1++]; + [I3++] = R6; + + R6 = BYTEOP1P(R1:0,R3:2)(T) || R0 = [I0++M0] || R2 =[I1++M0]; + R7 = BYTEOP1P(R1:0,R3:2)(T,R) || R0 = [I0++] || [I3++] = R7 ; + [I3++] = R6; +pp16$3: DISALGNEXCPT || R2 = [I1++] || [I3++M3] = R7; + + (r7:6) = [sp++]; + + RTS; +DEFUN_END(put_pixels16uc_no_rnd) |