]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/ps2/mmi.h
ps2 optimizations update patch by (Leon van Stuivenberg <leonvs at iae dot nl>)
[ffmpeg] / libavcodec / ps2 / mmi.h
index 04e606c9fb7bb8aa94a650017c1a3600552ff525..de9af1d595528f528bab20cbc8db0dbf22410e29 100644 (file)
 #define        sq(reg, off, base)      \
        __asm__ __volatile__ ("sq " #reg ", %0("#base ")" : : "i" (off) )
 
+/*
+#define        ld(base, off, reg)      \
+       __asm__ __volatile__ ("ld " #reg ", " #off "("#base ")")
+*/
+
+#define        ld3(base, off, reg)     \
+       __asm__ __volatile__ (".word %0" : : "i" ( 0xdc000000 | (base<<21) | (reg<<16) | (off)))
+
+#define        ldr3(base, off, reg)    \
+       __asm__ __volatile__ (".word %0" : : "i" ( 0x6c000000 | (base<<21) | (reg<<16) | (off)))
+
+#define        ldl3(base, off, reg)    \
+       __asm__ __volatile__ (".word %0" : : "i" ( 0x68000000 | (base<<21) | (reg<<16) | (off)))
+
 /*
 #define        sd(reg, off, base)      \
        __asm__ __volatile__ ("sd " #reg ", " #off "("#base ")")
 #define        pminh(rs, rt, rd) \
        __asm__ __volatile__ ("pminh " #rd ", " #rs ", " #rt )
 
+#define        pinteh(rs, rt, rd) \
+       __asm__ __volatile__ ("pinteh  " #rd ", " #rs ", " #rt )
+
+#define        paddh(rs, rt, rd) \
+       __asm__ __volatile__ ("paddh  " #rd ", " #rs ", " #rt )
+
+#define        psubh(rs, rt, rd) \
+       __asm__ __volatile__ ("psubh  " #rd ", " #rs ", " #rt )
+
+#define        psrah(rt, sa, rd) \
+       __asm__ __volatile__ ("psrah  " #rd ", " #rt ", %0" : : "i"(sa) )
+
+#define        pmfhl_uw(rd) \
+       __asm__ __volatile__ ("pmfhl.uw  " #rd)
+
+#define        pextlb(rs, rt, rd) \
+       __asm__ __volatile__ ("pextlb  " #rd ", " #rs ", " #rt )
 
 #endif
+