volvet
fb1958ad13
Merge pull request #519 from mstorsjo/push-xmm-registers
...
Backup/restore the xmm6-xmm15 SSE registers within asm functions on win64
Reviewed by zhiliang
2014-03-18 15:04:54 +08:00
ruil2
b7b01faf29
Merge pull request #526 from licaiguo/IdctResAddPred-pr
...
add IdctResAddPred unit test for decoder
2014-03-18 15:04:29 +08:00
Licai Guo
3956a32d41
Merge pull request #524 from sijchen/me_refactor33
...
Expand structure of MD and ME
2014-03-18 12:51:05 +08:00
Licai Guo
95a2a40190
add IdctResAddPred unit test for decoder
2014-03-17 20:09:09 -07:00
Licai Guo
37fa5f554e
Merge pull request #513 from ruil2/encoder_interface
...
Encoder interface
2014-03-18 09:51:32 +08:00
sijchen
7f0c7daad9
expand structure of MD and ME
2014-03-18 09:47:05 +08:00
Licai Guo
e8d5108dbc
Merge pull request #523 from mstorsjo/wp8-arm-asm
...
Enable the arm assembly in msvc-arm builds
2014-03-18 09:39:19 +08:00
volvet
b5353c8455
Merge pull request #516 from mstorsjo/fix-yasm-64bit
...
Fix building with yasm in 64 bit mode
2014-03-18 09:29:42 +08:00
volvet
e75cd2298b
Merge pull request #517 from mstorsjo/simplify-x86-asm-func-macro
...
Fold ALIGN 16 and the function label into WELS_EXTERN
2014-03-18 09:29:17 +08:00
volvet
6892127a32
Merge pull request #521 from mstorsjo/neon-register-backup
...
Don't clobber q4-q7 in WelsIntra16x16Combined3Satd_neon
2014-03-18 09:28:51 +08:00
Martin Storsjö
00efbc2cb5
Enable the arm assembly in msvc-arm builds
...
This requires using the external gas-preprocessor tool that
converts the gnu assembler format sources to armasm format at
build time. This allows keeping the source files in one single
format but only converting while building.
2014-03-17 20:28:12 +02:00
Martin Storsjö
29a0c77acf
Don't clobber q4-q7 in WelsIntra16x16Combined3Satd_neon
...
This is similar to what is done in other neon functions. This
function was missed since it isn't covered by the current
set of unittests.
2014-03-17 20:04:53 +02:00
Ethan Hugg
8e57c926a3
Merge pull request #518 from mstorsjo/remove-commented-rodata
...
Remove commented out rodata sections and tables in assembly files
2014-03-17 09:22:35 -07:00
Ethan Hugg
469820e3a2
Merge pull request #508 from mstorsjo/fix-yasm-osx
...
Use -DPREFIX instead of --prefix _ on OS X
2014-03-17 09:20:55 -07:00
Martin Storsjö
4633626d69
Remove XMMREG_PROTECT
...
This isn't necessary any longer, when all the assembly routines
take care of restoring registers as necessary.
2014-03-17 13:47:01 +02:00
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
Martin Storsjö
9293f2f947
Remove commented out rodata sections and tables in assembly files
2014-03-17 13:42:18 +02:00
Martin Storsjö
eec968234d
Fold ALIGN 16 and the function label into WELS_EXTERN
...
This simplifies the structure for all x86 assembly functions,
reducing the amount of duplicated code structure.
2014-03-17 13:35:00 +02:00
Martin Storsjö
04f5bcd68d
Use movsxd in SIGN_EXTENSION
...
This is what nasm ended up assembling movsx with 32 bit input to
anyway.
Keep using plain movsx for 16 bit input.
This fixes building with yasm in 64 bit mode.
2014-03-17 13:26:46 +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
ruil2
895c0ff635
fix typo
2014-03-17 12:09:52 +08:00
ruil2
36abe317a5
modify unit test for return type modification
2014-03-17 11:56:19 +08:00
ruil2
36d56b6638
modify EncoderFrame return type.
...
commit b99a307ab94183c32a293ad5fda8b0e3323546a0
Author: ruil2 <ruil2@cisco.com>
Date: Wed Mar 12 13:34:27 2014 +0800
fix typo
2014-03-17 10:46:38 +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
Martin Storsjö
d723ad2774
Use -DPREFIX instead of --prefix _ on OS X
...
The --prefix parameter differs between yasm and nasm; nasm
requires --prefix _ while yasm requires --prefix=_. Using the
define instead (as on windows) allows easier switching between
the two otherwise mostly compatible assemblers.
This fixes building with yasm on OS X in 32 bit mode. For 64 bit,
a few more tweaks are still required.
2014-03-16 11:59:34 +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