aboutsummaryrefslogtreecommitdiff
path: root/asm/inline.rs
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2021-01-07 17:17:08 +0000
committerGravatar GitHub <noreply@github.com> 2021-01-07 17:17:08 +0000
commit126165331e14f92809656a76dfa351e42dfa1a68 (patch)
tree17f95edcff7bec632886241169d8c7cd67711a19 /asm/inline.rs
parentdafbc4ebdc1ca44653e2bfb35b1512373fbcaccb (diff)
parent5bed907740253386c619285ab5e549572b150946 (diff)
downloadcortex-m-126165331e14f92809656a76dfa351e42dfa1a68.tar.gz
cortex-m-126165331e14f92809656a76dfa351e42dfa1a68.tar.zst
cortex-m-126165331e14f92809656a76dfa351e42dfa1a68.zip
Merge #311
311: Duplicate compiler fences around barrier instrs r=adamgreig a=jonas-schievink This should fix https://github.com/rust-embedded/cortex-m/issues/308 Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Diffstat (limited to 'asm/inline.rs')
-rw-r--r--asm/inline.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/asm/inline.rs b/asm/inline.rs
index f2014f8..9150c9c 100644
--- a/asm/inline.rs
+++ b/asm/inline.rs
@@ -64,18 +64,21 @@ pub unsafe fn __delay(cyc: u32) {
#[inline(always)]
pub unsafe fn __dmb() {
+ compiler_fence(Ordering::SeqCst);
asm!("dmb");
compiler_fence(Ordering::SeqCst);
}
#[inline(always)]
pub unsafe fn __dsb() {
+ compiler_fence(Ordering::SeqCst);
asm!("dsb");
compiler_fence(Ordering::SeqCst);
}
#[inline(always)]
pub unsafe fn __isb() {
+ compiler_fence(Ordering::SeqCst);
asm!("isb");
compiler_fence(Ordering::SeqCst);
}