diff options
| author | Stanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com> | 2025-08-22 12:58:41 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-22 12:58:41 -0700 |
| commit | 438c099c23c68f1649a2b5f75bb9a8f5ee0f05c5 (patch) | |
| tree | b77b68e29a5bfa775e19149b5804ccc4c9fb3888 /llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp | |
| parent | 0810505e424b1df61bab799c338549a74d32b764 (diff) | |
[AMDGPU] gfx1250 kernel descriptor update (#155008)
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp index 4b891e48ff27..6a2beeed41df 100644 --- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp +++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @@ -2284,24 +2284,38 @@ Expected<bool> AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC1( CHECK_RESERVED_BITS(COMPUTE_PGM_RSRC1_BULKY); CHECK_RESERVED_BITS(COMPUTE_PGM_RSRC1_CDBG_USER); - if (isGFX9Plus()) + // Bits [26]. + if (isGFX9Plus()) { PRINT_DIRECTIVE(".amdhsa_fp16_overflow", COMPUTE_PGM_RSRC1_GFX9_PLUS_FP16_OVFL); - - if (!isGFX9Plus()) + } else { CHECK_RESERVED_BITS_DESC_MSG(COMPUTE_PGM_RSRC1_GFX6_GFX8_RESERVED0, "COMPUTE_PGM_RSRC1", "must be zero pre-gfx9"); + } - CHECK_RESERVED_BITS_DESC(COMPUTE_PGM_RSRC1_RESERVED1, "COMPUTE_PGM_RSRC1"); + // Bits [27]. + if (isGFX1250()) { + PRINT_PSEUDO_DIRECTIVE_COMMENT("FLAT_SCRATCH_IS_NV", + COMPUTE_PGM_RSRC1_GFX125_FLAT_SCRATCH_IS_NV); + } else { + CHECK_RESERVED_BITS_DESC(COMPUTE_PGM_RSRC1_GFX6_GFX120_RESERVED1, + "COMPUTE_PGM_RSRC1"); + } - if (!isGFX10Plus()) - CHECK_RESERVED_BITS_DESC_MSG(COMPUTE_PGM_RSRC1_GFX6_GFX9_RESERVED2, - "COMPUTE_PGM_RSRC1", "must be zero pre-gfx10"); + // Bits [28]. + CHECK_RESERVED_BITS_DESC(COMPUTE_PGM_RSRC1_RESERVED2, "COMPUTE_PGM_RSRC1"); + // Bits [29-31]. if (isGFX10Plus()) { - PRINT_DIRECTIVE(".amdhsa_workgroup_processor_mode", - COMPUTE_PGM_RSRC1_GFX10_PLUS_WGP_MODE); + // WGP_MODE is not available on GFX1250. + if (!isGFX1250()) { + PRINT_DIRECTIVE(".amdhsa_workgroup_processor_mode", + COMPUTE_PGM_RSRC1_GFX10_PLUS_WGP_MODE); + } PRINT_DIRECTIVE(".amdhsa_memory_ordered", COMPUTE_PGM_RSRC1_GFX10_PLUS_MEM_ORDERED); PRINT_DIRECTIVE(".amdhsa_forward_progress", COMPUTE_PGM_RSRC1_GFX10_PLUS_FWD_PROGRESS); + } else { + CHECK_RESERVED_BITS_DESC(COMPUTE_PGM_RSRC1_GFX6_GFX9_RESERVED3, + "COMPUTE_PGM_RSRC1"); } if (isGFX12Plus()) @@ -2423,17 +2437,24 @@ Expected<bool> AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC3( "must be zero on gfx10 or gfx11"); } - // Bits [14-16] + // Bits [14-21]. if (isGFX1250()) { PRINT_DIRECTIVE(".amdhsa_named_barrier_count", COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT); + PRINT_PSEUDO_DIRECTIVE_COMMENT( + "ENABLE_DYNAMIC_VGPR", COMPUTE_PGM_RSRC3_GFX125_ENABLE_DYNAMIC_VGPR); + PRINT_PSEUDO_DIRECTIVE_COMMENT("TCP_SPLIT", + COMPUTE_PGM_RSRC3_GFX125_TCP_SPLIT); + PRINT_PSEUDO_DIRECTIVE_COMMENT( + "ENABLE_DIDT_THROTTLE", + COMPUTE_PGM_RSRC3_GFX125_ENABLE_DIDT_THROTTLE); } else { CHECK_RESERVED_BITS_DESC_MSG(COMPUTE_PGM_RSRC3_GFX10_GFX120_RESERVED4, "COMPUTE_PGM_RSRC3", "must be zero on gfx10+"); } - // Bits [17-30]. + // Bits [22-30]. CHECK_RESERVED_BITS_DESC_MSG(COMPUTE_PGM_RSRC3_GFX10_PLUS_RESERVED5, "COMPUTE_PGM_RSRC3", "must be zero on gfx10+"); @@ -2442,7 +2463,7 @@ Expected<bool> AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC3( PRINT_PSEUDO_DIRECTIVE_COMMENT("IMAGE_OP", COMPUTE_PGM_RSRC3_GFX11_PLUS_IMAGE_OP); } else { - CHECK_RESERVED_BITS_DESC_MSG(COMPUTE_PGM_RSRC3_GFX10_RESERVED5, + CHECK_RESERVED_BITS_DESC_MSG(COMPUTE_PGM_RSRC3_GFX10_RESERVED6, "COMPUTE_PGM_RSRC3", "must be zero on gfx10"); } |
