diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-10-08 13:15:11 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-10-08 13:15:17 +0400 |
commit | 17d9c7c208915c6c090e10508056f68b93440839 (patch) | |
tree | bcf33172c932e71cd7c6a3c0f87e0d42f76d673c /libavutil | |
parent | 3352fdb2920feef1983738088ddbf1ba019bf40e (diff) | |
parent | 3fb78e99a04d0ed8db834d813d933eb86c37142a (diff) |
Merge commit '3fb78e99a04d0ed8db834d813d933eb86c37142a'
* commit '3fb78e99a04d0ed8db834d813d933eb86c37142a':
x86inc: create xm# and ym#, analagous to m#
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/x86/x86inc.asm | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm index 708fb36c71..f31186642f 100644 --- a/libavutil/x86/x86inc.asm +++ b/libavutil/x86/x86inc.asm @@ -811,7 +811,11 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits %endif %endmacro -; merge mmx and sse* +; Merge mmx and sse* +; m# is a simd regsiter of the currently selected size +; xm# is the corresponding xmmreg (if selcted xmm or ymm size), or mmreg (if selected mmx) +; ym# is the corresponding ymmreg (if selcted xmm or ymm size), or mmreg (if selected mmx) +; (All 3 remain in sync through SWAP.) %macro CAT_XDEFINE 3 %xdefine %1%2 %3 @@ -896,6 +900,26 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits INIT_XMM +%macro DECLARE_MMCAST 1 + %define mmmm%1 mm%1 + %define mmxmm%1 mm%1 + %define mmymm%1 mm%1 + %define xmmmm%1 mm%1 + %define xmmxmm%1 xmm%1 + %define xmmymm%1 xmm%1 + %define ymmmm%1 mm%1 + %define ymmxmm%1 ymm%1 + %define ymmymm%1 ymm%1 + %define xm%1 xmm %+ m%1 + %define ym%1 ymm %+ m%1 +%endmacro + +%assign i 0 +%rep 16 + DECLARE_MMCAST i +%assign i i+1 +%endrep + ; I often want to use macros that permute their arguments. e.g. there's no ; efficient way to implement butterfly or transpose or dct without swapping some ; arguments. |