hlt

Halting Debug (Thumb)

HLT #<imm>

Enters halting debug state (Thumb encoding).

Details

Enters halting debug state (T32 encoding). The processor suspends and passes control to the debug system with a halting debug exception. The imm value is an optional 6-bit debugger-supplied breakpoint ID. This is a T32-only instruction; it generates a halting debug exception and does not resume normal execution until the debugger releases it.

Pseudocode Operation

GenerateException(HaltingDebugException); breakpoint_id ← imm

Example

HLT #16

Encoding

Binary Layout
1011101010
imm6
 
Format Thumb System
Opcode 0xBA80
Extension T32 (Thumb)

Operands

  • imm
    ID

Reference (Arm AArch32 ISA)

Instruction Forms

Encoding Instruction ISA Bit pattern
0x01000070 HLT{<q>} {#}<imm> A32 cond | 00010 | 00 | 0 | imm12 | 0111 | imm4
0xBA80 HLT{<q>} {#}<imm> T32 1011101010 | imm6

Description

Halting breakpoint causes a software breakpoint to occur. Halting breakpoint is always unconditional, even inside an IT block.

Operation

EncodingSpecificOperations();
boolean is_async = FALSE;
Halt(DebugHalt_HaltInstruction, is_async);