📄 atomic_support.s
字号:
;; ld8 r9=[r32];;Retry_8acquire: mov ar.ccv=r9 mov r8=r9; add r10=r9,r33;; cmpxchg8.acq r9=[r32],r10,ar.ccv;; cmp.ne p7,p0=r8,r9 (p7) br.cond.dpnt Retry_8acquire br.ret.sptk.many b0Inc_8acquire: fetchadd8.acq r8=[r32],1 br.ret.sptk.many b0Dec_8acquire: fetchadd8.acq r8=[r32],-1 br.ret.sptk.many b0 .endp __TBB_machine_fetchadd8acquire## 62 "<stdin>" .section .text .align 16 .proc __TBB_machine_fetchstore8__TBB_full_fence# .global __TBB_machine_fetchstore8__TBB_full_fence#__TBB_machine_fetchstore8__TBB_full_fence: mf;; xchg8 r8=[r32],r33 br.ret.sptk.many b0 .endp __TBB_machine_fetchstore8__TBB_full_fence# .proc __TBB_machine_fetchstore8acquire# .global __TBB_machine_fetchstore8acquire#__TBB_machine_fetchstore8acquire: xchg8 r8=[r32],r33 br.ret.sptk.many b0 .endp __TBB_machine_fetchstore8acquire## 88 "<stdin>" .section .text .align 16 .proc __TBB_machine_cmpswp8__TBB_full_fence# .global __TBB_machine_cmpswp8__TBB_full_fence#__TBB_machine_cmpswp8__TBB_full_fence:{ mf br __TBB_machine_cmpswp8acquire} .endp __TBB_machine_cmpswp8__TBB_full_fence# .proc __TBB_machine_cmpswp8acquire# .global __TBB_machine_cmpswp8acquire#__TBB_machine_cmpswp8acquire: mov ar.ccv=r34;; cmpxchg8.acq r8=[r32],r33,ar.ccv br.ret.sptk.many b0 .endp __TBB_machine_cmpswp8acquire#// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh# 1 "<stdin>"# 1 "<built-in>"# 1 "<command line>"# 1 "<stdin>" .section .text .align 16# 19 "<stdin>" .proc __TBB_machine_fetchadd1release# .global __TBB_machine_fetchadd1release#__TBB_machine_fetchadd1release: ld1 r9=[r32];;Retry_1release: mov ar.ccv=r9 mov r8=r9; add r10=r9,r33;; cmpxchg1.rel r9=[r32],r10,ar.ccv;; cmp.ne p7,p0=r8,r9 (p7) br.cond.dpnt Retry_1release br.ret.sptk.many b0# 49 "<stdin>" .endp __TBB_machine_fetchadd1release## 62 "<stdin>" .section .text .align 16 .proc __TBB_machine_fetchstore1release# .global __TBB_machine_fetchstore1release#__TBB_machine_fetchstore1release: mf;; xchg1 r8=[r32],r33 br.ret.sptk.many b0 .endp __TBB_machine_fetchstore1release## 88 "<stdin>" .section .text .align 16# 101 "<stdin>" .proc __TBB_machine_cmpswp1release# .global __TBB_machine_cmpswp1release#__TBB_machine_cmpswp1release: zxt1 r34=r34;; mov ar.ccv=r34;; cmpxchg1.rel r8=[r32],r33,ar.ccv br.ret.sptk.many b0 .endp __TBB_machine_cmpswp1release#// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh# 1 "<stdin>"# 1 "<built-in>"# 1 "<command line>"# 1 "<stdin>" .section .text .align 16# 19 "<stdin>" .proc __TBB_machine_fetchadd2release# .global __TBB_machine_fetchadd2release#__TBB_machine_fetchadd2release: ld2 r9=[r32];;Retry_2release: mov ar.ccv=r9 mov r8=r9; add r10=r9,r33;; cmpxchg2.rel r9=[r32],r10,ar.ccv;; cmp.ne p7,p0=r8,r9 (p7) br.cond.dpnt Retry_2release br.ret.sptk.many b0# 49 "<stdin>" .endp __TBB_machine_fetchadd2release## 62 "<stdin>" .section .text .align 16 .proc __TBB_machine_fetchstore2release# .global __TBB_machine_fetchstore2release#__TBB_machine_fetchstore2release: mf;; xchg2 r8=[r32],r33 br.ret.sptk.many b0 .endp __TBB_machine_fetchstore2release## 88 "<stdin>" .section .text .align 16# 101 "<stdin>" .proc __TBB_machine_cmpswp2release# .global __TBB_machine_cmpswp2release#__TBB_machine_cmpswp2release: zxt2 r34=r34;; mov ar.ccv=r34;; cmpxchg2.rel r8=[r32],r33,ar.ccv br.ret.sptk.many b0 .endp __TBB_machine_cmpswp2release#// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh# 1 "<stdin>"# 1 "<built-in>"# 1 "<command line>"# 1 "<stdin>" .section .text .align 16# 19 "<stdin>" .proc __TBB_machine_fetchadd4release# .global __TBB_machine_fetchadd4release#__TBB_machine_fetchadd4release: cmp.eq p6,p0=1,r33 cmp.eq p8,p0=-1,r33 (p6) br.cond.dptk Inc_4release (p8) br.cond.dpnt Dec_4release;; ld4 r9=[r32];;Retry_4release: mov ar.ccv=r9 mov r8=r9; add r10=r9,r33;; cmpxchg4.rel r9=[r32],r10,ar.ccv;; cmp.ne p7,p0=r8,r9 (p7) br.cond.dpnt Retry_4release br.ret.sptk.many b0Inc_4release: fetchadd4.rel r8=[r32],1 br.ret.sptk.many b0Dec_4release: fetchadd4.rel r8=[r32],-1 br.ret.sptk.many b0 .endp __TBB_machine_fetchadd4release## 62 "<stdin>" .section .text .align 16 .proc __TBB_machine_fetchstore4release# .global __TBB_machine_fetchstore4release#__TBB_machine_fetchstore4release: mf;; xchg4 r8=[r32],r33 br.ret.sptk.many b0 .endp __TBB_machine_fetchstore4release## 88 "<stdin>" .section .text .align 16# 101 "<stdin>" .proc __TBB_machine_cmpswp4release# .global __TBB_machine_cmpswp4release#__TBB_machine_cmpswp4release: zxt4 r34=r34;; mov ar.ccv=r34;; cmpxchg4.rel r8=[r32],r33,ar.ccv br.ret.sptk.many b0 .endp __TBB_machine_cmpswp4release#// DO NOT EDIT - AUTOMATICALLY GENERATED FROM tools/generate_atomic/ipf_generate.sh# 1 "<stdin>"# 1 "<built-in>"# 1 "<command line>"# 1 "<stdin>" .section .text .align 16# 19 "<stdin>" .proc __TBB_machine_fetchadd8release# .global __TBB_machine_fetchadd8release#__TBB_machine_fetchadd8release: cmp.eq p6,p0=1,r33 cmp.eq p8,p0=-1,r33 (p6) br.cond.dptk Inc_8release (p8) br.cond.dpnt Dec_8release;; ld8 r9=[r32];;Retry_8release: mov ar.ccv=r9 mov r8=r9; add r10=r9,r33;; cmpxchg8.rel r9=[r32],r10,ar.ccv;; cmp.ne p7,p0=r8,r9 (p7) br.cond.dpnt Retry_8release br.ret.sptk.many b0Inc_8release: fetchadd8.rel r8=[r32],1 br.ret.sptk.many b0Dec_8release: fetchadd8.rel r8=[r32],-1 br.ret.sptk.many b0 .endp __TBB_machine_fetchadd8release## 62 "<stdin>" .section .text .align 16 .proc __TBB_machine_fetchstore8release# .global __TBB_machine_fetchstore8release#__TBB_machine_fetchstore8release: mf;; xchg8 r8=[r32],r33 br.ret.sptk.many b0 .endp __TBB_machine_fetchstore8release## 88 "<stdin>" .section .text .align 16# 101 "<stdin>" .proc __TBB_machine_cmpswp8release# .global __TBB_machine_cmpswp8release#__TBB_machine_cmpswp8release: mov ar.ccv=r34;; cmpxchg8.rel r8=[r32],r33,ar.ccv br.ret.sptk.many b0 .endp __TBB_machine_cmpswp8release#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -