]> granicus.if.org Git - libx264/log
libx264
3 years agomp4: Update GPAC support to v0.8.0 or later
A. David [Thu, 2 Jul 2020 17:45:50 +0000 (19:45 +0200)]
mp4: Update GPAC support to v0.8.0 or later

3 years agocli: Install bash autocomplete during 'make install'
Henrik Gramner [Wed, 10 Jun 2020 17:18:08 +0000 (19:18 +0200)]
cli: Install bash autocomplete during 'make install'

3 years agolavf: Update to the new API for iterating demuxers
Henrik Gramner [Wed, 10 Jun 2020 01:21:24 +0000 (03:21 +0200)]
lavf: Update to the new API for iterating demuxers

3 years agoCI: Add lsmash support + Change ffmpeg source
Anton Mitrofanov [Tue, 30 Jun 2020 19:28:05 +0000 (22:28 +0300)]
CI: Add lsmash support + Change ffmpeg source

3 years agoFix compilation with nasm 2.15
Henrik Gramner [Thu, 2 Jul 2020 01:00:32 +0000 (03:00 +0200)]
Fix compilation with nasm 2.15

3 years agoRemove code for non-positive f_ip_factor/f_pb_factor
Anton Mitrofanov [Sun, 26 Apr 2020 00:19:00 +0000 (03:19 +0300)]
Remove code for non-positive f_ip_factor/f_pb_factor

Currently they are guaranteed to be positive.

3 years agoconfigure: Fix building under the MSYS shell
JHammler [Mon, 15 Jun 2020 19:57:16 +0000 (21:57 +0200)]
configure: Fix building under the MSYS shell

3 years agoconfigure: allow 'strings' override via STRINGS variable
Sergei Trofimovich [Fri, 5 Jun 2020 17:34:02 +0000 (19:34 +0200)]
configure: allow 'strings' override via STRINGS variable

This allows building x264 on systems where 'strings' or
'${HOST}-strings' does not exist, but llvm-strings exists.

3 years agox86inc: Fix warnings when using nasm 2.15
Henrik Gramner [Tue, 9 Jun 2020 19:04:58 +0000 (21:04 +0200)]
x86inc: Fix warnings when using nasm 2.15

3 years agocheckasm: increase float error margin to 1e-5
Anton Mitrofanov [Sun, 24 May 2020 14:15:35 +0000 (17:15 +0300)]
checkasm: increase float error margin to 1e-5

checkasm10 with seed=511142008 failed on win32 gcc builds.

3 years agoFix data race
Anton Mitrofanov [Sun, 24 May 2020 13:35:00 +0000 (16:35 +0300)]
Fix data race

Closes videolan/x264#16.
Bug report by Zu-Ming Jiang.

3 years agoFix undefined behavior: index out of bounds (one more)
Anton Mitrofanov [Sat, 25 Apr 2020 23:56:25 +0000 (02:56 +0300)]
Fix undefined behavior: index out of bounds (one more)

last_non_b_pict_type is initialized to -1.
Bug report by Vitaly Buka.

3 years agoRemove use of non-breaking spaces
Anton Mitrofanov [Sat, 25 Apr 2020 21:50:12 +0000 (00:50 +0300)]
Remove use of non-breaking spaces

4 years agoFix file encoding from Windows-1252 to UTF-8
Anton Mitrofanov [Sat, 25 Apr 2020 21:20:07 +0000 (00:20 +0300)]
Fix file encoding from Windows-1252 to UTF-8

4 years agoFix warning: comparison of integers of different signs [-Wsign-compare]
Anton Mitrofanov [Sun, 5 Apr 2020 19:29:32 +0000 (22:29 +0300)]
Fix warning: comparison of integers of different signs [-Wsign-compare]

4 years agoFix error "invalid size of malloc" for 10-bit encodes at i686
Anton Mitrofanov [Sun, 5 Apr 2020 18:55:15 +0000 (21:55 +0300)]
Fix error "invalid size of malloc" for 10-bit encodes at i686

