Browse Source

x86inc: create xm# and ym#, analagous to m#

For when we want to mix simd sizes within one function.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
tags/n2.1
Loren Merritt Derek Buitenhuis 12 years ago
parent
commit
3fb78e99a0
1 changed files with 25 additions and 1 deletions
  1. +25
    -1
      libavutil/x86/x86inc.asm

+ 25
- 1
libavutil/x86/x86inc.asm View File

@@ -792,7 +792,11 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits
%endif %endif
%endmacro %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 %macro CAT_XDEFINE 3
%xdefine %1%2 %3 %xdefine %1%2 %3
@@ -869,6 +873,26 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits


INIT_XMM 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 ; 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 ; efficient way to implement butterfly or transpose or dct without swapping some
; arguments. ; arguments.


Loading…
Cancel
Save