BKPT Breakpoint Breakpoint causes a Breakpoint Instruction exception. Breakpoint is always unconditional, even when inside an IT block. For more information about the constrained unpredictable behavior of this instruction, see Architectural Constraints on UNPREDICTABLE behaviors. It has encodings from the following instruction sets: A32 ( A1 ) and T32 ( T1 ) . != 1111 0 0 0 1 0 0 1 0 0 1 1 1 BKPT{<q>} {#}<imm> imm16 = imm12:imm4; if cond != '1110' then UNPREDICTABLE; // BKPT must be encoded with AL condition cond != '1110' 1 0 1 1 1 1 1 0 BKPT{<q>} {#}<imm> imm16 = ZeroExtend(imm8, 16); <q> See Standard assembler syntax fields. A BKPT instruction must be unconditional. <imm> For encoding A1: is a 16-bit unsigned immediate, in the range 0 to 65535, encoded in the "imm12:imm4" field. This value: Is recorded in the Comment field of ESR_ELx.ISS if the Software Breakpoint Instruction exception is taken to an exception level that is using AArch64. Is ignored otherwise. <imm> For encoding T1: is a 8-bit unsigned immediate, in the range 0 to 255, encoded in the "imm8" field. This value: Is recorded in the Comment field of ESR_ELx.ISS if the Software Breakpoint Instruction exception is taken to an exception level that is using AArch64. Is ignored otherwise. EncodingSpecificOperations(); AArch32.SoftwareBreakpoint(imm16);