首页 > 其他 > 详细

arm 内嵌汇编

时间:2015-08-14 19:43:15      阅读:209      评论:0      收藏:0      [点我收藏+]

内嵌汇编代码,每一个inputoutput operand,由被方括号[]中的符号名,限制字符串,圆括号中的C表达式构成

技术分享

技术分享



// example

static inline void __down_write(struct rw_semaphore *sem)
{
    long oldcount;
#ifndef    CONFIG_SMP
    oldcount = sem->count;
    sem->count += RWSEM_ACTIVE_WRITE_BIAS;
#else
    long temp;
    __asm__ __volatile__(
    "1:    ldq_l    %0,%1\n"
    "    addq    %0,%3,%2\n"
    "    stq_c    %2,%1\n"
    "    beq    %2,2f\n"
    "    mb\n"
    ".subsection 2\n"
    "2:    br    1b\n"
    ".previous"
    :"=&r" (oldcount), "=m" (sem->count), "=&r" (temp)
    :"Ir" (RWSEM_ACTIVE_WRITE_BIAS), "m" (sem->count) : "memory");
#endif
    if (unlikely(oldcount))
        rwsem_down_write_failed(sem);
}

arm 内嵌汇编

原文:http://my.oschina.net/u/269082/blog/492547

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!