4 years agoFix undefined behavior: shift exponent is negative
Anton Mitrofanov [Sun, 1 Mar 2020 11:44:09 +0000 (14:44 +0300)]
Fix undefined behavior: shift exponent is negative

4 years agoFix undefined behavior: access within misaligned address
Anton Mitrofanov [Sun, 1 Mar 2020 11:42:50 +0000 (14:42 +0300)]
Fix undefined behavior: access within misaligned address

4 years agoFix undefined behavior: applying [non-]zero offset to null pointer
Anton Mitrofanov [Sun, 1 Mar 2020 11:17:02 +0000 (14:17 +0300)]
Fix undefined behavior: applying [non-]zero offset to null pointer

4 years agoFix undefined behavior: index out of bounds
Anton Mitrofanov [Sun, 1 Mar 2020 11:00:34 +0000 (14:00 +0300)]
Fix undefined behavior: index out of bounds

4 years agoFix undefined behavior: division by zero
Anton Mitrofanov [Sun, 1 Mar 2020 10:38:46 +0000 (13:38 +0300)]
Fix undefined behavior: division by zero

4 years agoCI: Fix vlc-contrib URL for windows targets
Anton Mitrofanov [Wed, 8 Apr 2020 22:11:23 +0000 (01:11 +0300)]
CI: Fix vlc-contrib URL for windows targets

4 years agoBump dates to 2020
Anton Mitrofanov [Sat, 29 Feb 2020 19:02:01 +0000 (22:02 +0300)]
Bump dates to 2020

4 years agoCheck support for force_align_arg_pointer attribute
Anton Mitrofanov [Mon, 25 Nov 2019 14:38:57 +0000 (17:38 +0300)]
Check support for force_align_arg_pointer attribute

Closes videolan/x264#9.

4 years agoFix float division by zero when encoding CRF+VBV
Anton Mitrofanov [Mon, 25 Nov 2019 11:58:43 +0000 (14:58 +0300)]
Fix float division by zero when encoding CRF+VBV

Bug report by Sam Panzer.

4 years agoLimit maximum supported resolution
Anton Mitrofanov [Fri, 15 Nov 2019 00:04:16 +0000 (03:04 +0300)]
Limit maximum supported resolution

And other resolution dependent buffers checks.
Closes videolan/x264#10.

4 years agoaarch64: Use HAVE_NEON define during CPU detection
Janne Grunau [Fri, 1 Nov 2019 09:00:11 +0000 (10:00 +0100)]
aarch64: Use HAVE_NEON define during CPU detection

4 years agoaarch64: Fix compilation with disabled asm
Anton Mitrofanov [Thu, 31 Oct 2019 23:45:39 +0000 (02:45 +0300)]
aarch64: Fix compilation with disabled asm

4 years agoExport symbols only when building shared library
Anton Mitrofanov [Thu, 31 Oct 2019 21:10:22 +0000 (00:10 +0300)]
Export symbols only when building shared library

4 years agoFix compilation of fprofiled shared build
Anton Mitrofanov [Thu, 31 Oct 2019 20:22:28 +0000 (23:22 +0300)]
Fix compilation of fprofiled shared build

4 years agoRemove CRT objects use between DLL boundaries origin/HEAD origin/master
Anton Mitrofanov [Wed, 8 May 2019 16:19:11 +0000 (19:19 +0300)]
Remove CRT objects use between DLL boundaries

Fix crash of MSVC builds compiled with --system-libx264 and /MT (default) CRT.

4 years agoFix MSVS build with ./configure --enable-shared --system-libx264
Anton Mitrofanov [Mon, 22 Apr 2019 19:18:01 +0000 (22:18 +0300)]
Fix MSVS build with ./configure --enable-shared --system-libx264

4 years agoMark explicitly DSO public API symbols and hide all other by -fvisibility=hidden
Anton Mitrofanov [Fri, 29 Mar 2019 14:53:14 +0000 (17:53 +0300)]
Mark explicitly DSO public API symbols and hide all other by -fvisibility=hidden

