Commit Graph

37 Commits

Author SHA1 Message Date
Luca Barbato d0bf20a4f2 ppc: vsx: Implement diff_pixels and get_pixels
Use a macro to abstract the endianness.
2015-05-31 12:07:11 +02:00
Luca Barbato eecd29b3fd ppc: vsx: Implement float_dsp 2015-05-31 12:07:11 +02:00
Luca Barbato 7d07ee5a9b ppc: cpu: Add support for VSX and POWER8 extensions 2015-05-31 12:07:11 +02:00
Luca Barbato da60b99a88 ppc: Restrict some Altivec implementations to Big Endian
In Little Endian the vec_ld/vec_st operations work as
expected only for byte-vectors.
2015-05-31 12:07:11 +02:00
Luca Barbato 3058872c29 ppc: Clarify and extend the cpuid check
Add POWER entries.
2015-05-31 12:07:10 +02:00
Luca Barbato baa94563fe ppc: linux: Check altivec using the auxv
Should prevent trying to use altivec when it is disabled by the kernel.
2015-05-31 12:07:10 +02:00
Luca Barbato 72cebae0d9 ppc: avutil: Use the abriged vector types 2015-05-31 12:07:10 +02:00
Luca Barbato 254eb5b6fa ppc: avutil: Drop a potentially dangerous workaround
The compiler is free to optimize such expressions in any sort of way.
2015-05-31 12:07:10 +02:00
Luca Barbato c19a49e565 ppc: Support little endian intreadwrite 2014-09-03 02:38:03 +02:00
Diego Biurrun b5aa485513 ppc: Move vec_unaligned_load macro to util_altivec
This allows reusing it from multiple files.
2014-05-28 03:29:33 -07:00
Diego Biurrun 593886b5dd ppc: util_altivec: Drop unused macros 2014-05-28 03:11:24 -07:00
Diego Biurrun f61bece684 ppc: Add and use convenience macro to check for AltiVec availability 2013-08-28 23:54:15 +02:00
Diego Biurrun b78b10c4b7 avutil: Move internal CPU detection function declarations to private header 2013-08-28 23:54:14 +02:00
Diego Biurrun 3ac7fa81b2 Consistently use "cpu_flags" as variable/parameter name for CPU flags 2013-07-18 00:31:35 +02:00
Martin Storsjö ef5b70affc configure: Check for support for labels in the inline assembly
Use this for enabling the ppc timer.h implementation only on
assemblers that support labels in the inline assembly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-11 18:53:02 +03:00
Diego Biurrun 1fda184a85 avutil: Add av_cold attributes to init functions missing them 2013-05-04 22:48:05 +02:00
Diego Biurrun f5eecee865 ppc: util_altivec: Surround AltiVec-related code by appropriate ifdefs
This prevents non-AltiVec-enabled compilers from choking.
2013-04-30 12:19:44 +02:00
Diego Biurrun b6649ab503 cosmetics: Remove unnecessary extern keywords from function declarations 2013-03-27 14:21:45 +01:00
Ronald S. Bultje 42d3246948 floatdsp: move vector_fmul_reverse from dsputil to avfloatdsp.
Now, nellymoserenc and aacenc no longer depends on dsputil. Independent
of this patch, wmaprodec also does not depend on dsputil, so I removed
it from there also.
2013-01-22 11:55:42 -08:00
Ronald S. Bultje 55aa03b9f8 floatdsp: move vector_fmul_add from dsputil to avfloatdsp. 2013-01-22 11:55:42 -08:00
Justin Ruggles e034cc6c60 lavc: Move vector_fmul_window to AVFloatDSPContext
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-16 10:45:45 +01:00
Justin Ruggles 3b81a18ba3 float_dsp: ppc: add a separate header for Altivec function prototypes
Also include config.h so that HAVE_ALTIVEC will be defined.
Fixes compilation on PPC with Altivec enabled.
2012-06-08 14:52:01 -04:00
Justin Ruggles d5a7229ba4 Add a float DSP framework to libavutil
Move vector_fmul() from DSPContext to AVFloatDSPContext.
2012-06-08 13:14:38 -04:00
Justin Ruggles 98db4e2a4e PPC: Move types_altivec.h and util_altivec.h from libavcodec to libavutil
This will allow for easier implementation of Altivec functions in libraries
other than libavcodec.
2012-06-08 13:14:38 -04:00
Diego Biurrun baaab6069a build: Move all arch OBJS declarations into arch subdirectory Makefiles. 2012-04-12 21:30:13 +02:00
Diego Biurrun 046f081b46 configure: Do not unconditionally add -D_POSIX_C_SOURCE to CPPFLAGS.
Adding _POSIX_C_SOURCE to CPPFLAGS globally produces all sorts of problems
since it causes certain system functions to be hidden on some (BSD) systems.
The solution is to only add the flag on systems that really require it, i.e.
glibc-based ones.

This change makes BSD systems compile out-of-the-box without the need for
adding specific flags manually.  It also allows dropping a number of flags
set manually on a file-per-file basis, but were only present to work around
breakage introduced by the presence of _POSIX_C_SOURCE.

Also add _XOPEN_SOURCE to CPPFLAGS for glibc systems.  We use XSI extensions
in several places already, so it is preferable to define it globally instead
of littering source files with individual #defines only needed for glibc.
2011-05-12 11:41:59 +02:00
Brad 3028b6ede6 os: fix OpenBSD/PowerPC compilation
When attempting to re-enable the AltiVec support it was noticed
that we need to undefine _POSIX_C_SOURCE to appease the headers
for ff_get_cpu_flags_ppc() to be able to compile.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-04-10 05:02:29 +02:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Janne Grunau 2c3589bfda consolidate .gitignore patters into a single file
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-18 21:32:05 +01:00
Janne Grunau 348b8218f7 convert svn:ignore properties to .gitignore files
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-17 15:50:14 +01:00
Måns Rullgård 9275438a19 Clean up av_get_cpu_flag()
Instead of defining functions in per-arch header files included
by the main cpu.c, define them normally and call them from the
generic one.

Originally committed as revision 25084 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-09 18:51:45 +00:00
Stefano Sabatini c6c98d0897 Move mm_support() from libavcodec to libavutil, make it a public
function and rename it to av_get_cpu_flags().

Originally committed as revision 25076 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-08 15:07:14 +00:00
Måns Rullgård bdd19e29df Mark all intreadwrite functions av_always_inline
Originally committed as revision 21278 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 01:35:19 +00:00
Måns Rullgård b6ec1f47c7 PPC: fix asm operand constraints in AV_RL64
The target register of first word loaded must be marked early-clobber.

Originally committed as revision 19536 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-07-29 19:06:55 +00:00
Måns Rullgård cc078b5d8f PPC: check for x-form asm constraint support
Originally committed as revision 18606 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 13:57:30 +00:00
Måns Rullgård 9f5ff83f2a PPC asm for AV_RL*()
PPC is normally big endian but has special little endian load/store
instructions.  Using these avoids a separate byteswap.  This makes the
vorbis decoder about 5% faster.  Not much else uses little-endian
read/write extensively.

GCC generates horrible PPC code for the default AV_[RW]B64 (which uses
a packed struct), so we override it with a plain pointer cast.

Originally committed as revision 18602 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-18 00:00:31 +00:00
Måns Rullgård 439ccc4e0e Split libavutil/timer.h per architecture
Originally committed as revision 18304 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-01 22:56:22 +00:00