Martin Storsjö
3cf52554f7
Backup/restore the xmm6-xmm15 SSE registers within asm functions on win64
...
According to the Win64 ABI, these registers need to be preserved,
and compilers are allowed to rely on their content to stay
available - not only for float usage but for any usage, anywhere,
in the calling C++ code.
This adds a macro which pushes the clobbered registers onto the
stack if targeting win64 (and a matching one which restores them).
The parameter to the macro is the number of xmm registers used
(e.g. if using xmm0 - xmm7, the parameter is 8), or in other
words, the number of the highest xmm register used plus one.
This is similar to how the same issue is handled for the NEON
registers q4-q7 with the vpush instruction, except that they needed
to be preserved on all platforms, not only on one particular platform.
This allows removing the XMMREG_PROTECT_* hacks, which can
easily fail if the compiler chooses to use the callee saved
xmm registers in an unexpected spot.
2014-03-17 13:44:33 +02:00
Licai Guo
918b211990
Merge pull request #515 from mstorsjo/remove-commented-x86-asm
...
Remove commented out code for old, 32-bit only x86 assembly function prologues/epilogues
2014-03-17 19:12:47 +08:00
Martin Storsjö
f96918283f
Remove commented out code for old, 32-bit only x86 assembly function prologues/epilogues
2014-03-17 11:20:11 +02:00
Licai Guo
258828f7ec
Merge pull request #503 from mstorsjo/encoder-test-coverage
...
Add encoder tests with deblocking and/or denoising
2014-03-17 16:46:38 +08:00
Licai Guo
fc4e0cacec
Merge pull request #483 from volvet/develop_b
...
use large/medium/similar to define scene change result
2014-03-17 16:32:31 +08:00
Licai Guo
b5a4d706b9
Merge pull request #496 from mstorsjo/use-sign-extend-macro
...
Use the SIGN_EXTENSION macro where possible
2014-03-17 16:31:03 +08:00
Licai Guo
1c0ba88b0e
Merge pull request #501 from mstorsjo/neon-register-backup
...
Avoid clobbering the registers q4-q7 in DeblockingBSCalcEnc_neon
2014-03-17 14:05:23 +08:00
Licai Guo
2c796337ba
Merge pull request #510 from huili2/remove_basemb
...
remove BASE_MB related code
2014-03-17 08:46:25 +08:00
Martin Storsjö
eb238e6549
Use the SIGN_EXTENSION macro where possible
...
This shortens the x86 assembly by 134 lines in total.
2014-03-16 17:54:24 +02:00
volvet
1449c83f57
Merge pull request #509 from mstorsjo/fix-arm-asm-macro-indentation
...
Indent all WELS_ASM_FUNC_BEGIN properly
2014-03-16 20:16:53 +08:00
Martin Storsjö
91e5838621
Indent all WELS_ASM_FUNC_BEGIN properly
...
By having all of them start at the start of the line, the code
is more consistent and readable.
2014-03-16 12:01:54 +02:00
volvet
e654bf6b7f
Merge pull request #490 from ruil2/encoder_slice_auto
...
fix dump file issue
2014-03-16 15:41:26 +08:00
volvet
1c3e87dd3f
Merge pull request #505 from mstorsjo/x86-asm-constants
...
Format x86 assembly constants in a yasm compatible manner
2014-03-16 15:37:16 +08:00
volvet
373db5ddd2
Merge pull request #506 from mstorsjo/remove-unused-define
...
Remove the unused define NOPREFIX
2014-03-16 10:22:57 +08:00
volvet
ac990fdc38
Merge pull request #507 from mstorsjo/more-x86-asm-args
...
Add defines for argument 11 and 12 in asm_inc
2014-03-16 10:21:35 +08:00
volvet
e606bae0e9
Merge pull request #504 from mstorsjo/fix-function-name-typo
...
Fix a typo, Smple -> Sample
2014-03-16 10:18:03 +08:00
Martin Storsjö
d45e624cd4
Simplify code by using the arg11 and arg12 defines
2014-03-15 14:42:27 +02:00
Martin Storsjö
c82f548e6f
Add defines of arg11 and arg12 in asm_inc.asm
2014-03-15 14:42:07 +02:00
Martin Storsjö
00849100f8
Remove the unused define NOPREFIX
...
Nothing in the x86 assembly reacts to that define (nor anything
else within the code base).
2014-03-15 14:40:36 +02:00
Martin Storsjö
ce8da27287
Format x86 assembly constants in a yasm compatible manner
...
This is similar to what was done in a6463be0cc
- yasm requires
these constants to have a zero after $.
2014-03-15 14:38:28 +02:00
Licai Guo
6f2b98975e
Merge pull request #502 from mstorsjo/fix-macro-indentation
...
Fix the indentation of some nasm macros
2014-03-15 07:16:37 +08:00
Licai Guo
3bf5efd877
Merge pull request #499 from ethanhugg/winbuild_time
...
Add time.h for Windows build.
2014-03-15 07:16:08 +08:00
Martin Storsjö
f4fdb15397
Fix a typo, Smple -> Sample
2014-03-14 23:30:09 +02:00
Martin Storsjö
868f912dc2
Add encoder tests with deblocking and/or denoising
...
This increases the coverage of assembly routines (and encoder
features in general) tested by the codec unit test.
2014-03-14 22:33:33 +02:00
Ethan Hugg
c6c1691799
Merge pull request #500 from mstorsjo/fix-func-ptr-check
...
Check for the right function pointer
2014-03-14 13:30:58 -07:00
Martin Storsjö
4d120781c1
Fix the indentation of some nasm macros
2014-03-14 22:26:33 +02:00
Martin Storsjö
cde30c155b
Avoid clobbering the registers q4-q7 in DeblockingBSCalcEnc_neon
...
Remap q5 to q8, q6 to q9, q7 to q10 and q8 to q11, and push
q4 to the stack.
This was missed previously since the codec unittest doesn't
test encoding with loop filter enabled yet.
2014-03-14 22:22:28 +02:00
Martin Storsjö
b3d04d88a0
Check for the right function pointer
...
This code checked whether one function pointer was non-null,
but the went on to call a different function pointer. Check
for the one that actually was called.
2014-03-14 22:20:40 +02:00
Ethan Hugg
6944ace5e1
Add time.h for Windows build.
2014-03-14 10:59:35 -07:00
Ethan Hugg
43bc9d7c07
Merge pull request #498 from mstorsjo/add-missing-include
...
Include time.h in DataGenerator.cpp
2014-03-14 08:21:02 -07:00
Ethan Hugg
3a1b86e763
Merge pull request #497 from mstorsjo/remove-unused-variable
...
Remove an unused variable
2014-03-14 08:20:46 -07:00
Martin Storsjö
dca9d628f7
Include time.h in DataGenerator.cpp
...
This fixes building on MSVC.
2014-03-14 15:16:34 +02:00
Martin Storsjö
d847aacace
Remove an unused variable
...
This fixes a warning in MSVC.
2014-03-14 15:15:57 +02:00
volvet
6da9a9e5c8
Merge pull request #489 from sijchen/me_refactor22
...
refactor ME for easier adding other search methods
2014-03-14 17:53:10 +08:00
volvet
a0dbde2e0e
Merge pull request #493 from mstorsjo/fix-macro-typo
...
Fix a typo in a macro name, EXTENTION -> EXTENSION
2014-03-14 17:52:56 +08:00
volvet
c8f2f08403
Merge pull request #495 from sijchen/add_me_test11
...
[Encoder UnitTest] add basic me test
2014-03-14 17:12:46 +08:00
huili2
b1f596fd69
remove BASE_MB related code
2014-03-14 02:03:41 -07:00
sijchen
2fe99d688b
add basic me test
2014-03-14 16:40:02 +08:00
Martin Storsjö
9199798f22
Fix a typo in a macro name, EXTENTION -> EXTENSION
2014-03-14 10:13:18 +02:00
Licai Guo
e536be8dfa
Merge pull request #492 from mstorsjo/fix-ifdef-comment
...
Fix a mismatched ifdef comment
2014-03-14 16:08:08 +08:00
Martin Storsjö
2bce50283f
Fix a mismatched ifdef comment
...
This is an ifdef block for HAVE_NEON.
2014-03-14 10:01:18 +02:00
unknown
94f8c351ca
fix dump file issue
2014-03-14 15:13:24 +08:00
volvet
447d7e19c9
Merge pull request #488 from licaiguo/clean-redundant-check
...
clean redundant checks in decoder
2014-03-14 15:07:00 +08:00
sijchen
6c3d83a8ac
refactor ME for easier adding other search methods
2014-03-14 15:04:35 +08:00
Licai Guo
f589c580eb
clean redundant checks in decoder
2014-03-13 23:56:54 -07:00
Licai Guo
8492aac917
Merge pull request #486 from huili2/nzc_bug_fix
...
nzc bug fix and clear
2014-03-14 13:11:45 +08:00
huili2
734e60aeeb
add according to review opinion
2014-03-13 20:21:10 -07:00
Licai Guo
5bffb627d6
nzc bug fix and clear
2014-03-13 19:31:28 -07:00
volvet
6714b8ae99
Merge pull request #463 from mstorsjo/dont-clobber-neon-registers
...
Avoid clobbering the neon registers q4-q7
Review and verified by zhilwang
2014-03-14 10:28:55 +08:00
volvet
fc5c48830a
fix the condition of scene change flag and comments
2014-03-14 09:53:24 +08:00