Removes need for -Bsymbolic during linking.

4 years agox86: Perform stack realignment in C instead of assembly
Henrik Gramner [Sat, 30 Mar 2019 16:47:25 +0000 (17:47 +0100)]
x86: Perform stack realignment in C instead of assembly

Simplifies a lot of code and avoids having to export public asm functions.

Note that the force_align_arg_pointer function attribute is broken in clang
versions prior to 6.0.1 which may result in crashes, so make sure to either
use a newer clang version or a different compiler.

4 years agoStrip git-hash from version in x264.pc origin/stable
Anton Mitrofanov [Fri, 12 Jul 2019 12:23:29 +0000 (15:23 +0300)]
Strip git-hash from version in x264.pc

pkg-config doesn't like spaces in version string.

4 years agoRevert r2959: Signal Progressive and Constrained profiles
Anton Mitrofanov [Mon, 8 Jul 2019 12:46:56 +0000 (15:46 +0300)]
Revert r2959: Signal Progressive and Constrained profiles

Some hardware decoders reject to decode streams with non-zero
constraint_set4_flag/constraint_set5_flag.

4 years agoFix x264_picture_alloc with X264_CSP_I400 colorspace
Anton Mitrofanov [Fri, 14 Jun 2019 16:57:36 +0000 (19:57 +0300)]
Fix x264_picture_alloc with X264_CSP_I400 colorspace

4 years agoShut up UBSan about uninitialized data read
Anton Mitrofanov [Wed, 8 May 2019 14:52:15 +0000 (17:52 +0300)]
Shut up UBSan about uninitialized data read

Result was never used in that case.

4 years agoFix integer overflow detected by UBSan in --weightp analysis
Anton Mitrofanov [Mon, 22 Apr 2019 18:41:43 +0000 (21:41 +0300)]
Fix integer overflow detected by UBSan in --weightp analysis

Bug report by Xuezhi Yan.

4 years agocheckasm: Fix heap-buffer-overflow read detected by ASan
Anton Mitrofanov [Fri, 12 Apr 2019 12:40:01 +0000 (15:40 +0300)]
checkasm: Fix heap-buffer-overflow read detected by ASan

4 years agoFix heap-buffer-overflow read detected by ASan with interlaced encoding
Anton Mitrofanov [Fri, 12 Apr 2019 12:38:08 +0000 (15:38 +0300)]
Fix heap-buffer-overflow read detected by ASan with interlaced encoding

Bug report by Hongxu Chen.

4 years agoCI: Bump macos target to darwin18
Konstantin Pavlov [Tue, 16 Jul 2019 19:38:32 +0000 (22:38 +0300)]
CI: Bump macos target to darwin18

4 years agoCI: Use a newer aarch64 image
Konstantin Pavlov [Tue, 16 Jul 2019 19:24:46 +0000 (22:24 +0300)]
CI: Use a newer aarch64 image

It now includes pkg-config, so lavf can be detected.

4 years agoAdded gitlab CI
Konstantin Pavlov [Fri, 5 Apr 2019 12:08:29 +0000 (15:08 +0300)]
Added gitlab CI

Supported targets:
 - debian amd64
 - debian aarch64
 - windows 32 bit
 - windows 64 bit
 - macos 64bit

The tests are ran on all supported targets (via wine on windows).

The release jobs are only available on master/stable branches in
videolan/x264 repository, and must be ran manually when a developer
wishes to upload the artifacts.

5 years agoFix warning in autocomplete.c when compiled with lavf
Henrik Gramner [Thu, 14 Mar 2019 13:31:22 +0000 (14:31 +0100)]
Fix warning in autocomplete.c when compiled with lavf

5 years agoRemove compatibility workarounds
Anton Mitrofanov [Mon, 5 Jun 2017 23:30:41 +0000 (02:30 +0300)]
Remove compatibility workarounds

