Instruction Synchronization Barrier System instruction
Performs an Instruction Synchronization Barrier.
Arm deprecates any use of this System instruction, and strongly recommends that software use the ISB instruction instead.
This instruction is present only when FEAT_AA32 is implemented. Otherwise, direct accesses to CP15ISB are UNDEFINED.
CP15ISB is a 32-bit System instruction.
This instruction has no applicable fields.
The value in the register specified by <Rt> is ignored.
Accesses to this instruction use the following encodings in the System instruction encoding space:
MCR{<c>}{<q>} <coproc>, {#}<opc1>, <Rt>, <CRn>, <CRm>{, {#}<opc2>}
(coproc = 0b1111, opc1 = 0b000, CRn = 0b0111, CRm = 0b0101, opc2 = 0b100)
if !IsFeatureImplemented(FEAT_AA32) then Undefined(); elsif PSTATE.EL == EL0 then if IsFeatureImplemented(FEAT_AA64EL1) && !ELUsingAArch32(EL1) && EffectivelyAtEL0NotInHost() && SCTLR_EL1().CP15BEN == '0' then Undefined(); elsif EffectivelyAtEL0InHost() && SCTLR_EL2().CP15BEN == '0' then Undefined(); elsif IsFeatureImplemented(FEAT_AA32EL1) && ELUsingAArch32(EL1) && SCTLR().CP15BEN == '0' then Undefined(); elsif EL2Enabled() && (IsFeatureImplemented(FEAT_AA64EL2) && !ELUsingAArch32(EL2)) && EffectivelyAtEL0NotInHost() && HSTR_EL2().T7 == '1' then AArch64_AArch32SystemAccessTrap(EL2, 0x03); elsif EL2Enabled() && (IsFeatureImplemented(FEAT_AA32EL2) && ELUsingAArch32(EL2)) && HSTR().T7 == '1' then AArch32_TakeHypTrapException(0x03); else CP15ISB(); end; elsif PSTATE.EL == EL1 then if EL2Enabled() && IsFeatureImplemented(FEAT_AA64EL2) && !ELUsingAArch32(EL2) && HSTR_EL2().T7 == '1' then AArch64_AArch32SystemAccessTrap(EL2, 0x03); elsif EL2Enabled() && IsFeatureImplemented(FEAT_AA32EL2) && ELUsingAArch32(EL2) && HSTR().T7 == '1' then AArch32_TakeHypTrapException(0x03); elsif SCTLR().CP15BEN == '0' then Undefined(); else CP15ISB(); end; elsif PSTATE.EL == EL2 then if HSCTLR().CP15BEN == '0' then Undefined(); else CP15ISB(); end; elsif PSTATE.EL == EL3 then if SCTLR().CP15BEN == '0' then Undefined(); else CP15ISB(); end; end;
Version 2026.06 — Copyright © 2010-2026 Arm Limited or its affiliates.
This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.