You copied the Doc URL to your clipboard.

BKPT

Breakpoint causes a Breakpoint Instruction exception.

Breakpoint is always unconditional, even when inside an IT block.

It has encodings from the following instruction sets: A32 ( A1 ) and T32 ( T1 ) .

A1

313029282726252423222120191817161514131211109876543210
!= 111100010010imm120111imm4
cond

A1

BKPT{<q>} {#}<imm>

imm16 = imm12:imm4;
if cond != '1110' then UNPREDICTABLE;  // BKPT must be encoded with AL condition

CONSTRAINED UNPREDICTABLE behavior

If cond != '1110', then one of the following behaviors must occur:

  • The instruction is undefined.
  • The instruction executes as NOP.
  • The instruction executes unconditionally.
  • The instruction executes conditionally.

T1

1514131211109876543210
10111110imm8

T1

BKPT{<q>} {#}<imm>

imm16 = ZeroExtend(imm8, 16);

For more information about the constrained unpredictable behavior of this instruction, see Architectural Constraints on UNPREDICTABLE behaviors.

Assembler Symbols

<q>

See Standard assembler syntax fields. An 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.

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.

Operation

EncodingSpecificOperations();
AArch32.SoftwareBreakpoint(imm16);
Was this page helpful? Yes No