This will break decoding with older versions of FFmpeg/Libav.

5 years agoRemove h->rc dereferencing where possible
Anton Mitrofanov [Fri, 9 Nov 2018 15:37:17 +0000 (18:37 +0300)]
Remove h->rc dereferencing where possible

5 years agox86inc: Add support for GFNI instructions
Henrik Gramner [Sat, 16 Feb 2019 20:02:01 +0000 (21:02 +0100)]
x86inc: Add support for GFNI instructions

5 years agox86inc: Improve warnings for use of unsupported instructions
Henrik Gramner [Sat, 16 Feb 2019 16:57:21 +0000 (17:57 +0100)]
x86inc: Improve warnings for use of unsupported instructions

Warn when the following are used without the appropriate cpuflag:
 * YMM and ZMM registers
 * 'pextrw' with a memory operand
 * GPR instruction set extensions

5 years agox86inc: Support N_PEXT bit on Mach-O
Henrik Gramner [Thu, 31 Jan 2019 19:42:32 +0000 (20:42 +0100)]
x86inc: Support N_PEXT bit on Mach-O

Allows for marking symbols as having limited global scope, similar to
using 'hidden' symbol visibility on ELF.

5 years agox86inc: Make 'non-adjacent' default in the TAIL_CALL macro
Henrik Gramner [Thu, 31 Jan 2019 19:21:43 +0000 (20:21 +0100)]
x86inc: Make 'non-adjacent' default in the TAIL_CALL macro

5 years agox86inc: Add x86-32 PIC support macros
Henrik Gramner [Thu, 31 Jan 2019 19:17:56 +0000 (20:17 +0100)]
x86inc: Add x86-32 PIC support macros

5 years agox86inc: Turn 'movsxd' into 'movifnidn' on x86-32
Henrik Gramner [Thu, 31 Jan 2019 19:11:01 +0000 (20:11 +0100)]
x86inc: Turn 'movsxd' into 'movifnidn' on x86-32

5 years agoBump dates to 2019
Henrik Gramner [Thu, 31 Jan 2019 19:08:40 +0000 (20:08 +0100)]
Bump dates to 2019

5 years agocli: Bash autocomplete support
Henrik Gramner [Sun, 1 Jul 2018 18:34:48 +0000 (20:34 +0200)]
cli: Bash autocomplete support

Allows for automatic command line completion for both options and values.

Options such as --input-csp and --input-fmt will dynamically retrieve
supported values from libavformat when compiled with lavf support.

Execute 'source tools/bash-autocomplete.sh' in bash to enable.

5 years agoSignal Progressive and Constrained profiles
Yusuke Nakamura [Mon, 9 Apr 2018 02:01:28 +0000 (11:01 +0900)]
Signal Progressive and Constrained profiles

Progressive High, Constrained High, and Progressive High 10.

Even in Main profile, constraint_set4_flag is now set to 1 if progressive,
and constraint_set5_flag is set to 1 if no B-slices are present.

5 years agoppc: Use xxpermdi in sad_x3/x4 and use macros to avoid redundant code
Alexandra Hájková [Sat, 8 Sep 2018 07:15:53 +0000 (07:15 +0000)]
ppc: Use xxpermdi in sad_x3/x4 and use macros to avoid redundant code

5 years agoppc: Use the vec_xst_len for partial stores in mc
Luca Barbato [Thu, 6 Sep 2018 10:25:14 +0000 (12:25 +0200)]
ppc: Use the vec_xst_len for partial stores in mc

Around a ~1% speedup to the overall encoding for --slow.

5 years agoppc: Use vec_splats in mc
Luca Barbato [Thu, 6 Sep 2018 10:25:13 +0000 (12:25 +0200)]
ppc: Use vec_splats in mc

No overall speedup, just tidier code.

5 years agoppc: Use the vec_xst_len for partial stores
Luca Barbato [Thu, 23 Aug 2018 08:30:37 +0000 (08:30 +0000)]
ppc: Use the vec_xst_len for partial stores

