| .. |
| ************************************************** |
| * * |
| * Automatically generated file, do not edit! * |
| * * |
| ************************************************** |
| |
| .. _amdgpu_synid_gfx1030_hwreg: |
| |
| hwreg |
| ===== |
| |
| Bits of a hardware register being accessed. |
| |
| The bits of this operand have the following meaning: |
| |
| ======= ===================== ============ |
| Bits Description Value Range |
| ======= ===================== ============ |
| 5:0 Register *id*. 0..63 |
| 10:6 First bit *offset*. 0..31 |
| 15:11 *Size* in bits. 1..32 |
| ======= ===================== ============ |
| |
| This operand may be specified as one of the following: |
| |
| * An :ref:`integer_number<amdgpu_synid_integer_number>` or an :ref:`absolute_expression<amdgpu_synid_absolute_expression>`. The value must be in the range from 0 to 0xFFFF. |
| * An *hwreg* value which is described below. |
| |
| ==================================== =============================================================================== |
| Hwreg Value Syntax Description |
| ==================================== =============================================================================== |
| hwreg({0..63}) All bits of a register indicated by the register *id*. |
| hwreg(<*name*>) All bits of a register indicated by the register *name*. |
| hwreg({0..63}, {0..31}, {1..32}) Register bits indicated by the register *id*, first bit *offset* and *size*. |
| hwreg(<*name*>, {0..31}, {1..32}) Register bits indicated by the register *name*, first bit *offset* and *size*. |
| ==================================== =============================================================================== |
| |
| Numeric values may be specified as positive :ref:`integer numbers<amdgpu_synid_integer_number>` |
| or :ref:`absolute expressions<amdgpu_synid_absolute_expression>`. |
| |
| Predefined register *names* include: |
| |
| ============================== ========================================== |
| Name Description |
| ============================== ========================================== |
| HW_REG_MODE Shader writable mode bits. |
| HW_REG_STATUS Shader read-only status. |
| HW_REG_TRAPSTS Trap status. |
| HW_REG_HW_ID1 Id of wave, simd, compute unit, etc. |
| HW_REG_HW_ID2 Id of queue, pipeline, etc. |
| HW_REG_GPR_ALLOC Per-wave SGPR and VGPR allocation. |
| HW_REG_LDS_ALLOC Per-wave LDS allocation. |
| HW_REG_IB_STS Counters of outstanding instructions. |
| HW_REG_SH_MEM_BASES Memory aperture. |
| HW_REG_TBA_LO tba_lo register. |
| HW_REG_TBA_HI tba_hi register. |
| HW_REG_TMA_LO tma_lo register. |
| HW_REG_TMA_HI tma_hi register. |
| HW_REG_FLAT_SCR_LO flat_scratch_lo register. |
| HW_REG_FLAT_SCR_HI flat_scratch_hi register. |
| HW_REG_POPS_PACKER pops_packer register. |
| HW_REG_SHADER_CYCLES Current graphics clock counter value. |
| ============================== ========================================== |
| |
| Examples: |
| |
| .. parsed-literal:: |
| |
| reg = 1 |
| offset = 2 |
| size = 4 |
| hwreg_enc = reg | (offset << 6) | ((size - 1) << 11) |
| |
| s_getreg_b32 s2, 0x1881 |
| s_getreg_b32 s2, hwreg_enc // the same as above |
| s_getreg_b32 s2, hwreg(1, 2, 4) // the same as above |
| s_getreg_b32 s2, hwreg(reg, offset, size) // the same as above |
| |
| s_getreg_b32 s2, hwreg(15) |
| s_getreg_b32 s2, hwreg(51, 1, 31) |
| s_getreg_b32 s2, hwreg(HW_REG_LDS_ALLOC, 0, 1) |