openh264/codec/processing/src
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
..
adaptivequantization Add arm asm code for processing. 2014-03-05 16:54:05 +08:00
arm Push clobbered neon registers on the stack 2014-03-10 22:07:36 +02:00
asm Backup/restore the xmm6-xmm15 SSE registers within asm functions on win64 2014-03-17 13:44:33 +02:00
backgrounddetection Add the common processing include directories to the include path 2014-02-19 14:42:03 +02:00
common Make the processing lib use mutexes from WelsThreadLib from the common library 2014-03-08 12:46:25 +02:00
complexityanalysis Add the common processing include directories to the include path 2014-02-19 14:42:03 +02:00
denoise Add the common processing include directories to the include path 2014-02-19 14:42:03 +02:00
downsample Add arm asm code for processing. 2014-03-05 16:54:05 +08:00
imagerotate Add the common processing include directories to the include path 2014-02-19 14:42:03 +02:00
scenechangedetection use large/medium/similar to define scene change result 2014-03-13 10:43:20 +08:00
vaacalc Fix a mismatched ifdef comment 2014-03-14 10:01:18 +02:00