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