码迷,mamicode.com
首页 > 其他好文 > 详细

arm 内嵌汇编

时间:2015-08-14 19:46:29      阅读:232      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!