summaryrefslogtreecommitdiff
path: root/libavutil/x86
Commit message (Collapse)AuthorAge
* Add more missing includes after removing the implicit common.hMartin Storsjö2012-08-16
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* Add some more missing includes after removing the implicit common.hMartin Storsjö2012-08-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* x86: move MANGLE() and related macros to libavutil/x86/asm.hMans Rullgard2012-08-09
| | | | | | These x86-specific macros do not belong in generic code. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: rename libavutil/x86_cpu.h to libavutil/x86/asm.hMans Rullgard2012-08-09
| | | | | | | This puts x86-specific things in the x86/ subdirectory where they belong. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: fix build with nasm 2.08Mans Rullgard2012-08-07
| | | | | | | | It appears that something goes wrong in old nasm versions when the %+ operator is used in the last argument of a macro invocation and this argument is tested with %ifdef within the macro. This patch rearranges the macro arguments such that the %+ operator is never used in the last argument.
* x86: use nop cpu directives only if supportedMans Rullgard2012-08-07
| | | | | | | nasm does not support 'CPU foonop' directives. This adds a configure test for the directive and uses it only if supported. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: fix rNmp macros with nasmMans Rullgard2012-08-07
| | | | | | For some reason, nasm requires this. No harm done to yasm. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: add colons after labelsMans Rullgard2012-08-07
| | | | | | nasm prints a warning if the colon is missing. 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.
* x86: Use consistent 3dnowext function and macro name suffixesDiego Biurrun2012-08-03
| | | | | | Currently there is a wild mix of 3dn2/3dnow2/3dnowext. Switching to "3dnowext", which is a more common name of the CPU flag, as reported e.g. by the Linux kernel, unifies this.
* x86inc: clip num_args to 7 on x86-32.Loren Merritt2012-07-28
| | | | | | | | This allows us to unconditionally set the cglobal num_args parameter to a bigger value, thus making writing yasm code even easier than before. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* x86inc: sync to latest version from x264.Ronald S. Bultje2012-07-28
|
* x86: add support for fmaddps fma4 instruction with abstraction to avx/sseJustin Ruggles2012-07-27
|
* x86inc: automatically insert vzeroupper for YMM functions.Ronald S. Bultje2012-07-26
|
* dsputil: x86: add SHUFFLE_MASK_W macroJason Garrett-Glaser2012-07-22
| | | | Simplifies pshufb masks that operate on words.
* x86/cpu: implement get/set_eflags using intrinsicsRonald S. Bultje2012-07-10
| | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Martin Storsjö <martin@martin.st>
* x86/cpu: implement support for cpuid through intrinsicsRonald S. Bultje2012-07-10
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* x86/cpu: implement support for xgetbv through intrinsicsRonald S. Bultje2012-07-10
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* x86/timer: implement an intrinsic-based version for rdtsc (AV_READ_TIME).Ronald S. Bultje2012-07-07
|
* x86inc: add SPLATB_LOAD, SPLATB_REG, PSHUFLW macrosLoren Merritt2012-07-05
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* x86inc: modify ALIGN to not generate long nops on i586Loren Merritt2012-07-05
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* x86: cpu: clean up check for cpuid instruction supportMans Rullgard2012-07-01
| | | | | | | This adds macros for accessing the EFLAGS register and uses these instead of coding the entire check in inline asm. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: cpu: whitespace (mostly) cosmeticsMans Rullgard2012-06-25
| | | | | | | | | This adds whitespace around operators, aligns line continuation backslashes, and breaks long lines. Also fixes an ifdef halfway through a statement. The one line of duplication this saved is not worth the ugliness. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: place some inline asm under #if HAVE_INLINE_ASMRonald S. Bultje2012-06-25
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86: Add CPU flag for the i686 cmov instructionDiego Biurrun2012-06-23
|
* float_dsp: add x86-optimized functions for vector_fmac_scalar()Justin Ruggles2012-06-18
|
* Add a float DSP framework to libavutilJustin Ruggles2012-06-08
| | | | Move vector_fmul() from DSPContext to AVFloatDSPContext.
* x86: Avoid movs on BUTTERFLYPS when in AVX modeVitor Sessak2012-05-29
| | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* lavr: replace the SSE version of ff_conv_fltp_to_flt_6ch() with SSE4 and AVXJustin Ruggles2012-05-09
| | | | | The current SSE version is slower than the MMX version on Athlon64 and Sandy Bridge, but the SSE4 and AVX versions are faster on Sandy Bridge.
* Add libavresampleJustin Ruggles2012-04-24
| | | | | This is a new library for audio sample format, channel layout, and sample rate conversion.
* x86inc: support AVX abstraction for 2-operand instructionsLoren Merritt2012-04-18
| | | | | | Add cvtdq2ps and cvtps2dq to the AVX instruction list. Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* build: Move all arch OBJS declarations into arch subdirectory Makefiles.Diego Biurrun2012-04-12
|
* x86inc improvements for 64-bitHenrik Gramner2012-04-11
| | | | | | | | | | | | Add support for all x86-64 registers Prefer caller-saved register over callee-saved on WIN64 Support up to 15 function arguments Also (by Ronald S. Bultje) Fix up our asm to work with new x86inc.asm. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* x86inc: add *mp named argument support to DEFINE_ARGS.Ronald S. Bultje2012-03-14
|
* x86inc: don't "bake" stack_offset in named arguments.Loren Merritt2012-03-03
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* x86inc: support yasm -f win64 flag also.Haruhiko Yamagata2012-02-08
| | | | | | | This sets __OUTPUT_FORMAT__ to win64 instead of win32, even though both (through -m amd64) produce 64-bit binary code. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* x86inc: allow manual use of WIN64_SPILL_XMM.Henrik Gramner2012-02-08
| | | | | | | | Functions using INIT_MMX may still access XMM registers through direct means (xmm0-15). Therefore, they still need to be marked for clobber so they can be properly saved/restored. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* win64: add a XMM clobber test configure option.Ronald S. Bultje2012-02-02
| | | | | | | This will be useful to test more aggressively for failures to mark XMM registers as clobbered in Win64 builds, and prevent regressions thereof. Based on a patch by Ramiro Polla <ramiro.polla@gmail.com>
* x86inc.asm: fix typo.Ronald S. Bultje2012-01-27
| | | | Assemblers don't understand ! in %if statements.
* config.asm: change %ifdef directives to %if directives.Ronald S. Bultje2012-01-27
| | | | This allows combining multiple conditionals in a single statement.
* mpegaudiodec: optimized iMDCT transformVitor Sessak2012-01-08
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* x86: bswap: remove test for bswap instructionMans Rullgard2011-12-12
| | | | | | | | Firstly, this test never worked as intended, always reporting success. Secondly, bswap is available from 486 onward and can thus be assumed present. Signed-off-by: Mans Rullgard <mans@mansr.com>
* bswap: make generic implementation more compiler-friendlyMans Rullgard2011-12-12
| | | | | | | | With these changes, gcc 4.5 and later recognise it as a bswap and use the proper instructions on ARM and x86. On x86, the 16-bit bswap is recognised from gcc 4.1. Signed-off-by: Mans Rullgard <mans@mansr.com>
* x86 cpuid: set vendor union members separatelySean McGovern2011-12-08
| | | | | | | | | Solaris Studio (suncc) has difficulty with filling in members of a union. Instead, let's retrieve and store the cpuid() results separately. This is still a compiler bug, however this fix does not cause a regression on other platforms. Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* x86inc: Flag shufps as an floating-point instruction for the AVX emulation code.Vitor Sessak2011-11-27
| | | | | | | Without this, code like "shufps m0, m1, m2, 0xaa" would not work in CPUs not supporting SSE2. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* x86inc: use sse versions of common macros instead of sse2 when applicableJustin Ruggles2011-11-06
|
* Update x86inc.asm to latest x264 version, and add AVX symmetry.Loren Merritt2011-11-05
| | | | | | | We keep INIT_AVX (for backwards compatibility). 3arg AVX ops with a memory arg can only have it in src2, whereas SSE emulation of 3arg prefers to have it in src1 (i.e. the mov). So, if the op is symmetric and the wrong one is memory, swap them.
* fmtconvert: port int32_to_float_fmul_scalar() x86 inline asm to yasmJustin Ruggles2011-10-21
|
* x86: XOP/FMA4 CPU detection supportJason Garrett-Glaser2011-09-26
|
* cpu detection: avoid a signed overflowSean McGovern2011-09-03
| | | | | | 1<<31 overflows because 1 is signed, so force it to unsigned. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>