summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xine-utils/xine_mmx.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/xine-utils/xine_mmx.h b/src/xine-utils/xine_mmx.h
index 26e712409..dab061688 100644
--- a/src/xine-utils/xine_mmx.h
+++ b/src/xine-utils/xine_mmx.h
@@ -46,11 +46,22 @@ typedef union {
: /* nothing */ \
: "m" (mem))
+/* load dword from memory or gp register */
+#define mmx_a2r(op,any,reg) \
+ __asm__ __volatile__ (#op " %0, %%" #reg \
+ : /* nothing */ \
+ : "g" (any))
+
#define mmx_r2m(op,reg,mem) \
__asm__ __volatile__ (#op " %%" #reg ", %0" \
: "=m" (mem) \
: /* nothing */ )
+#define mmx_r2a(op,reg,any) \
+ __asm__ __volatile__ (#op " %%" #reg ", %0" \
+ : "=g" (any) \
+ : /* nothing */ )
+
#define mmx_r2r(op,regs,regd) \
__asm__ __volatile__ (#op " %" #regs ", %" #regd)
@@ -60,6 +71,8 @@ typedef union {
#define movd_m2r(var,reg) mmx_m2r (movd, var, reg)
#define movd_r2m(reg,var) mmx_r2m (movd, reg, var)
#define movd_r2r(regs,regd) mmx_r2r (movd, regs, regd)
+#define movd_a2r(any,reg) mmx_a2r (movd, any, reg)
+#define movd_r2a(reg,any) mmx_r2a (movd, reg, any)
#define movq_m2r(var,reg) mmx_m2r (movq, var, reg)
#define movq_r2m(reg,var) mmx_r2m (movq, reg, var)