[FFmpeg-devel] [PATCH 00/12] mips cleanups and port to mips64
James Cowgill
james410 at cowgill.org.uk
Thu Feb 26 14:42:41 CET 2015
Hi,
This patchset aims to cleanup the MIPS optimizations a bit and add support for
64-bit processors.
I haven't attempted specifically to optimize any of this for 64-bit systems,
except for the removal of some assembly blocks which GCC can optimize just as
well itself. Also I havn't gone through and cleaned up everything, just the
bits that make it easier to port to 64-bits or some things that were really
bugging me :)
I've run fate on both 32 and 64-bit mips machines and it passes all the tests
on both. I don't have a machine with DSP instructions but I managed (with some
effort) to run fate using qemu and it passed all the tests there as well.
One thing I was sligly uneasy about in the change I made to the configure
script was forcing specific ISA levels unless you pass --disable-xxx to
configure. This has a habit of causing the final binaries not to run at all
(eg I have to disable DSP otherwise I get a lot of SIGILL). Since this was what
the code was doing before, I just left it instead of messing up all the MIPS
configure options (more than I have done).
Thanks,
James
James Cowgill (12):
mips/mathops: remove 64-bit code
mips/float_dsp: replace assembly with C implementations
mips/aacpsdsp: fix definition of ps_decorrelate_mips
mips/fft: remove some useless assembly
mips/sbrdsp: remove sbr_neg_odd_64_mips
mips/aacdec: refactor out duplicated assembly code
mips/aacdec: remove uses of mips32r2 specific ext instructions
configure, mips: remove MIPS32R2, merging it with MIPSFPU
mips: port optimizations to mips n64
mips: use float* to hold pointer instead of int
mips/acelp_filters: fix incorrect register constraint
mips/aaccoder: use variables instead of using register names directly
Makefile | 2 +-
arch.mak | 1 -
configure | 19 +-
libavcodec/mips/aaccoder_mips.c | 929 +++++++++++++++---------------
libavcodec/mips/aacdec_mips.c | 623 ++++----------------
libavcodec/mips/aacdec_mips.h | 58 +-
libavcodec/mips/aacpsdsp_mips.c | 61 +-
libavcodec/mips/aacpsy_mips.h | 6 +-
libavcodec/mips/aacsbr_mips.c | 53 +-
libavcodec/mips/aacsbr_mips.h | 17 +-
libavcodec/mips/ac3dsp_mips.c | 63 +-
libavcodec/mips/acelp_filters_mips.c | 15 +-
libavcodec/mips/acelp_vectors_mips.c | 7 +-
libavcodec/mips/asmdefs.h | 48 ++
libavcodec/mips/celp_filters_mips.c | 13 +-
libavcodec/mips/celp_math_mips.c | 5 +-
libavcodec/mips/compute_antialias_float.h | 4 +-
libavcodec/mips/fft_mips.c | 39 +-
libavcodec/mips/fmtconvert_mips.c | 33 +-
libavcodec/mips/lsp_mips.h | 6 +-
libavcodec/mips/mathops.h | 26 -
libavcodec/mips/mpegaudiodsp_mips_fixed.c | 11 +-
libavcodec/mips/mpegaudiodsp_mips_float.c | 25 +-
libavcodec/mips/sbrdsp_mips.c | 89 +--
libavutil/mips/float_dsp_mips.c | 354 +++---------
25 files changed, 963 insertions(+), 1544 deletions(-)
create mode 100644 libavcodec/mips/asmdefs.h
--
2.1.4
More information about the ffmpeg-devel
mailing list