ffmpeg AT&T汇编转intel汇编 之(emms_c)

相信大家在移植ffmpeg代码到vc中都会遇到很多汇编指令,是VC不支持的。那是因为AT&T汇编和intel汇编格式不兼容引起的。

今天给大家介绍一下libavutil\x86\internal.h 中emms_c函数的移植吧。

函数原型:

static av_always_inline void emms_c(void)
{
    if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
        __asm__ volatile ("emms" ::: "memory");

}

因为VC asm提供了emms,直接调用就可以了。因此修改为:

static av_always_inline void emms_c(void)
{
    if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
		__asm emms;
}


版权所有,未经允许不得转载.

发布:http://blog.csdn.net/weinyzhou/article/details/7592091

posted @ 2012-05-22 18:53  weinyzhou  阅读(299)  评论(0编辑  收藏  举报