⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atomic_support.s

📁 英特尔&#174 线程构建模块(英特尔&#174 TBB)是一个屡获殊荣的 C++ 运行时库
💻 S
📖 第 1 页 / 共 2 页
字号:
// Copyright 2005-2007 Intel Corporation.  All Rights Reserved.//// This file is part of Threading Building Blocks.//// Threading Building Blocks is free software; you can redistribute it// and/or modify it under the terms of the GNU General Public License// version 2 as published by the Free Software Foundation.//// Threading Building Blocks is distributed in the hope that it will be// useful, but WITHOUT ANY WARRANTY; without even the implied warranty// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Threading Building Blocks; if not, write to the Free Software// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA//// As a special exception, you may use this file as part of a free software// library without restriction.  Specifically, if other files instantiate// templates or use macros or inline functions from this file, or you compile// this file and link it with other files to produce an executable, this// file does not by itself cause the resulting executable to be covered by// the GNU General Public License.  This exception does not however// invalidate any other reasons why the executable file might be covered by// the GNU General Public License.// 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        .proc __TBB_machine_fetchadd1__TBB_full_fence#        .global __TBB_machine_fetchadd1__TBB_full_fence#__TBB_machine_fetchadd1__TBB_full_fence:{        mf        br __TBB_machine_fetchadd1acquire}        .endp __TBB_machine_fetchadd1__TBB_full_fence#        .proc __TBB_machine_fetchadd1acquire#        .global __TBB_machine_fetchadd1acquire#__TBB_machine_fetchadd1acquire:        ld1 r9=[r32];;Retry_1acquire:        mov ar.ccv=r9        mov r8=r9;        add r10=r9,r33;;        cmpxchg1.acq r9=[r32],r10,ar.ccv;;        cmp.ne p7,p0=r8,r9  (p7) br.cond.dpnt Retry_1acquire        br.ret.sptk.many b0# 49 "<stdin>"        .endp __TBB_machine_fetchadd1acquire## 62 "<stdin>"        .section .text        .align 16        .proc __TBB_machine_fetchstore1__TBB_full_fence#        .global __TBB_machine_fetchstore1__TBB_full_fence#__TBB_machine_fetchstore1__TBB_full_fence:        mf;;        xchg1 r8=[r32],r33        br.ret.sptk.many b0        .endp __TBB_machine_fetchstore1__TBB_full_fence#        .proc __TBB_machine_fetchstore1acquire#        .global __TBB_machine_fetchstore1acquire#__TBB_machine_fetchstore1acquire:        xchg1 r8=[r32],r33        br.ret.sptk.many b0        .endp __TBB_machine_fetchstore1acquire## 88 "<stdin>"        .section .text        .align 16        .proc __TBB_machine_cmpswp1__TBB_full_fence#        .global __TBB_machine_cmpswp1__TBB_full_fence#__TBB_machine_cmpswp1__TBB_full_fence:{        mf        br __TBB_machine_cmpswp1acquire}        .endp __TBB_machine_cmpswp1__TBB_full_fence#        .proc __TBB_machine_cmpswp1acquire#        .global __TBB_machine_cmpswp1acquire#__TBB_machine_cmpswp1acquire:        zxt1 r34=r34;;        mov ar.ccv=r34;;        cmpxchg1.acq r8=[r32],r33,ar.ccv        br.ret.sptk.many b0        .endp __TBB_machine_cmpswp1acquire#// 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        .proc __TBB_machine_fetchadd2__TBB_full_fence#        .global __TBB_machine_fetchadd2__TBB_full_fence#__TBB_machine_fetchadd2__TBB_full_fence:{        mf        br __TBB_machine_fetchadd2acquire}        .endp __TBB_machine_fetchadd2__TBB_full_fence#        .proc __TBB_machine_fetchadd2acquire#        .global __TBB_machine_fetchadd2acquire#__TBB_machine_fetchadd2acquire:        ld2 r9=[r32];;Retry_2acquire:        mov ar.ccv=r9        mov r8=r9;        add r10=r9,r33;;        cmpxchg2.acq r9=[r32],r10,ar.ccv;;        cmp.ne p7,p0=r8,r9  (p7) br.cond.dpnt Retry_2acquire        br.ret.sptk.many b0# 49 "<stdin>"        .endp __TBB_machine_fetchadd2acquire## 62 "<stdin>"        .section .text        .align 16        .proc __TBB_machine_fetchstore2__TBB_full_fence#        .global __TBB_machine_fetchstore2__TBB_full_fence#__TBB_machine_fetchstore2__TBB_full_fence:        mf;;        xchg2 r8=[r32],r33        br.ret.sptk.many b0        .endp __TBB_machine_fetchstore2__TBB_full_fence#        .proc __TBB_machine_fetchstore2acquire#        .global __TBB_machine_fetchstore2acquire#__TBB_machine_fetchstore2acquire:        xchg2 r8=[r32],r33        br.ret.sptk.many b0        .endp __TBB_machine_fetchstore2acquire## 88 "<stdin>"        .section .text        .align 16        .proc __TBB_machine_cmpswp2__TBB_full_fence#        .global __TBB_machine_cmpswp2__TBB_full_fence#__TBB_machine_cmpswp2__TBB_full_fence:{        mf        br __TBB_machine_cmpswp2acquire}        .endp __TBB_machine_cmpswp2__TBB_full_fence#        .proc __TBB_machine_cmpswp2acquire#        .global __TBB_machine_cmpswp2acquire#__TBB_machine_cmpswp2acquire:        zxt2 r34=r34;;        mov ar.ccv=r34;;        cmpxchg2.acq r8=[r32],r33,ar.ccv        br.ret.sptk.many b0        .endp __TBB_machine_cmpswp2acquire#// 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        .proc __TBB_machine_fetchadd4__TBB_full_fence#        .global __TBB_machine_fetchadd4__TBB_full_fence#__TBB_machine_fetchadd4__TBB_full_fence:{        mf        br __TBB_machine_fetchadd4acquire}        .endp __TBB_machine_fetchadd4__TBB_full_fence#        .proc __TBB_machine_fetchadd4acquire#        .global __TBB_machine_fetchadd4acquire#__TBB_machine_fetchadd4acquire:        cmp.eq p6,p0=1,r33        cmp.eq p8,p0=-1,r33  (p6) br.cond.dptk Inc_4acquire  (p8) br.cond.dpnt Dec_4acquire;;        ld4 r9=[r32];;Retry_4acquire:        mov ar.ccv=r9        mov r8=r9;        add r10=r9,r33;;        cmpxchg4.acq r9=[r32],r10,ar.ccv;;        cmp.ne p7,p0=r8,r9  (p7) br.cond.dpnt Retry_4acquire        br.ret.sptk.many b0Inc_4acquire:        fetchadd4.acq r8=[r32],1        br.ret.sptk.many b0Dec_4acquire:        fetchadd4.acq r8=[r32],-1        br.ret.sptk.many b0        .endp __TBB_machine_fetchadd4acquire## 62 "<stdin>"        .section .text        .align 16        .proc __TBB_machine_fetchstore4__TBB_full_fence#        .global __TBB_machine_fetchstore4__TBB_full_fence#__TBB_machine_fetchstore4__TBB_full_fence:        mf;;        xchg4 r8=[r32],r33        br.ret.sptk.many b0        .endp __TBB_machine_fetchstore4__TBB_full_fence#        .proc __TBB_machine_fetchstore4acquire#        .global __TBB_machine_fetchstore4acquire#__TBB_machine_fetchstore4acquire:        xchg4 r8=[r32],r33        br.ret.sptk.many b0        .endp __TBB_machine_fetchstore4acquire## 88 "<stdin>"        .section .text        .align 16        .proc __TBB_machine_cmpswp4__TBB_full_fence#        .global __TBB_machine_cmpswp4__TBB_full_fence#__TBB_machine_cmpswp4__TBB_full_fence:{        mf        br __TBB_machine_cmpswp4acquire}        .endp __TBB_machine_cmpswp4__TBB_full_fence#        .proc __TBB_machine_cmpswp4acquire#        .global __TBB_machine_cmpswp4acquire#__TBB_machine_cmpswp4acquire:        zxt4 r34=r34;;        mov ar.ccv=r34;;        cmpxchg4.acq r8=[r32],r33,ar.ccv        br.ret.sptk.many b0        .endp __TBB_machine_cmpswp4acquire#// 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        .proc __TBB_machine_fetchadd8__TBB_full_fence#        .global __TBB_machine_fetchadd8__TBB_full_fence#__TBB_machine_fetchadd8__TBB_full_fence:{        mf        br __TBB_machine_fetchadd8acquire}        .endp __TBB_machine_fetchadd8__TBB_full_fence#        .proc __TBB_machine_fetchadd8acquire#        .global __TBB_machine_fetchadd8acquire#__TBB_machine_fetchadd8acquire:        cmp.eq p6,p0=1,r33        cmp.eq p8,p0=-1,r33  (p6) br.cond.dptk Inc_8acquire  (p8) br.cond.dpnt Dec_8acquire

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -