dmb ish ; data memory barrier
dsb ish ; data synchronization barrier
isb sy ; instruction synchronization barrier
The "isb" flushes the instruction prefetch, and you would probably use it only if you just put new code
in place by reading (or paging) it from disk.
The "dmb" ensures that all preceding writes get issued, but does not stall execution.
The "dsb" does more -- it stalls until those writes are completed. This should be used sparingly, such as when context switching where you want all writes to finish before memory gets unmapped.
The arguments to these instructions are the "synchronization domain".
Tom's electronics pages / tom@mmto.org