Seems to give about a 1-2% overall speedup on --slow.

5 years agoppc: Use xxpermdi in VEC_STORE8
Luca Barbato [Sun, 19 Aug 2018 15:27:55 +0000 (17:27 +0200)]
ppc: Use xxpermdi in VEC_STORE8

Around a ~2% speedup to the overall encoding for --slow.

5 years agoppc: Use a single store to write the scores for sad_x4_8x8
Luca Barbato [Sun, 19 Aug 2018 15:27:54 +0000 (17:27 +0200)]
ppc: Use a single store to write the scores for sad_x4_8x8

Yet another use of xxpermdi, another 10% gain.

5 years agoppc: Use xxpermdi to halve the computation in sad_x4_8x8
Luca Barbato [Sun, 19 Aug 2018 15:27:53 +0000 (17:27 +0200)]
ppc: Use xxpermdi to halve the computation in sad_x4_8x8

About 20% faster.

5 years agoppc: Rework satd_4* likewise
Luca Barbato [Sun, 19 Aug 2018 07:28:42 +0000 (09:28 +0200)]
ppc: Rework satd_4* likewise

Now 4x4 is as slow as C and 4x8 is a 2% faster than before.

5 years agoppc: Factor out the sum of absolute
Luca Barbato [Sun, 19 Aug 2018 07:28:41 +0000 (09:28 +0200)]
ppc: Factor out the sum of absolute

And use it on the other satd > 8.

5-10% faster depending on the size.

5 years agoppc: Rework the adds in satd8x8
Luca Barbato [Sun, 19 Aug 2018 07:28:40 +0000 (09:28 +0200)]
ppc: Rework the adds in satd8x8

10% faster.

5 years agoppc: Add quant_4x4x4
Luca Barbato [Fri, 17 Aug 2018 20:28:45 +0000 (22:28 +0200)]
ppc: Add quant_4x4x4

4x faster than C.

5 years agoppc: Cleanup quant
Luca Barbato [Fri, 17 Aug 2018 20:28:44 +0000 (22:28 +0200)]
ppc: Cleanup quant

5 years agox86: Always use PIC in x86-64 asm
Henrik Gramner [Sun, 12 Aug 2018 15:00:13 +0000 (17:00 +0200)]
x86: Always use PIC in x86-64 asm

Most x86-64 operating systems nowadays doesn't even allow .text relocations
in object files any more, and there is no measurable overall performance
difference from using RIP-relative addressing in x264 asm.

Enforcing PIC reduces complexity and simplifies testing.

5 years agox86: Fix integer overflow in intra_sa8d_x3_8x8_sse2
Henrik Gramner [Sat, 23 Feb 2019 19:15:33 +0000 (20:15 +0100)]
x86: Fix integer overflow in intra_sa8d_x3_8x8_sse2

5 years agoCheck that mbtree settings are consistent between passes
Anton Mitrofanov [Fri, 9 Nov 2018 15:13:34 +0000 (18:13 +0300)]
Check that mbtree settings are consistent between passes

Also check that CQP mode is not used with 2-pass.

5 years agoMark frame_size_estimated as volatile
Anton Mitrofanov [Mon, 4 Feb 2019 19:04:56 +0000 (22:04 +0300)]
Mark frame_size_estimated as volatile

Ensures that access is atomic and that other threads sees the actual
value of the variable.

5 years agoFix data race detected by ThreadSanitizer
Anton Mitrofanov [Mon, 4 Feb 2019 18:46:12 +0000 (21:46 +0300)]
Fix data race detected by ThreadSanitizer

Bug report by Daniel Deptford.

5 years agoFix XAVC with sliced-threads
Anton Mitrofanov [Mon, 24 Dec 2018 16:37:45 +0000 (19:37 +0300)]
Fix XAVC with sliced-threads

5 years agoFix XAVC slice pattern
Anton Mitrofanov [Fri, 21 Dec 2018 15:54:56 +0000 (18:54 +0300)]
Fix XAVC slice pattern

