summaryrefslogtreecommitdiff
path: root/libswscale/x86/rgb2rgb_template.c
Commit message (Collapse)AuthorAge
* lavu: add AV_CEIL_RSHIFT and use it in various placesClément Bœsch2016-01-11
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* Add missing headers to make template files compile (more) standaloneDiego Biurrun2014-03-26
|
* rgb2rgb_template: add MMX/SSE2/AVX-optimized deinterleaveBytesMichael Niedermayer2014-01-21
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* swscale/x86/rgb2rgb: add support for AVXMichael Niedermayer2014-01-21
| | | | | | This does not yet include any actual AVX code Signed-off-by: Anton Khirnov <anton@khirnov.net>
* swscale: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-04
|
* x86: mmx2 ---> mmxext in comments and messagesDiego Biurrun2012-10-31
|
* swscale: x86: fix #endif comments in rgb2rgb template fileGiorgio Vazzana2012-08-19
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* x86: swscale: fix fragile memory accessesMans Rullgard2012-08-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | To access data at multiple fixed offsets from a base address, this code uses a single "m" operand and code of the form "32%0", relying on the memory operand instantiation having no displacement, giving a final result of the form "32(%rax)". If the compiler uses a register and displacement, e.g. "64(%rax)", the end result becomes "3264(%rax)", which obviously does not work. Replacing the "m" operands with "r" operands allows safe addition of a displacement. In theory, multiple memory operands could use a shared base register with different index registers, "(%rax,%rbx)", potentially making more efficient use of registers. In the cases at hand, no such sharing is possible since the addresses involved are entirely unrelated. After this change, the code somewhat rudely accesses memory without using a corresponding memory operand, which in some cases can lead to unwanted "optimisations" of surrounding code. However, the original code also accesses memory not covered by a memory operand, so this is not adding any defect not already present. It is also hightly unlikely that any such optimisations could be performed here since the memory locations in questions are not accessed elsewhere in the same functions. This fixes crashes with suncc. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: swscale: remove disabled codeMans Rullgard2012-08-13
| | | | | | | This code has been disabled since 2003. Nobody will ever look at it again. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: build: replace mmx2 by mmxextDiego Biurrun2012-08-03
| | | | | | | Refactoring mmx2/mmxext YASM code with cpuflags will force renames. So switching to a consistent naming scheme beforehand is sensible. The name "mmxext" is more official and widespread and also the name of the CPU flag, as reported e.g. by the Linux kernel.
* sws: replace all long with int.Anton Khirnov2011-05-28
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* rgb2rgb: remove duplicate mmx/mmx2/3dnow/sse2 functions.Ronald S. Bultje2011-05-26
| | | | | | | Many functions have such a prefix, but do not actually use any instructions or features from that set, thus giving the false impression that swscale is highly optimized for a particular system, whereas in reality it is not.
* swscale: Eliminate rgb24toyv12_c() duplication.Michael Niedermayer2011-05-26
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* swscale: simplify rgb2rgb templatingLuca Barbato2011-04-14
| | | | MMX is always built. Drop the ifdefs
* swscale: move away x86 specific code from rgb2rgbLuca Barbato2011-04-14
Keep only the plain C code in the main rgb2rgb.c and move the x86 specific optimizations to x86/rgb2rgb.c Change the initialization pattern a little so some of it can be factorized to behave more like dsputils.