summaryrefslogtreecommitdiffstats
path: root/libass/x86/utils.asm
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2021-03-17 12:27:07 +0300
committerDr.Smile <vabnick@gmail.com>2021-04-21 21:46:09 +0300
commit026d65e707637b0f90902bca48654871e33575f3 (patch)
tree7c79ad0851838c03cf46739dfcb4b101a5fc092b /libass/x86/utils.asm
parentbf02fabdc48c4800baf222485d800624dd03c7aa (diff)
downloadlibass-026d65e707637b0f90902bca48654871e33575f3.tar.bz2
libass-026d65e707637b0f90902bca48654871e33575f3.tar.xz
Make assembly position-independent
Diffstat (limited to 'libass/x86/utils.asm')
-rw-r--r--libass/x86/utils.asm15
1 files changed, 14 insertions, 1 deletions
diff --git a/libass/x86/utils.asm b/libass/x86/utils.asm
index 9d0ecb96..91024727 100644
--- a/libass/x86/utils.asm
+++ b/libass/x86/utils.asm
@@ -64,13 +64,26 @@
movd xm%1, %2
%if mmsize == 32
vpbroadcastw m%1, xm%1
-%elif mmsize == 16
+%else
punpcklwd m%1, m%1
pshufd m%1, m%1, q0000
%endif
%endmacro
;------------------------------------------------------------------------------
+; BCASTD 1:m_dst, 2:r_src
+;------------------------------------------------------------------------------
+
+%macro BCASTD 2
+ movd xm%1, %2
+%if mmsize == 32
+ vpbroadcastd m%1, xm%1
+%else
+ pshufd m%1, m%1, q0000
+%endif
+%endmacro
+
+;------------------------------------------------------------------------------
; PABSW 1:m_reg, 2:m_tmp
;------------------------------------------------------------------------------