打印

懂linux的朋友们,帮个忙

[复制链接]
1471|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yatelanda|  楼主 | 2008-5-20 18:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是几个linux环境的内嵌汇编,小弟没有这方面经验,请高手帮我翻译成ADS,realview环境下的相应内嵌汇编.先谢过高手们

#  define mad_f_mul(x, y)  
    ({ mad_fixed64hi_t __hi;  
       mad_fixed64lo_t __lo;  
       mad_fixed_t __result;  
       asm ("smull    %0, %1, %3, %4 "  
        "movs    %0, %0, lsr %5 "  
        "adc    %2, %0, %1, lsl %6"  
        : "=&r" (__lo), "=&r" (__hi), "=r" (__result)  
        : "%r" (x), "r" (y),  
          "M" (MAD_F_SCALEBITS), "M" (32 - MAD_F_SCALEBITS)  
        : "cc");  
       __result;  
    })


#define MAD_F_MLX(hi, lo, x, y)  
    asm ("smull    %0, %1, %2, %3"  
     : "=&r" (lo), "=&r" (hi)  
     : "%r" (x), "r" (y))

#define MAD_F_MLA(hi, lo, x, y)  
    asm ("smlal    %0, %1, %2, %3"  
     : "+r" (lo), "+r" (hi)  
     : "%r" (x), "r" (y))

#define MAD_F_MLN(hi, lo)  
    asm ("rsbs    %0, %2, #0 "  
     "rsc    %1, %3, #0"  
     : "=r" (lo), "=r" (hi)  
     : "0" (lo), "1" (hi)  
     : "cc")

#define mad_f_scale64(hi, lo)  
    ({ mad_fixed_t __result;  
       asm ("movs    %0, %1, lsr %3 "  
        "adc    %0, %0, %2, lsl %4"  
        : "=&r" (__result)  
        : "r" (lo), "r" (hi),  
          "M" (MAD_F_SCALEBITS), "M" (32 - MAD_F_SCALEBITS)  
        : "cc");  
       __result;  
    })

相关帖子

沙发
simon21ic| | 2008-5-20 22:16 | 只看该作者

去查一下AT&T的汇编语法

使用特权

评论回复
板凳
yatelanda|  楼主 | 2008-5-21 09:16 | 只看该作者

说的有道理

真正的linux高手还是非常缺少的

使用特权

评论回复
地板
yatelanda|  楼主 | 2008-5-21 09:17 | 只看该作者

懂AT&T汇编的爱好者还不多

使用特权

评论回复
5
mxh0506| | 2008-5-21 12:50 | 只看该作者

这和linux没什么关系,懂GCC就行

使用特权

评论回复
6
yatelanda|  楼主 | 2008-5-21 22:33 | 只看该作者

搞定!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

35

帖子

1

粉丝