📄 atomic.s
字号:
/* $Id: atomic.S,v 1.4 2001/11/18 00:12:56 davem Exp $ * atomic.S: These things are too big to do inline. * * Copyright (C) 1999 David S. Miller (davem@redhat.com) */#include <asm/asi.h> .text .align 64 .globl __atomic_add__atomic_add: /* %o0 = increment, %o1 = atomic_ptr */ lduw [%o1], %g5 add %g5, %o0, %g7 cas [%o1], %g5, %g7 cmp %g5, %g7 bne,pn %icc, __atomic_add membar #StoreLoad | #StoreStore retl add %g7, %o0, %o0 .globl __atomic_sub__atomic_sub: /* %o0 = increment, %o1 = atomic_ptr */ lduw [%o1], %g5 sub %g5, %o0, %g7 cas [%o1], %g5, %g7 cmp %g5, %g7 bne,pn %icc, __atomic_sub membar #StoreLoad | #StoreStore retl sub %g7, %o0, %o0 .globl __atomic64_add__atomic64_add: /* %o0 = increment, %o1 = atomic_ptr */ ldx [%o1], %g5 add %g5, %o0, %g7 casx [%o1], %g5, %g7 cmp %g5, %g7 bne,pn %xcc, __atomic64_add membar #StoreLoad | #StoreStore retl add %g7, %o0, %o0 .globl __atomic64_sub__atomic64_sub: /* %o0 = increment, %o1 = atomic_ptr */ ldx [%o1], %g5 sub %g5, %o0, %g7 casx [%o1], %g5, %g7 cmp %g5, %g7 bne,pn %xcc, __atomic64_sub membar #StoreLoad | #StoreStore retl sub %g7, %o0, %o0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -