I am a bit confused on when/where to apply ISB/DMB instructions. On one hand it's portrayed that operations within the processor will always stay consistent on the otherhand it indicates things can be reordered.
Under what conditions should you use ISB/DMB instructions?
Lets consider some examples:
Writing to a memory location and reading from it.
Writing to a Peripheral which needs to be initialized in a particular order.
Writing to a peripheral which controls something(ex GPIO control).