diff options
author | 2021-01-07 17:17:08 +0000 | |
---|---|---|
committer | 2021-01-07 17:17:08 +0000 | |
commit | 126165331e14f92809656a76dfa351e42dfa1a68 (patch) | |
tree | 17f95edcff7bec632886241169d8c7cd67711a19 /asm/inline.rs | |
parent | dafbc4ebdc1ca44653e2bfb35b1512373fbcaccb (diff) | |
parent | 5bed907740253386c619285ab5e549572b150946 (diff) | |
download | cortex-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.rs | 3 |
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); } |