5 years agoEliminate the use of strtok()
Henrik Gramner [Sun, 21 Oct 2018 12:28:59 +0000 (14:28 +0200)]
Eliminate the use of strtok()

Also fix the string parsing in param_apply_tune() to correctly compare
the entire string, not just the first N characters.

5 years agoconfigure: Fix log2f misdetection on some systems
Anton Mitrofanov [Thu, 8 Nov 2018 19:01:54 +0000 (22:01 +0300)]
configure: Fix log2f misdetection on some systems

Bug report by Dirk Fieldhouse.

5 years agoFix ultrafast preset speed regression
Anton Mitrofanov [Thu, 8 Nov 2018 18:53:17 +0000 (21:53 +0300)]
Fix ultrafast preset speed regression

--trellis 0 was missed for it during 8-bit and 10-bit unification.
Bug report by Aleksey Vasenev.

5 years agoFix --crop-rect top offset with --interlaced or --fake-interlaced
Anton Mitrofanov [Wed, 10 Oct 2018 16:41:08 +0000 (19:41 +0300)]
Fix --crop-rect top offset with --interlaced or --fake-interlaced

Bug report by Koby Shina.

5 years agoFix possible double transpose of custom CQM if --level is not set
Anton Mitrofanov [Sun, 23 Sep 2018 17:47:44 +0000 (20:47 +0300)]
Fix possible double transpose of custom CQM if --level is not set

Bug reported by Nicolas Gaullier

5 years agocli: Fix linking with --system-libx264 on x86
Henrik Gramner [Tue, 7 Aug 2018 20:42:22 +0000 (22:42 +0200)]
cli: Fix linking with --system-libx264 on x86

5 years agoFix CAVLC+RDO in 4:4:4
Anton Mitrofanov [Tue, 21 Aug 2018 12:11:21 +0000 (15:11 +0300)]
Fix CAVLC+RDO in 4:4:4

5 years agoppc: Optimize quant functions
Alexandra Hájková [Wed, 11 Jul 2018 19:28:20 +0000 (19:28 +0000)]
ppc: Optimize quant functions

1) using xxpermdi + merge instead of 2 merges improves quant_8x8
performance by 5%

2) use vec_splats instead of vec_splat

checkasm timings when compiled with gcc:
                  C:            AltiVec:
                                before: after:
quant_2x2_dc:      57            163      46
quant_4x4_dc:     141            162      57

dequant_4x4_cmp:  104            101      45
dequant_4x4_flat: 104            106      46
dequant_8x8_cmp:  412            208     147
dequant_8x8_flat: 414            212     149

5 years agoppc: Add support for Power9-only vec_absd
Alexandra Hajkova [Sun, 8 Jul 2018 18:04:43 +0000 (13:04 -0500)]
ppc: Add support for Power9-only vec_absd

Increases overall encoding speed on POWER9 by 8%.

5 years agoppc: Optimize sub8x8_dct_dc
Alexandra Hájková [Fri, 29 Jun 2018 16:50:20 +0000 (16:50 +0000)]
ppc: Optimize sub8x8_dct_dc

5 years agoppc: AltiVec add16x16_idct_dc
Alexandra Hájková [Thu, 21 Jun 2018 18:36:32 +0000 (18:36 +0000)]
ppc: AltiVec add16x16_idct_dc

5 years agoppc: Optimize add8x8_idct_dc
Alexandra Hájková [Sat, 23 Jun 2018 14:58:17 +0000 (14:58 +0000)]
ppc: Optimize add8x8_idct_dc

5 years agoppc: Add compatibility macros for vec_xxpermdi
Luca Barbato [Thu, 12 Jul 2018 08:41:22 +0000 (10:41 +0200)]
ppc: Add compatibility macros for vec_xxpermdi

5 years agoPrefer a monotonic clock source if available
Henrik Gramner [Sun, 24 Jun 2018 22:09:51 +0000 (00:09 +0200)]
Prefer a monotonic clock source if available

