isb

Instruction Synchronization Barrier (Thumb)

ISB <option>

Instruction barrier (Thumb).

Details

Instruction Synchronization Barrier flushes the processor pipeline and ensures that all instructions that follow are fetched from cache or memory after the ISB completes. The option field is typically SY (full system) and is the only valid value in most implementations. No condition flags are affected. ISB is available in all privilege levels and is essential for self-modifying code.

Pseudocode Operation

if option == SY then
  InstructionSynchronizationBarrier()
else
  InstructionSynchronizationBarrier()

Example

ISB option

Encoding

Binary Layout
111100111011
1
1
1
1
10
0
0
1
1
1
1
0110
option
 
Format Thumb System
Opcode 0xF3BF8F60
Extension A32 (Base)

Operands

  • option
    SY

Reference (Arm AArch32 ISA)

Instruction Forms

Encoding Instruction ISA Bit pattern
0xF57FF060 ISB{<c>}{<q>} {<option>} A32 111101010111 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0110 | option
0xF3BF8F60 ISB{<c>}{<q>} {<option>} T32 111100111011 | 1 | 1 | 1 | 1 | 10 | 0 | 0 | 1 | 1 | 1 | 1 | 0110 | option

Description

Instruction Synchronization Barrier flushes the pipeline in the PE and is a context synchronization event. For more information, see Instruction Synchronization Barrier (ISB).

Operation

if ConditionPassed() then
    EncodingSpecificOperations();
    InstructionSynchronizationBarrier();