hlt

Halting Debug (A32)

HLT #<imm>

Enters halting debug state (A32 encoding).

Details

Halts execution and enters the debugger, with an optional 16-bit immediate value providing debug information. The instruction is unconditional in A32 and causes an exception to the debugger if enabled, otherwise it behaves as an unpredictable instruction. This is an A32-only instruction and is typically privileged.

Pseudocode Operation

DebugState ← Halted; DebugID ← imm16

Example

HLT #16

Encoding

Binary Layout
cond
00010
00
0
imm12
0111
imm4
 
Format System
Opcode 0x01000070
Extension A32 (Base)

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);