Skip to content

Commit

Permalink
Remove xnack_mask for all gfx10+ except gfx10.1
Browse files Browse the repository at this point in the history
The XNACK feature and the associated xnack_mask register were removed
from all gfx10+ architectures starting with gfx10.3. gfx10.1 still
supports XNACK, but only 32bit wide.

Change-Id: Ibe35f1070e315df3821d28a2b893c0c071f0b291
  • Loading branch information
lmoriche committed Nov 12, 2024
1 parent 5e22119 commit a83d3f4
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/architecture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4283,11 +4283,16 @@ gfx10_architecture_t::gfx10_architecture_t (elf_amdgpu_machine_t e_machine,
{ return register_class.name () == "system"; });
dbgapi_assert (system_registers != nullptr);

system_registers->add_registers (amdgpu_regnum_t::xnack_mask_32,
amdgpu_regnum_t::xnack_mask_32);
system_registers->remove_registers (amdgpu_regnum_t::xnack_mask_64,
amdgpu_regnum_t::xnack_mask_64);

/* gfx10.1 still supports xnack_mask, but only 32bit wide. */
if (e_machine == EF_AMDGPU_MACH_AMDGCN_GFX1010
|| e_machine == EF_AMDGPU_MACH_AMDGCN_GFX1011
|| e_machine == EF_AMDGPU_MACH_AMDGCN_GFX1012)
system_registers->add_registers (amdgpu_regnum_t::xnack_mask_32,
amdgpu_regnum_t::xnack_mask_32);

/* General registers: [s103-s105, {vector}_32, exec_32, vcc_32] */
register_class_t *general_registers
= find_if ([] (const register_class_t &register_class)
Expand Down

0 comments on commit a83d3f4

Please sign in to comment.