xref: /netbsd-src/external/gpl3/gcc.old/dist/libstdc++-v3/config/cpu/sh/atomicity.h (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
136ac495dSmrg // Low-level functions for atomic operations: sh version  -*- C++ -*-
236ac495dSmrg 
3*8feb0f0bSmrg // Copyright (C) 1999-2020 Free Software Foundation, Inc.
436ac495dSmrg //
536ac495dSmrg // This file is part of the GNU ISO C++ Library.  This library is free
636ac495dSmrg // software; you can redistribute it and/or modify it under the
736ac495dSmrg // terms of the GNU General Public License as published by the
836ac495dSmrg // Free Software Foundation; either version 3, or (at your option)
936ac495dSmrg // any later version.
1036ac495dSmrg 
1136ac495dSmrg // This library is distributed in the hope that it will be useful,
1236ac495dSmrg // but WITHOUT ANY WARRANTY; without even the implied warranty of
1336ac495dSmrg // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1436ac495dSmrg // GNU General Public License for more details.
1536ac495dSmrg 
1636ac495dSmrg // Under Section 7 of GPL version 3, you are granted additional
1736ac495dSmrg // permissions described in the GCC Runtime Library Exception, version
1836ac495dSmrg // 3.1, as published by the Free Software Foundation.
1936ac495dSmrg 
2036ac495dSmrg // You should have received a copy of the GNU General Public License and
2136ac495dSmrg // a copy of the GCC Runtime Library Exception along with this program;
2236ac495dSmrg // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
2336ac495dSmrg // <http://www.gnu.org/licenses/>.
2436ac495dSmrg 
2536ac495dSmrg // Use the default atomicity stuff, which will use __atomic* builtins
2636ac495dSmrg // if threads are available, or the *_single functions on single-thread
2736ac495dSmrg // configurations.
2836ac495dSmrg // Actually we wouldn't need this header at all, but because of PR 53579
2936ac495dSmrg // libstdc++'s configury will not pickup the -matomic-model= option when
3036ac495dSmrg // set in the environment.  This makes it impossible to enable the proper
3136ac495dSmrg // atomic model on SH without modifying GCC itself, because libstdc++ always
3236ac495dSmrg // thinks the target doesn't do any atomics and uses the default mutex based
3336ac495dSmrg // implementation from cpu/generic/atomicity_mutex.
3436ac495dSmrg 
3536ac495dSmrg #include <ext/atomicity.h>
36