summaryrefslogtreecommitdiffstats
path: root/spec/rtems/basedefs/req/compiler-memory-barrier-0.yml
blob: c540bd05af218810b9cf3c1e89a544f1550421cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SPDX-License-Identifier: CC-BY-SA-4.0
copyrights:
- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
enabled-by: true
functional-type: function
links:
- role: interface-function
  uid: ../if/compiler-memory-barrier
rationale: |
  A Full Software Memory Barrier prevents the compiler to move loads and
  stores (in any direction) beyond the point where the barrier is in the
  code. Otherwise this may occur as part of compiler optimizations.
  This is a compile time only barrier. The CPU optimizations can still
  move instructions over the barrier at run-time.
references: []
requirement-type: functional
text: |
  When the code is compiled with the GNU C compiler,
  the ${../if/compiler-memory-barrier:/name} macro shall
  realize a Full Software Memory Barrier at the place in the code where
  it occurs.
type: requirement