diff --git a/docs/AMDGPUUsage.rst b/docs/AMDGPUUsage.rst index 7e4179fea8c..54904d21f7a 100644 --- a/docs/AMDGPUUsage.rst +++ b/docs/AMDGPUUsage.rst @@ -262,11 +262,12 @@ VOP_SDWA examples: For full list of supported instructions, refer to "Vector ALU instructions". Trap Handler ABI --------------------------- +---------------- The Trap Handler suppored is implemented differently based on the host OS. OS is obtained from the appropriate element of the target triple HSA OS: .. code-block:: c++ + enum TrapHandlerAbi { TrapHandlerAbiNone = 0, TrapHandlerAbiHsa = 1 @@ -276,10 +277,11 @@ is obtained from the appropriate element of the target triple HSA OS: return isAmdHsaOS() ? TrapHandlerAbiHsa : TrapHandlerAbiNone; } -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For HSA OS, a trap handler is always enabled and that the following S_TRAP immediate operand codes are supported: + .. code-block:: c++ + enum TrapCode { TrapCodeBreakPoint = 0, TrapCodeLLVMTrap = 1, @@ -288,15 +290,15 @@ operand codes are supported: }; - 0: Used for debugger breakpoint. If debugger is not installed causes dispatch -to be terminated and its associated queue put into the error state. + to be terminated and its associated queue put into the error state. - 1: Used for llvm.trap..queue_ptr is in SGPR0-1. Causes dispatch to be -terminated and its associated queue put into the error state. + terminated and its associated queue put into the error state. - 2: Used for llvm.debugtrap. queue_ptr is in SGPR0-1. If debugger not installed -handled same as llvm.trap. + handled same as llvm.trap. - 3: Used for HSA DEBUGTRAP. queue_ptr is in SGPR0-1, the user code is in VGPR0. Graphics -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^ For Graphics, S_ENDPGM is generated for llvm.trap. S_NOP is generated for llvm.debugtrap together with a warning that there is no trap handler installed.