summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
Diffstat (limited to 'libvo')
-rw-r--r--libvo/osd.c2
-rw-r--r--libvo/osd_template.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/libvo/osd.c b/libvo/osd.c
index b51b8b1ee7..fe3fa9b89d 100644
--- a/libvo/osd.c
+++ b/libvo/osd.c
@@ -73,6 +73,7 @@ void vo_draw_alpha_rgb24(int w,int h, unsigned char* src, unsigned char *srca, i
"pcmpeqb %%mm6, %%mm6\n\t" // F..F
::"m"(*dst),"m"(*srca),"m"(*src):"memory");
for(x=0;x<w;x+=2){
+ if(srca[x] || srca[x+1])
asm volatile(
PREFETCHW" 32%0\n\t"
PREFETCH" 32%1\n\t"
@@ -174,6 +175,7 @@ PROFILE_START();
"pcmpeqb %%mm6, %%mm6\n\t" // F..F
::"m"(*dstbase),"m"(*srca),"m"(*src):"memory");
for(x=0;x<w;x+=2){
+ if(srca[x] || srca[x+1])
asm volatile(
PREFETCHW" 32%0\n\t"
PREFETCH" 32%1\n\t"
diff --git a/libvo/osd_template.c b/libvo/osd_template.c
index b51b8b1ee7..fe3fa9b89d 100644
--- a/libvo/osd_template.c
+++ b/libvo/osd_template.c
@@ -73,6 +73,7 @@ void vo_draw_alpha_rgb24(int w,int h, unsigned char* src, unsigned char *srca, i
"pcmpeqb %%mm6, %%mm6\n\t" // F..F
::"m"(*dst),"m"(*srca),"m"(*src):"memory");
for(x=0;x<w;x+=2){
+ if(srca[x] || srca[x+1])
asm volatile(
PREFETCHW" 32%0\n\t"
PREFETCH" 32%1\n\t"
@@ -174,6 +175,7 @@ PROFILE_START();
"pcmpeqb %%mm6, %%mm6\n\t" // F..F
::"m"(*dstbase),"m"(*srca),"m"(*src):"memory");
for(x=0;x<w;x+=2){
+ if(srca[x] || srca[x+1])
asm volatile(
PREFETCHW" 32%0\n\t"
PREFETCH" 32%1\n\t"