5 years agoAdd Sony XAVC, a flavour of AVC-Intra
Kieran Kunhya [Wed, 30 Aug 2017 15:05:41 +0000 (16:05 +0100)]
Add Sony XAVC, a flavour of AVC-Intra

5 years agoCosmetics: Fix indentation for multiline function prototypes
Anton Mitrofanov [Mon, 2 Jul 2018 17:20:03 +0000 (20:20 +0300)]
Cosmetics: Fix indentation for multiline function prototypes

It was broken in "Drop the x264 prefix" patch.

5 years agoCosmetics: Use consistent "inline" attribute position
Anton Mitrofanov [Mon, 16 Apr 2018 20:54:43 +0000 (23:54 +0300)]
Cosmetics: Use consistent "inline" attribute position

Place it immediately after "static".

5 years agox86: AVX-512 plane_copy and plane_copy_swap
Henrik Gramner [Thu, 25 Jan 2018 21:17:57 +0000 (22:17 +0100)]
x86: AVX-512 plane_copy and plane_copy_swap

Avoid the scalar C wrapper by utilizing opmasks to prevent overreading the
input buffer.

5 years ago4:0:0 (monochrome) encoding support
Emanuele Ruffaldi [Sat, 6 Jan 2018 01:34:39 +0000 (02:34 +0100)]
4:0:0 (monochrome) encoding support

Virtually zero increase in compression efficiency compared to 4:2:0 with empty
chroma planes. Performance is better though, especially with fast settings.

5 years agoMakefile improvements
Diego Biurrun [Sun, 5 Feb 2017 08:02:43 +0000 (09:02 +0100)]
Makefile improvements

 * Coalesce some install recipe lines

 * Remove empty addition of GPLed filters

 * Install libdir in recipes that directly require it

 * Coalesce etags/TAGS rules

 * Simplify fprofiled rule

5 years agox86inc: Improve SAVE/LOAD_MM_PERMUTATION macros
Henrik Gramner [Sun, 22 Apr 2018 20:49:15 +0000 (22:49 +0200)]
x86inc: Improve SAVE/LOAD_MM_PERMUTATION macros

Use register numbers instead of copying the full register names. This makes it
possible to change register widths in the middle of a function and keep the
mmreg permutations intact which can be useful for code that only needs larger
vectors for parts of the function in combination with macros etc.

Also change the LOAD_MM_PERMUTATION macro to use the same default name as the
SAVE macro. This simplifies swapping from ymm to xmm registers or vice versa:

    SAVE_MM_PERMUTATION
    INIT_XMM <cpuflags>
    LOAD_MM_PERMUTATION

5 years agox86inc: Optimize VEX instruction encoding
Henrik Gramner [Sat, 31 Mar 2018 11:49:56 +0000 (13:49 +0200)]
x86inc: Optimize VEX instruction encoding

Most VEX-encoded instructions require an additional byte to encode when src2
is a high register (e.g. x|ymm8..15). If the instruction is commutative we
can swap src1 and src2 when doing so reduces the instruction length, e.g.

    vpaddw xmm0, xmm0, xmm8 -> vpaddw xmm0, xmm8, xmm0

5 years agox86inc: Fix VEX -> EVEX instruction conversion
Henrik Gramner [Fri, 30 Mar 2018 23:16:06 +0000 (01:16 +0200)]
x86inc: Fix VEX -> EVEX instruction conversion

There's an edge case that wasn't properly handled.

5 years agoconfigure: Fix required version checks for lavf and swscale
Anton Mitrofanov [Tue, 31 Jul 2018 19:54:33 +0000 (22:54 +0300)]
configure: Fix required version checks for lavf and swscale

5 years agoFix float division by zero in weightp analysis
Anton Mitrofanov [Fri, 20 Jul 2018 05:37:43 +0000 (08:37 +0300)]
Fix float division by zero in weightp analysis