radeonsi/sid: add performance counter registers
authorNicolai Hähnle <nhaehnle@gmail.com>
Fri, 6 Nov 2015 21:43:58 +0000 (22:43 +0100)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Wed, 25 Nov 2015 14:28:06 +0000 (15:28 +0100)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/sid.h

index 4e03ceb758368a2a350cde34422eca8487c6bcdf..d2648e93c140d978499eb0d6cb9344c81e042f01 100644 (file)
 #define R_00B938_COMPUTE_USER_DATA_14                                   0x00B938
 #define R_00B93C_COMPUTE_USER_DATA_15                                   0x00B93C
 #define R_00B9FC_COMPUTE_NOWHERE                                        0x00B9FC
+#define R_034000_CPG_PERFCOUNTER1_LO                                    0x034000
+#define R_034004_CPG_PERFCOUNTER1_HI                                    0x034004
+#define R_034008_CPG_PERFCOUNTER0_LO                                    0x034008
+#define R_03400C_CPG_PERFCOUNTER0_HI                                    0x03400C
+#define R_034010_CPC_PERFCOUNTER1_LO                                    0x034010
+#define R_034014_CPC_PERFCOUNTER1_HI                                    0x034014
+#define R_034018_CPC_PERFCOUNTER0_LO                                    0x034018
+#define R_03401C_CPC_PERFCOUNTER0_HI                                    0x03401C
+#define R_034020_CPF_PERFCOUNTER1_LO                                    0x034020
+#define R_034024_CPF_PERFCOUNTER1_HI                                    0x034024
+#define R_034028_CPF_PERFCOUNTER0_LO                                    0x034028
+#define R_03402C_CPF_PERFCOUNTER0_HI                                    0x03402C
+#define R_034100_GRBM_PERFCOUNTER0_LO                                   0x034100
+#define R_034104_GRBM_PERFCOUNTER0_HI                                   0x034104
+#define R_03410C_GRBM_PERFCOUNTER1_LO                                   0x03410C
+#define R_034110_GRBM_PERFCOUNTER1_HI                                   0x034110
+#define R_034114_GRBM_SE0_PERFCOUNTER_LO                                0x034114
+#define R_034118_GRBM_SE0_PERFCOUNTER_HI                                0x034118
+#define R_03411C_GRBM_SE1_PERFCOUNTER_LO                                0x03411C
+#define R_034120_GRBM_SE1_PERFCOUNTER_HI                                0x034120
+#define R_034124_GRBM_SE2_PERFCOUNTER_LO                                0x034124
+#define R_034128_GRBM_SE2_PERFCOUNTER_HI                                0x034128
+#define R_03412C_GRBM_SE3_PERFCOUNTER_LO                                0x03412C
+#define R_034130_GRBM_SE3_PERFCOUNTER_HI                                0x034130
+#define R_034200_WD_PERFCOUNTER0_LO                                     0x034200
+#define R_034204_WD_PERFCOUNTER0_HI                                     0x034204
+#define R_034208_WD_PERFCOUNTER1_LO                                     0x034208
+#define R_03420C_WD_PERFCOUNTER1_HI                                     0x03420C
+#define R_034210_WD_PERFCOUNTER2_LO                                     0x034210
+#define R_034214_WD_PERFCOUNTER2_HI                                     0x034214
+#define R_034218_WD_PERFCOUNTER3_LO                                     0x034218
+#define R_03421C_WD_PERFCOUNTER3_HI                                     0x03421C
+#define R_034220_IA_PERFCOUNTER0_LO                                     0x034220
+#define R_034224_IA_PERFCOUNTER0_HI                                     0x034224
+#define R_034228_IA_PERFCOUNTER1_LO                                     0x034228
+#define R_03422C_IA_PERFCOUNTER1_HI                                     0x03422C
+#define R_034230_IA_PERFCOUNTER2_LO                                     0x034230
+#define R_034234_IA_PERFCOUNTER2_HI                                     0x034234
+#define R_034238_IA_PERFCOUNTER3_LO                                     0x034238
+#define R_03423C_IA_PERFCOUNTER3_HI                                     0x03423C
+#define R_034240_VGT_PERFCOUNTER0_LO                                    0x034240
+#define R_034244_VGT_PERFCOUNTER0_HI                                    0x034244
+#define R_034248_VGT_PERFCOUNTER1_LO                                    0x034248
+#define R_03424C_VGT_PERFCOUNTER1_HI                                    0x03424C
+#define R_034250_VGT_PERFCOUNTER2_LO                                    0x034250
+#define R_034254_VGT_PERFCOUNTER2_HI                                    0x034254
+#define R_034258_VGT_PERFCOUNTER3_LO                                    0x034258
+#define R_03425C_VGT_PERFCOUNTER3_HI                                    0x03425C
+#define R_034400_PA_SU_PERFCOUNTER0_LO                                  0x034400
+#define R_034404_PA_SU_PERFCOUNTER0_HI                                  0x034404
+#define   S_034404_PERFCOUNTER_HI(x)                                  (((x) & 0xFFFF) << 0)
+#define   G_034404_PERFCOUNTER_HI(x)                                  (((x) >> 0) & 0xFFFF)
+#define   C_034404_PERFCOUNTER_HI                                     0xFFFF0000
+#define R_034408_PA_SU_PERFCOUNTER1_LO                                  0x034408
+#define R_03440C_PA_SU_PERFCOUNTER1_HI                                  0x03440C
+#define R_034410_PA_SU_PERFCOUNTER2_LO                                  0x034410
+#define R_034414_PA_SU_PERFCOUNTER2_HI                                  0x034414
+#define R_034418_PA_SU_PERFCOUNTER3_LO                                  0x034418
+#define R_03441C_PA_SU_PERFCOUNTER3_HI                                  0x03441C
+#define R_034500_PA_SC_PERFCOUNTER0_LO                                  0x034500
+#define R_034504_PA_SC_PERFCOUNTER0_HI                                  0x034504
+#define R_034508_PA_SC_PERFCOUNTER1_LO                                  0x034508
+#define R_03450C_PA_SC_PERFCOUNTER1_HI                                  0x03450C
+#define R_034510_PA_SC_PERFCOUNTER2_LO                                  0x034510
+#define R_034514_PA_SC_PERFCOUNTER2_HI                                  0x034514
+#define R_034518_PA_SC_PERFCOUNTER3_LO                                  0x034518
+#define R_03451C_PA_SC_PERFCOUNTER3_HI                                  0x03451C
+#define R_034520_PA_SC_PERFCOUNTER4_LO                                  0x034520
+#define R_034524_PA_SC_PERFCOUNTER4_HI                                  0x034524
+#define R_034528_PA_SC_PERFCOUNTER5_LO                                  0x034528
+#define R_03452C_PA_SC_PERFCOUNTER5_HI                                  0x03452C
+#define R_034530_PA_SC_PERFCOUNTER6_LO                                  0x034530
+#define R_034534_PA_SC_PERFCOUNTER6_HI                                  0x034534
+#define R_034538_PA_SC_PERFCOUNTER7_LO                                  0x034538
+#define R_03453C_PA_SC_PERFCOUNTER7_HI                                  0x03453C
+#define R_034600_SPI_PERFCOUNTER0_HI                                    0x034600
+#define R_034604_SPI_PERFCOUNTER0_LO                                    0x034604
+#define R_034608_SPI_PERFCOUNTER1_HI                                    0x034608
+#define R_03460C_SPI_PERFCOUNTER1_LO                                    0x03460C
+#define R_034610_SPI_PERFCOUNTER2_HI                                    0x034610
+#define R_034614_SPI_PERFCOUNTER2_LO                                    0x034614
+#define R_034618_SPI_PERFCOUNTER3_HI                                    0x034618
+#define R_03461C_SPI_PERFCOUNTER3_LO                                    0x03461C
+#define R_034620_SPI_PERFCOUNTER4_HI                                    0x034620
+#define R_034624_SPI_PERFCOUNTER4_LO                                    0x034624
+#define R_034628_SPI_PERFCOUNTER5_HI                                    0x034628
+#define R_03462C_SPI_PERFCOUNTER5_LO                                    0x03462C
+#define R_034700_SQ_PERFCOUNTER0_LO                                     0x034700
+#define R_034704_SQ_PERFCOUNTER0_HI                                     0x034704
+#define R_034708_SQ_PERFCOUNTER1_LO                                     0x034708
+#define R_03470C_SQ_PERFCOUNTER1_HI                                     0x03470C
+#define R_034710_SQ_PERFCOUNTER2_LO                                     0x034710
+#define R_034714_SQ_PERFCOUNTER2_HI                                     0x034714
+#define R_034718_SQ_PERFCOUNTER3_LO                                     0x034718
+#define R_03471C_SQ_PERFCOUNTER3_HI                                     0x03471C
+#define R_034720_SQ_PERFCOUNTER4_LO                                     0x034720
+#define R_034724_SQ_PERFCOUNTER4_HI                                     0x034724
+#define R_034728_SQ_PERFCOUNTER5_LO                                     0x034728
+#define R_03472C_SQ_PERFCOUNTER5_HI                                     0x03472C
+#define R_034730_SQ_PERFCOUNTER6_LO                                     0x034730
+#define R_034734_SQ_PERFCOUNTER6_HI                                     0x034734
+#define R_034738_SQ_PERFCOUNTER7_LO                                     0x034738
+#define R_03473C_SQ_PERFCOUNTER7_HI                                     0x03473C
+#define R_034740_SQ_PERFCOUNTER8_LO                                     0x034740
+#define R_034744_SQ_PERFCOUNTER8_HI                                     0x034744
+#define R_034748_SQ_PERFCOUNTER9_LO                                     0x034748
+#define R_03474C_SQ_PERFCOUNTER9_HI                                     0x03474C
+#define R_034750_SQ_PERFCOUNTER10_LO                                    0x034750
+#define R_034754_SQ_PERFCOUNTER10_HI                                    0x034754
+#define R_034758_SQ_PERFCOUNTER11_LO                                    0x034758
+#define R_03475C_SQ_PERFCOUNTER11_HI                                    0x03475C
+#define R_034760_SQ_PERFCOUNTER12_LO                                    0x034760
+#define R_034764_SQ_PERFCOUNTER12_HI                                    0x034764
+#define R_034768_SQ_PERFCOUNTER13_LO                                    0x034768
+#define R_03476C_SQ_PERFCOUNTER13_HI                                    0x03476C
+#define R_034770_SQ_PERFCOUNTER14_LO                                    0x034770
+#define R_034774_SQ_PERFCOUNTER14_HI                                    0x034774
+#define R_034778_SQ_PERFCOUNTER15_LO                                    0x034778
+#define R_03477C_SQ_PERFCOUNTER15_HI                                    0x03477C
+#define R_034900_SX_PERFCOUNTER0_LO                                     0x034900
+#define R_034904_SX_PERFCOUNTER0_HI                                     0x034904
+#define R_034908_SX_PERFCOUNTER1_LO                                     0x034908
+#define R_03490C_SX_PERFCOUNTER1_HI                                     0x03490C
+#define R_034910_SX_PERFCOUNTER2_LO                                     0x034910
+#define R_034914_SX_PERFCOUNTER2_HI                                     0x034914
+#define R_034918_SX_PERFCOUNTER3_LO                                     0x034918
+#define R_03491C_SX_PERFCOUNTER3_HI                                     0x03491C
+#define R_034A00_GDS_PERFCOUNTER0_LO                                    0x034A00
+#define R_034A04_GDS_PERFCOUNTER0_HI                                    0x034A04
+#define R_034A08_GDS_PERFCOUNTER1_LO                                    0x034A08
+#define R_034A0C_GDS_PERFCOUNTER1_HI                                    0x034A0C
+#define R_034A10_GDS_PERFCOUNTER2_LO                                    0x034A10
+#define R_034A14_GDS_PERFCOUNTER2_HI                                    0x034A14
+#define R_034A18_GDS_PERFCOUNTER3_LO                                    0x034A18
+#define R_034A1C_GDS_PERFCOUNTER3_HI                                    0x034A1C
+#define R_034B00_TA_PERFCOUNTER0_LO                                     0x034B00
+#define R_034B04_TA_PERFCOUNTER0_HI                                     0x034B04
+#define R_034B08_TA_PERFCOUNTER1_LO                                     0x034B08
+#define R_034B0C_TA_PERFCOUNTER1_HI                                     0x034B0C
+#define R_034C00_TD_PERFCOUNTER0_LO                                     0x034C00
+#define R_034C04_TD_PERFCOUNTER0_HI                                     0x034C04
+#define R_034C08_TD_PERFCOUNTER1_LO                                     0x034C08
+#define R_034C0C_TD_PERFCOUNTER1_HI                                     0x034C0C
+#define R_034D00_TCP_PERFCOUNTER0_LO                                    0x034D00
+#define R_034D04_TCP_PERFCOUNTER0_HI                                    0x034D04
+#define R_034D08_TCP_PERFCOUNTER1_LO                                    0x034D08
+#define R_034D0C_TCP_PERFCOUNTER1_HI                                    0x034D0C
+#define R_034D10_TCP_PERFCOUNTER2_LO                                    0x034D10
+#define R_034D14_TCP_PERFCOUNTER2_HI                                    0x034D14
+#define R_034D18_TCP_PERFCOUNTER3_LO                                    0x034D18
+#define R_034D1C_TCP_PERFCOUNTER3_HI                                    0x034D1C
+#define R_034E00_TCC_PERFCOUNTER0_LO                                    0x034E00
+#define R_034E04_TCC_PERFCOUNTER0_HI                                    0x034E04
+#define R_034E08_TCC_PERFCOUNTER1_LO                                    0x034E08
+#define R_034E0C_TCC_PERFCOUNTER1_HI                                    0x034E0C
+#define R_034E10_TCC_PERFCOUNTER2_LO                                    0x034E10
+#define R_034E14_TCC_PERFCOUNTER2_HI                                    0x034E14
+#define R_034E18_TCC_PERFCOUNTER3_LO                                    0x034E18
+#define R_034E1C_TCC_PERFCOUNTER3_HI                                    0x034E1C
+#define R_034E40_TCA_PERFCOUNTER0_LO                                    0x034E40
+#define R_034E44_TCA_PERFCOUNTER0_HI                                    0x034E44
+#define R_034E48_TCA_PERFCOUNTER1_LO                                    0x034E48
+#define R_034E4C_TCA_PERFCOUNTER1_HI                                    0x034E4C
+#define R_034E50_TCA_PERFCOUNTER2_LO                                    0x034E50
+#define R_034E54_TCA_PERFCOUNTER2_HI                                    0x034E54
+#define R_034E58_TCA_PERFCOUNTER3_LO                                    0x034E58
+#define R_034E5C_TCA_PERFCOUNTER3_HI                                    0x034E5C
+#define R_035018_CB_PERFCOUNTER0_LO                                     0x035018
+#define R_03501C_CB_PERFCOUNTER0_HI                                     0x03501C
+#define R_035020_CB_PERFCOUNTER1_LO                                     0x035020
+#define R_035024_CB_PERFCOUNTER1_HI                                     0x035024
+#define R_035028_CB_PERFCOUNTER2_LO                                     0x035028
+#define R_03502C_CB_PERFCOUNTER2_HI                                     0x03502C
+#define R_035030_CB_PERFCOUNTER3_LO                                     0x035030
+#define R_035034_CB_PERFCOUNTER3_HI                                     0x035034
+#define R_035100_DB_PERFCOUNTER0_LO                                     0x035100
+#define R_035104_DB_PERFCOUNTER0_HI                                     0x035104
+#define R_035108_DB_PERFCOUNTER1_LO                                     0x035108
+#define R_03510C_DB_PERFCOUNTER1_HI                                     0x03510C
+#define R_035110_DB_PERFCOUNTER2_LO                                     0x035110
+#define R_035114_DB_PERFCOUNTER2_HI                                     0x035114
+#define R_035118_DB_PERFCOUNTER3_LO                                     0x035118
+#define R_03511C_DB_PERFCOUNTER3_HI                                     0x03511C
+#define R_035200_RLC_PERFCOUNTER0_LO                                    0x035200
+#define R_035204_RLC_PERFCOUNTER0_HI                                    0x035204
+#define R_035208_RLC_PERFCOUNTER1_LO                                    0x035208
+#define R_03520C_RLC_PERFCOUNTER1_HI                                    0x03520C
+#define R_036000_CPG_PERFCOUNTER1_SELECT                                0x036000
+#define R_036004_CPG_PERFCOUNTER0_SELECT1                               0x036004
+#define   S_036004_PERF_SEL2(x)                                       (((x) & 0x3F) << 0)
+#define   G_036004_PERF_SEL2(x)                                       (((x) >> 0) & 0x3F)
+#define   C_036004_PERF_SEL2                                          0xFFFFFFC0
+#define   S_036004_PERF_SEL3(x)                                       (((x) & 0x3F) << 10)
+#define   G_036004_PERF_SEL3(x)                                       (((x) >> 10) & 0x3F)
+#define   C_036004_PERF_SEL3                                          0xFFFF03FF
+#define R_036008_CPG_PERFCOUNTER0_SELECT                                0x036008
+#define   S_036008_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_036008_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_036008_PERF_SEL                                           0xFFFFFFC0
+#define   S_036008_PERF_SEL1(x)                                       (((x) & 0x3F) << 10)
+#define   G_036008_PERF_SEL1(x)                                       (((x) >> 10) & 0x3F)
+#define   C_036008_PERF_SEL1                                          0xFFFF03FF
+#define   S_036008_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036008_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036008_CNTR_MODE                                          0xFF0FFFFF
+#define R_03600C_CPC_PERFCOUNTER1_SELECT                                0x03600C
+#define R_036010_CPC_PERFCOUNTER0_SELECT1                               0x036010
+#define   S_036010_PERF_SEL2(x)                                       (((x) & 0x3F) << 0)
+#define   G_036010_PERF_SEL2(x)                                       (((x) >> 0) & 0x3F)
+#define   C_036010_PERF_SEL2                                          0xFFFFFFC0
+#define   S_036010_PERF_SEL3(x)                                       (((x) & 0x3F) << 10)
+#define   G_036010_PERF_SEL3(x)                                       (((x) >> 10) & 0x3F)
+#define   C_036010_PERF_SEL3                                          0xFFFF03FF
+#define R_036014_CPF_PERFCOUNTER1_SELECT                                0x036014
+#define R_036018_CPF_PERFCOUNTER0_SELECT1                               0x036018
+#define   S_036018_PERF_SEL2(x)                                       (((x) & 0x3F) << 0)
+#define   G_036018_PERF_SEL2(x)                                       (((x) >> 0) & 0x3F)
+#define   C_036018_PERF_SEL2                                          0xFFFFFFC0
+#define   S_036018_PERF_SEL3(x)                                       (((x) & 0x3F) << 10)
+#define   G_036018_PERF_SEL3(x)                                       (((x) >> 10) & 0x3F)
+#define   C_036018_PERF_SEL3                                          0xFFFF03FF
+#define R_03601C_CPF_PERFCOUNTER0_SELECT                                0x03601C
+#define   S_03601C_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_03601C_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_03601C_PERF_SEL                                           0xFFFFFFC0
+#define   S_03601C_PERF_SEL1(x)                                       (((x) & 0x3F) << 10)
+#define   G_03601C_PERF_SEL1(x)                                       (((x) >> 10) & 0x3F)
+#define   C_03601C_PERF_SEL1                                          0xFFFF03FF
+#define   S_03601C_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_03601C_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_03601C_CNTR_MODE                                          0xFF0FFFFF
+#define R_036020_CP_PERFMON_CNTL                                        0x036020
+#define   S_036020_PERFMON_STATE(x)                                   (((x) & 0x0F) << 0)
+#define   G_036020_PERFMON_STATE(x)                                   (((x) >> 0) & 0x0F)
+#define   C_036020_PERFMON_STATE                                      0xFFFFFFF0
+#define     V_036020_DISABLE_AND_RESET                              0x00
+#define     V_036020_START_COUNTING                                 0x01
+#define     V_036020_STOP_COUNTING                                  0x02
+#define   S_036020_SPM_PERFMON_STATE(x)                               (((x) & 0x0F) << 4)
+#define   G_036020_SPM_PERFMON_STATE(x)                               (((x) >> 4) & 0x0F)
+#define   C_036020_SPM_PERFMON_STATE                                  0xFFFFFF0F
+#define   S_036020_PERFMON_ENABLE_MODE(x)                             (((x) & 0x03) << 8)
+#define   G_036020_PERFMON_ENABLE_MODE(x)                             (((x) >> 8) & 0x03)
+#define   C_036020_PERFMON_ENABLE_MODE                                0xFFFFFCFF
+#define   S_036020_PERFMON_SAMPLE_ENABLE(x)                           (((x) & 0x1) << 10)
+#define   G_036020_PERFMON_SAMPLE_ENABLE(x)                           (((x) >> 10) & 0x1)
+#define   C_036020_PERFMON_SAMPLE_ENABLE                              0xFFFFFBFF
+#define R_036024_CPC_PERFCOUNTER0_SELECT                                0x036024
+#define   S_036024_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_036024_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_036024_PERF_SEL                                           0xFFFFFFC0
+#define   S_036024_PERF_SEL1(x)                                       (((x) & 0x3F) << 10)
+#define   G_036024_PERF_SEL1(x)                                       (((x) >> 10) & 0x3F)
+#define   C_036024_PERF_SEL1                                          0xFFFF03FF
+#define   S_036024_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036024_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036024_CNTR_MODE                                          0xFF0FFFFF
+#define R_036100_GRBM_PERFCOUNTER0_SELECT                               0x036100
+#define   S_036100_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_036100_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_036100_PERF_SEL                                           0xFFFFFFC0
+#define   S_036100_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 10)
+#define   G_036100_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 10) & 0x1)
+#define   C_036100_DB_CLEAN_USER_DEFINED_MASK                         0xFFFFFBFF
+#define   S_036100_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 11)
+#define   G_036100_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 11) & 0x1)
+#define   C_036100_CB_CLEAN_USER_DEFINED_MASK                         0xFFFFF7FF
+#define   S_036100_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 12)
+#define   G_036100_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 12) & 0x1)
+#define   C_036100_VGT_BUSY_USER_DEFINED_MASK                         0xFFFFEFFF
+#define   S_036100_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 13)
+#define   G_036100_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 13) & 0x1)
+#define   C_036100_TA_BUSY_USER_DEFINED_MASK                          0xFFFFDFFF
+#define   S_036100_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 14)
+#define   G_036100_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 14) & 0x1)
+#define   C_036100_SX_BUSY_USER_DEFINED_MASK                          0xFFFFBFFF
+#define   S_036100_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 16)
+#define   G_036100_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 16) & 0x1)
+#define   C_036100_SPI_BUSY_USER_DEFINED_MASK                         0xFFFEFFFF
+#define   S_036100_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 17)
+#define   G_036100_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 17) & 0x1)
+#define   C_036100_SC_BUSY_USER_DEFINED_MASK                          0xFFFDFFFF
+#define   S_036100_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 18)
+#define   G_036100_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 18) & 0x1)
+#define   C_036100_PA_BUSY_USER_DEFINED_MASK                          0xFFFBFFFF
+#define   S_036100_GRBM_BUSY_USER_DEFINED_MASK(x)                     (((x) & 0x1) << 19)
+#define   G_036100_GRBM_BUSY_USER_DEFINED_MASK(x)                     (((x) >> 19) & 0x1)
+#define   C_036100_GRBM_BUSY_USER_DEFINED_MASK                        0xFFF7FFFF
+#define   S_036100_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 20)
+#define   G_036100_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 20) & 0x1)
+#define   C_036100_DB_BUSY_USER_DEFINED_MASK                          0xFFEFFFFF
+#define   S_036100_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 21)
+#define   G_036100_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 21) & 0x1)
+#define   C_036100_CB_BUSY_USER_DEFINED_MASK                          0xFFDFFFFF
+#define   S_036100_CP_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 22)
+#define   G_036100_CP_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 22) & 0x1)
+#define   C_036100_CP_BUSY_USER_DEFINED_MASK                          0xFFBFFFFF
+#define   S_036100_IA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 23)
+#define   G_036100_IA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 23) & 0x1)
+#define   C_036100_IA_BUSY_USER_DEFINED_MASK                          0xFF7FFFFF
+#define   S_036100_GDS_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 24)
+#define   G_036100_GDS_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 24) & 0x1)
+#define   C_036100_GDS_BUSY_USER_DEFINED_MASK                         0xFEFFFFFF
+#define   S_036100_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 25)
+#define   G_036100_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 25) & 0x1)
+#define   C_036100_BCI_BUSY_USER_DEFINED_MASK                         0xFDFFFFFF
+#define   S_036100_RLC_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 26)
+#define   G_036100_RLC_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 26) & 0x1)
+#define   C_036100_RLC_BUSY_USER_DEFINED_MASK                         0xFBFFFFFF
+#define   S_036100_TC_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 27)
+#define   G_036100_TC_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 27) & 0x1)
+#define   C_036100_TC_BUSY_USER_DEFINED_MASK                          0xF7FFFFFF
+#define   S_036100_WD_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 28)
+#define   G_036100_WD_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 28) & 0x1)
+#define   C_036100_WD_BUSY_USER_DEFINED_MASK                          0xEFFFFFFF
+#define R_036104_GRBM_PERFCOUNTER1_SELECT                               0x036104
+#define R_036108_GRBM_SE0_PERFCOUNTER_SELECT                            0x036108
+#define   S_036108_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_036108_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_036108_PERF_SEL                                           0xFFFFFFC0
+#define   S_036108_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 10)
+#define   G_036108_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 10) & 0x1)
+#define   C_036108_DB_CLEAN_USER_DEFINED_MASK                         0xFFFFFBFF
+#define   S_036108_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 11)
+#define   G_036108_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 11) & 0x1)
+#define   C_036108_CB_CLEAN_USER_DEFINED_MASK                         0xFFFFF7FF
+#define   S_036108_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 12)
+#define   G_036108_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 12) & 0x1)
+#define   C_036108_TA_BUSY_USER_DEFINED_MASK                          0xFFFFEFFF
+#define   S_036108_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 13)
+#define   G_036108_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 13) & 0x1)
+#define   C_036108_SX_BUSY_USER_DEFINED_MASK                          0xFFFFDFFF
+#define   S_036108_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 15)
+#define   G_036108_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 15) & 0x1)
+#define   C_036108_SPI_BUSY_USER_DEFINED_MASK                         0xFFFF7FFF
+#define   S_036108_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 16)
+#define   G_036108_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 16) & 0x1)
+#define   C_036108_SC_BUSY_USER_DEFINED_MASK                          0xFFFEFFFF
+#define   S_036108_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 17)
+#define   G_036108_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 17) & 0x1)
+#define   C_036108_DB_BUSY_USER_DEFINED_MASK                          0xFFFDFFFF
+#define   S_036108_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 18)
+#define   G_036108_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 18) & 0x1)
+#define   C_036108_CB_BUSY_USER_DEFINED_MASK                          0xFFFBFFFF
+#define   S_036108_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 19)
+#define   G_036108_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 19) & 0x1)
+#define   C_036108_VGT_BUSY_USER_DEFINED_MASK                         0xFFF7FFFF
+#define   S_036108_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 20)
+#define   G_036108_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 20) & 0x1)
+#define   C_036108_PA_BUSY_USER_DEFINED_MASK                          0xFFEFFFFF
+#define   S_036108_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 21)
+#define   G_036108_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 21) & 0x1)
+#define   C_036108_BCI_BUSY_USER_DEFINED_MASK                         0xFFDFFFFF
+#define R_03610C_GRBM_SE1_PERFCOUNTER_SELECT                            0x03610C
+#define   S_03610C_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_03610C_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_03610C_PERF_SEL                                           0xFFFFFFC0
+#define   S_03610C_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 10)
+#define   G_03610C_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 10) & 0x1)
+#define   C_03610C_DB_CLEAN_USER_DEFINED_MASK                         0xFFFFFBFF
+#define   S_03610C_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 11)
+#define   G_03610C_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 11) & 0x1)
+#define   C_03610C_CB_CLEAN_USER_DEFINED_MASK                         0xFFFFF7FF
+#define   S_03610C_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 12)
+#define   G_03610C_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 12) & 0x1)
+#define   C_03610C_TA_BUSY_USER_DEFINED_MASK                          0xFFFFEFFF
+#define   S_03610C_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 13)
+#define   G_03610C_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 13) & 0x1)
+#define   C_03610C_SX_BUSY_USER_DEFINED_MASK                          0xFFFFDFFF
+#define   S_03610C_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 15)
+#define   G_03610C_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 15) & 0x1)
+#define   C_03610C_SPI_BUSY_USER_DEFINED_MASK                         0xFFFF7FFF
+#define   S_03610C_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 16)
+#define   G_03610C_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 16) & 0x1)
+#define   C_03610C_SC_BUSY_USER_DEFINED_MASK                          0xFFFEFFFF
+#define   S_03610C_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 17)
+#define   G_03610C_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 17) & 0x1)
+#define   C_03610C_DB_BUSY_USER_DEFINED_MASK                          0xFFFDFFFF
+#define   S_03610C_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 18)
+#define   G_03610C_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 18) & 0x1)
+#define   C_03610C_CB_BUSY_USER_DEFINED_MASK                          0xFFFBFFFF
+#define   S_03610C_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 19)
+#define   G_03610C_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 19) & 0x1)
+#define   C_03610C_VGT_BUSY_USER_DEFINED_MASK                         0xFFF7FFFF
+#define   S_03610C_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 20)
+#define   G_03610C_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 20) & 0x1)
+#define   C_03610C_PA_BUSY_USER_DEFINED_MASK                          0xFFEFFFFF
+#define   S_03610C_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 21)
+#define   G_03610C_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 21) & 0x1)
+#define   C_03610C_BCI_BUSY_USER_DEFINED_MASK                         0xFFDFFFFF
+#define R_036110_GRBM_SE2_PERFCOUNTER_SELECT                            0x036110
+#define   S_036110_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_036110_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_036110_PERF_SEL                                           0xFFFFFFC0
+#define   S_036110_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 10)
+#define   G_036110_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 10) & 0x1)
+#define   C_036110_DB_CLEAN_USER_DEFINED_MASK                         0xFFFFFBFF
+#define   S_036110_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 11)
+#define   G_036110_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 11) & 0x1)
+#define   C_036110_CB_CLEAN_USER_DEFINED_MASK                         0xFFFFF7FF
+#define   S_036110_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 12)
+#define   G_036110_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 12) & 0x1)
+#define   C_036110_TA_BUSY_USER_DEFINED_MASK                          0xFFFFEFFF
+#define   S_036110_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 13)
+#define   G_036110_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 13) & 0x1)
+#define   C_036110_SX_BUSY_USER_DEFINED_MASK                          0xFFFFDFFF
+#define   S_036110_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 15)
+#define   G_036110_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 15) & 0x1)
+#define   C_036110_SPI_BUSY_USER_DEFINED_MASK                         0xFFFF7FFF
+#define   S_036110_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 16)
+#define   G_036110_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 16) & 0x1)
+#define   C_036110_SC_BUSY_USER_DEFINED_MASK                          0xFFFEFFFF
+#define   S_036110_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 17)
+#define   G_036110_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 17) & 0x1)
+#define   C_036110_DB_BUSY_USER_DEFINED_MASK                          0xFFFDFFFF
+#define   S_036110_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 18)
+#define   G_036110_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 18) & 0x1)
+#define   C_036110_CB_BUSY_USER_DEFINED_MASK                          0xFFFBFFFF
+#define   S_036110_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 19)
+#define   G_036110_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 19) & 0x1)
+#define   C_036110_VGT_BUSY_USER_DEFINED_MASK                         0xFFF7FFFF
+#define   S_036110_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 20)
+#define   G_036110_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 20) & 0x1)
+#define   C_036110_PA_BUSY_USER_DEFINED_MASK                          0xFFEFFFFF
+#define   S_036110_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 21)
+#define   G_036110_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 21) & 0x1)
+#define   C_036110_BCI_BUSY_USER_DEFINED_MASK                         0xFFDFFFFF
+#define R_036114_GRBM_SE3_PERFCOUNTER_SELECT                            0x036114
+#define   S_036114_PERF_SEL(x)                                        (((x) & 0x3F) << 0)
+#define   G_036114_PERF_SEL(x)                                        (((x) >> 0) & 0x3F)
+#define   C_036114_PERF_SEL                                           0xFFFFFFC0
+#define   S_036114_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 10)
+#define   G_036114_DB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 10) & 0x1)
+#define   C_036114_DB_CLEAN_USER_DEFINED_MASK                         0xFFFFFBFF
+#define   S_036114_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 11)
+#define   G_036114_CB_CLEAN_USER_DEFINED_MASK(x)                      (((x) >> 11) & 0x1)
+#define   C_036114_CB_CLEAN_USER_DEFINED_MASK                         0xFFFFF7FF
+#define   S_036114_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 12)
+#define   G_036114_TA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 12) & 0x1)
+#define   C_036114_TA_BUSY_USER_DEFINED_MASK                          0xFFFFEFFF
+#define   S_036114_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 13)
+#define   G_036114_SX_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 13) & 0x1)
+#define   C_036114_SX_BUSY_USER_DEFINED_MASK                          0xFFFFDFFF
+#define   S_036114_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 15)
+#define   G_036114_SPI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 15) & 0x1)
+#define   C_036114_SPI_BUSY_USER_DEFINED_MASK                         0xFFFF7FFF
+#define   S_036114_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 16)
+#define   G_036114_SC_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 16) & 0x1)
+#define   C_036114_SC_BUSY_USER_DEFINED_MASK                          0xFFFEFFFF
+#define   S_036114_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 17)
+#define   G_036114_DB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 17) & 0x1)
+#define   C_036114_DB_BUSY_USER_DEFINED_MASK                          0xFFFDFFFF
+#define   S_036114_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 18)
+#define   G_036114_CB_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 18) & 0x1)
+#define   C_036114_CB_BUSY_USER_DEFINED_MASK                          0xFFFBFFFF
+#define   S_036114_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 19)
+#define   G_036114_VGT_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 19) & 0x1)
+#define   C_036114_VGT_BUSY_USER_DEFINED_MASK                         0xFFF7FFFF
+#define   S_036114_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) & 0x1) << 20)
+#define   G_036114_PA_BUSY_USER_DEFINED_MASK(x)                       (((x) >> 20) & 0x1)
+#define   C_036114_PA_BUSY_USER_DEFINED_MASK                          0xFFEFFFFF
+#define   S_036114_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) & 0x1) << 21)
+#define   G_036114_BCI_BUSY_USER_DEFINED_MASK(x)                      (((x) >> 21) & 0x1)
+#define   C_036114_BCI_BUSY_USER_DEFINED_MASK                         0xFFDFFFFF
+#define R_036200_WD_PERFCOUNTER0_SELECT                                 0x036200
+#define   S_036200_PERF_SEL(x)                                        (((x) & 0xFF) << 0)
+#define   G_036200_PERF_SEL(x)                                        (((x) >> 0) & 0xFF)
+#define   C_036200_PERF_SEL                                           0xFFFFFF00
+#define   S_036200_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036200_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036200_PERF_MODE                                          0x0FFFFFFF
+#define R_036204_WD_PERFCOUNTER1_SELECT                                 0x036204
+#define R_036208_WD_PERFCOUNTER2_SELECT                                 0x036208
+#define R_03620C_WD_PERFCOUNTER3_SELECT                                 0x03620C
+#define R_036210_IA_PERFCOUNTER0_SELECT                                 0x036210
+#define   S_036210_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036210_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036210_PERF_SEL                                           0xFFFFFC00
+#define   S_036210_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036210_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036210_PERF_SEL1                                          0xFFF003FF
+#define   S_036210_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036210_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036210_CNTR_MODE                                          0xFF0FFFFF
+#define   S_036210_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_036210_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036210_PERF_MODE1                                         0xF0FFFFFF
+#define   S_036210_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036210_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036210_PERF_MODE                                          0x0FFFFFFF
+#define R_036214_IA_PERFCOUNTER1_SELECT                                 0x036214
+#define R_036218_IA_PERFCOUNTER2_SELECT                                 0x036218
+#define R_03621C_IA_PERFCOUNTER3_SELECT                                 0x03621C
+#define R_036220_IA_PERFCOUNTER0_SELECT1                                0x036220
+#define   S_036220_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036220_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036220_PERF_SEL2                                          0xFFFFFC00
+#define   S_036220_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036220_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036220_PERF_SEL3                                          0xFFF003FF
+#define   S_036220_PERF_MODE3(x)                                      (((x) & 0x0F) << 24)
+#define   G_036220_PERF_MODE3(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036220_PERF_MODE3                                         0xF0FFFFFF
+#define   S_036220_PERF_MODE2(x)                                      (((x) & 0x0F) << 28)
+#define   G_036220_PERF_MODE2(x)                                      (((x) >> 28) & 0x0F)
+#define   C_036220_PERF_MODE2                                         0x0FFFFFFF
+#define R_036230_VGT_PERFCOUNTER0_SELECT                                0x036230
+#define   S_036230_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036230_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036230_PERF_SEL                                           0xFFFFFC00
+#define   S_036230_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036230_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036230_PERF_SEL1                                          0xFFF003FF
+#define   S_036230_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036230_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036230_CNTR_MODE                                          0xFF0FFFFF
+#define   S_036230_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_036230_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036230_PERF_MODE1                                         0xF0FFFFFF
+#define   S_036230_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036230_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036230_PERF_MODE                                          0x0FFFFFFF
+#define R_036234_VGT_PERFCOUNTER1_SELECT                                0x036234
+#define R_036238_VGT_PERFCOUNTER2_SELECT                                0x036238
+#define R_03623C_VGT_PERFCOUNTER3_SELECT                                0x03623C
+#define R_036240_VGT_PERFCOUNTER0_SELECT1                               0x036240
+#define   S_036240_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036240_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036240_PERF_SEL2                                          0xFFFFFC00
+#define   S_036240_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036240_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036240_PERF_SEL3                                          0xFFF003FF
+#define   S_036240_PERF_MODE3(x)                                      (((x) & 0x0F) << 24)
+#define   G_036240_PERF_MODE3(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036240_PERF_MODE3                                         0xF0FFFFFF
+#define   S_036240_PERF_MODE2(x)                                      (((x) & 0x0F) << 28)
+#define   G_036240_PERF_MODE2(x)                                      (((x) >> 28) & 0x0F)
+#define   C_036240_PERF_MODE2                                         0x0FFFFFFF
+#define R_036244_VGT_PERFCOUNTER1_SELECT1                               0x036244
+#define R_036250_VGT_PERFCOUNTER_SEID_MASK                              0x036250
+#define   S_036250_PERF_SEID_IGNORE_MASK(x)                           (((x) & 0xFF) << 0)
+#define   G_036250_PERF_SEID_IGNORE_MASK(x)                           (((x) >> 0) & 0xFF)
+#define   C_036250_PERF_SEID_IGNORE_MASK                              0xFFFFFF00
+#define R_036400_PA_SU_PERFCOUNTER0_SELECT                              0x036400
+#define   S_036400_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036400_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036400_PERF_SEL                                           0xFFFFFC00
+#define   S_036400_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036400_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036400_PERF_SEL1                                          0xFFF003FF
+#define   S_036400_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036400_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036400_CNTR_MODE                                          0xFF0FFFFF
+#define R_036404_PA_SU_PERFCOUNTER0_SELECT1                             0x036404
+#define   S_036404_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036404_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036404_PERF_SEL2                                          0xFFFFFC00
+#define   S_036404_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036404_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036404_PERF_SEL3                                          0xFFF003FF
+#define R_036408_PA_SU_PERFCOUNTER1_SELECT                              0x036408
+#define R_03640C_PA_SU_PERFCOUNTER1_SELECT1                             0x03640C
+#define R_036410_PA_SU_PERFCOUNTER2_SELECT                              0x036410
+#define R_036414_PA_SU_PERFCOUNTER3_SELECT                              0x036414
+#define R_036500_PA_SC_PERFCOUNTER0_SELECT                              0x036500
+#define   S_036500_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036500_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036500_PERF_SEL                                           0xFFFFFC00
+#define   S_036500_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036500_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036500_PERF_SEL1                                          0xFFF003FF
+#define   S_036500_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036500_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036500_CNTR_MODE                                          0xFF0FFFFF
+#define R_036504_PA_SC_PERFCOUNTER0_SELECT1                             0x036504
+#define   S_036504_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036504_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036504_PERF_SEL2                                          0xFFFFFC00
+#define   S_036504_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036504_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036504_PERF_SEL3                                          0xFFF003FF
+#define R_036508_PA_SC_PERFCOUNTER1_SELECT                              0x036508
+#define R_03650C_PA_SC_PERFCOUNTER2_SELECT                              0x03650C
+#define R_036510_PA_SC_PERFCOUNTER3_SELECT                              0x036510
+#define R_036514_PA_SC_PERFCOUNTER4_SELECT                              0x036514
+#define R_036518_PA_SC_PERFCOUNTER5_SELECT                              0x036518
+#define R_03651C_PA_SC_PERFCOUNTER6_SELECT                              0x03651C
+#define R_036520_PA_SC_PERFCOUNTER7_SELECT                              0x036520
+#define R_036600_SPI_PERFCOUNTER0_SELECT                                0x036600
+#define   S_036600_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036600_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036600_PERF_SEL                                           0xFFFFFC00
+#define   S_036600_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036600_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036600_PERF_SEL1                                          0xFFF003FF
+#define   S_036600_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036600_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036600_CNTR_MODE                                          0xFF0FFFFF
+#define R_036604_SPI_PERFCOUNTER1_SELECT                                0x036604
+#define R_036608_SPI_PERFCOUNTER2_SELECT                                0x036608
+#define R_03660C_SPI_PERFCOUNTER3_SELECT                                0x03660C
+#define R_036610_SPI_PERFCOUNTER0_SELECT1                               0x036610
+#define   S_036610_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036610_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036610_PERF_SEL2                                          0xFFFFFC00
+#define   S_036610_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036610_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036610_PERF_SEL3                                          0xFFF003FF
+#define R_036614_SPI_PERFCOUNTER1_SELECT1                               0x036614
+#define R_036618_SPI_PERFCOUNTER2_SELECT1                               0x036618
+#define R_03661C_SPI_PERFCOUNTER3_SELECT1                               0x03661C
+#define R_036620_SPI_PERFCOUNTER4_SELECT                                0x036620
+#define R_036624_SPI_PERFCOUNTER5_SELECT                                0x036624
+#define R_036628_SPI_PERFCOUNTER_BINS                                   0x036628
+#define   S_036628_BIN0_MIN(x)                                        (((x) & 0x0F) << 0)
+#define   G_036628_BIN0_MIN(x)                                        (((x) >> 0) & 0x0F)
+#define   C_036628_BIN0_MIN                                           0xFFFFFFF0
+#define   S_036628_BIN0_MAX(x)                                        (((x) & 0x0F) << 4)
+#define   G_036628_BIN0_MAX(x)                                        (((x) >> 4) & 0x0F)
+#define   C_036628_BIN0_MAX                                           0xFFFFFF0F
+#define   S_036628_BIN1_MIN(x)                                        (((x) & 0x0F) << 8)
+#define   G_036628_BIN1_MIN(x)                                        (((x) >> 8) & 0x0F)
+#define   C_036628_BIN1_MIN                                           0xFFFFF0FF
+#define   S_036628_BIN1_MAX(x)                                        (((x) & 0x0F) << 12)
+#define   G_036628_BIN1_MAX(x)                                        (((x) >> 12) & 0x0F)
+#define   C_036628_BIN1_MAX                                           0xFFFF0FFF
+#define   S_036628_BIN2_MIN(x)                                        (((x) & 0x0F) << 16)
+#define   G_036628_BIN2_MIN(x)                                        (((x) >> 16) & 0x0F)
+#define   C_036628_BIN2_MIN                                           0xFFF0FFFF
+#define   S_036628_BIN2_MAX(x)                                        (((x) & 0x0F) << 20)
+#define   G_036628_BIN2_MAX(x)                                        (((x) >> 20) & 0x0F)
+#define   C_036628_BIN2_MAX                                           0xFF0FFFFF
+#define   S_036628_BIN3_MIN(x)                                        (((x) & 0x0F) << 24)
+#define   G_036628_BIN3_MIN(x)                                        (((x) >> 24) & 0x0F)
+#define   C_036628_BIN3_MIN                                           0xF0FFFFFF
+#define   S_036628_BIN3_MAX(x)                                        (((x) & 0x0F) << 28)
+#define   G_036628_BIN3_MAX(x)                                        (((x) >> 28) & 0x0F)
+#define   C_036628_BIN3_MAX                                           0x0FFFFFFF
+#define R_036700_SQ_PERFCOUNTER0_SELECT                                 0x036700
+#define   S_036700_PERF_SEL(x)                                        (((x) & 0x1FF) << 0)
+#define   G_036700_PERF_SEL(x)                                        (((x) >> 0) & 0x1FF)
+#define   C_036700_PERF_SEL                                           0xFFFFFE00
+#define   S_036700_SQC_BANK_MASK(x)                                   (((x) & 0x0F) << 12)
+#define   G_036700_SQC_BANK_MASK(x)                                   (((x) >> 12) & 0x0F)
+#define   C_036700_SQC_BANK_MASK                                      0xFFFF0FFF
+#define   S_036700_SQC_CLIENT_MASK(x)                                 (((x) & 0x0F) << 16)
+#define   G_036700_SQC_CLIENT_MASK(x)                                 (((x) >> 16) & 0x0F)
+#define   C_036700_SQC_CLIENT_MASK                                    0xFFF0FFFF
+#define   S_036700_SPM_MODE(x)                                        (((x) & 0x0F) << 20)
+#define   G_036700_SPM_MODE(x)                                        (((x) >> 20) & 0x0F)
+#define   C_036700_SPM_MODE                                           0xFF0FFFFF
+#define   S_036700_SIMD_MASK(x)                                       (((x) & 0x0F) << 24)
+#define   G_036700_SIMD_MASK(x)                                       (((x) >> 24) & 0x0F)
+#define   C_036700_SIMD_MASK                                          0xF0FFFFFF
+#define   S_036700_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036700_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036700_PERF_MODE                                          0x0FFFFFFF
+#define R_036704_SQ_PERFCOUNTER1_SELECT                                 0x036704
+#define R_036708_SQ_PERFCOUNTER2_SELECT                                 0x036708
+#define R_03670C_SQ_PERFCOUNTER3_SELECT                                 0x03670C
+#define R_036710_SQ_PERFCOUNTER4_SELECT                                 0x036710
+#define R_036714_SQ_PERFCOUNTER5_SELECT                                 0x036714
+#define R_036718_SQ_PERFCOUNTER6_SELECT                                 0x036718
+#define R_03671C_SQ_PERFCOUNTER7_SELECT                                 0x03671C
+#define R_036720_SQ_PERFCOUNTER8_SELECT                                 0x036720
+#define R_036724_SQ_PERFCOUNTER9_SELECT                                 0x036724
+#define R_036728_SQ_PERFCOUNTER10_SELECT                                0x036728
+#define R_03672C_SQ_PERFCOUNTER11_SELECT                                0x03672C
+#define R_036730_SQ_PERFCOUNTER12_SELECT                                0x036730
+#define R_036734_SQ_PERFCOUNTER13_SELECT                                0x036734
+#define R_036738_SQ_PERFCOUNTER14_SELECT                                0x036738
+#define R_03673C_SQ_PERFCOUNTER15_SELECT                                0x03673C
+#define R_036780_SQ_PERFCOUNTER_CTRL                                    0x036780
+#define   S_036780_PS_EN(x)                                           (((x) & 0x1) << 0)
+#define   G_036780_PS_EN(x)                                           (((x) >> 0) & 0x1)
+#define   C_036780_PS_EN                                              0xFFFFFFFE
+#define   S_036780_VS_EN(x)                                           (((x) & 0x1) << 1)
+#define   G_036780_VS_EN(x)                                           (((x) >> 1) & 0x1)
+#define   C_036780_VS_EN                                              0xFFFFFFFD
+#define   S_036780_GS_EN(x)                                           (((x) & 0x1) << 2)
+#define   G_036780_GS_EN(x)                                           (((x) >> 2) & 0x1)
+#define   C_036780_GS_EN                                              0xFFFFFFFB
+#define   S_036780_ES_EN(x)                                           (((x) & 0x1) << 3)
+#define   G_036780_ES_EN(x)                                           (((x) >> 3) & 0x1)
+#define   C_036780_ES_EN                                              0xFFFFFFF7
+#define   S_036780_HS_EN(x)                                           (((x) & 0x1) << 4)
+#define   G_036780_HS_EN(x)                                           (((x) >> 4) & 0x1)
+#define   C_036780_HS_EN                                              0xFFFFFFEF
+#define   S_036780_LS_EN(x)                                           (((x) & 0x1) << 5)
+#define   G_036780_LS_EN(x)                                           (((x) >> 5) & 0x1)
+#define   C_036780_LS_EN                                              0xFFFFFFDF
+#define   S_036780_CS_EN(x)                                           (((x) & 0x1) << 6)
+#define   G_036780_CS_EN(x)                                           (((x) >> 6) & 0x1)
+#define   C_036780_CS_EN                                              0xFFFFFFBF
+#define   S_036780_CNTR_RATE(x)                                       (((x) & 0x1F) << 8)
+#define   G_036780_CNTR_RATE(x)                                       (((x) >> 8) & 0x1F)
+#define   C_036780_CNTR_RATE                                          0xFFFFE0FF
+#define   S_036780_DISABLE_FLUSH(x)                                   (((x) & 0x1) << 13)
+#define   G_036780_DISABLE_FLUSH(x)                                   (((x) >> 13) & 0x1)
+#define   C_036780_DISABLE_FLUSH                                      0xFFFFDFFF
+#define R_036784_SQ_PERFCOUNTER_MASK                                    0x036784
+#define   S_036784_SH0_MASK(x)                                        (((x) & 0xFFFF) << 0)
+#define   G_036784_SH0_MASK(x)                                        (((x) >> 0) & 0xFFFF)
+#define   C_036784_SH0_MASK                                           0xFFFF0000
+#define   S_036784_SH1_MASK(x)                                        (((x) & 0xFFFF) << 16)
+#define   G_036784_SH1_MASK(x)                                        (((x) >> 16) & 0xFFFF)
+#define   C_036784_SH1_MASK                                           0x0000FFFF
+#define R_036788_SQ_PERFCOUNTER_CTRL2                                   0x036788
+#define   S_036788_FORCE_EN(x)                                        (((x) & 0x1) << 0)
+#define   G_036788_FORCE_EN(x)                                        (((x) >> 0) & 0x1)
+#define   C_036788_FORCE_EN                                           0xFFFFFFFE
+#define R_036900_SX_PERFCOUNTER0_SELECT                                 0x036900
+#define   S_036900_PERFCOUNTER_SELECT(x)                              (((x) & 0x3FF) << 0)
+#define   G_036900_PERFCOUNTER_SELECT(x)                              (((x) >> 0) & 0x3FF)
+#define   C_036900_PERFCOUNTER_SELECT                                 0xFFFFFC00
+#define   S_036900_PERFCOUNTER_SELECT1(x)                             (((x) & 0x3FF) << 10)
+#define   G_036900_PERFCOUNTER_SELECT1(x)                             (((x) >> 10) & 0x3FF)
+#define   C_036900_PERFCOUNTER_SELECT1                                0xFFF003FF
+#define   S_036900_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036900_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036900_CNTR_MODE                                          0xFF0FFFFF
+#define R_036904_SX_PERFCOUNTER1_SELECT                                 0x036904
+#define R_036908_SX_PERFCOUNTER2_SELECT                                 0x036908
+#define R_03690C_SX_PERFCOUNTER3_SELECT                                 0x03690C
+#define R_036910_SX_PERFCOUNTER0_SELECT1                                0x036910
+#define   S_036910_PERFCOUNTER_SELECT2(x)                             (((x) & 0x3FF) << 0)
+#define   G_036910_PERFCOUNTER_SELECT2(x)                             (((x) >> 0) & 0x3FF)
+#define   C_036910_PERFCOUNTER_SELECT2                                0xFFFFFC00
+#define   S_036910_PERFCOUNTER_SELECT3(x)                             (((x) & 0x3FF) << 10)
+#define   G_036910_PERFCOUNTER_SELECT3(x)                             (((x) >> 10) & 0x3FF)
+#define   C_036910_PERFCOUNTER_SELECT3                                0xFFF003FF
+#define R_036914_SX_PERFCOUNTER1_SELECT1                                0x036914
+#define R_036A00_GDS_PERFCOUNTER0_SELECT                                0x036A00
+#define   S_036A00_PERFCOUNTER_SELECT(x)                              (((x) & 0x3FF) << 0)
+#define   G_036A00_PERFCOUNTER_SELECT(x)                              (((x) >> 0) & 0x3FF)
+#define   C_036A00_PERFCOUNTER_SELECT                                 0xFFFFFC00
+#define   S_036A00_PERFCOUNTER_SELECT1(x)                             (((x) & 0x3FF) << 10)
+#define   G_036A00_PERFCOUNTER_SELECT1(x)                             (((x) >> 10) & 0x3FF)
+#define   C_036A00_PERFCOUNTER_SELECT1                                0xFFF003FF
+#define   S_036A00_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036A00_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036A00_CNTR_MODE                                          0xFF0FFFFF
+#define R_036A04_GDS_PERFCOUNTER1_SELECT                                0x036A04
+#define R_036A08_GDS_PERFCOUNTER2_SELECT                                0x036A08
+#define R_036A0C_GDS_PERFCOUNTER3_SELECT                                0x036A0C
+#define R_036A10_GDS_PERFCOUNTER0_SELECT1                               0x036A10
+#define   S_036A10_PERFCOUNTER_SELECT2(x)                             (((x) & 0x3FF) << 0)
+#define   G_036A10_PERFCOUNTER_SELECT2(x)                             (((x) >> 0) & 0x3FF)
+#define   C_036A10_PERFCOUNTER_SELECT2                                0xFFFFFC00
+#define   S_036A10_PERFCOUNTER_SELECT3(x)                             (((x) & 0x3FF) << 10)
+#define   G_036A10_PERFCOUNTER_SELECT3(x)                             (((x) >> 10) & 0x3FF)
+#define   C_036A10_PERFCOUNTER_SELECT3                                0xFFF003FF
+#define R_036B00_TA_PERFCOUNTER0_SELECT                                 0x036B00
+#define   S_036B00_PERF_SEL(x)                                        (((x) & 0xFF) << 0)
+#define   G_036B00_PERF_SEL(x)                                        (((x) >> 0) & 0xFF)
+#define   C_036B00_PERF_SEL                                           0xFFFFFF00
+#define   S_036B00_PERF_SEL1(x)                                       (((x) & 0xFF) << 10)
+#define   G_036B00_PERF_SEL1(x)                                       (((x) >> 10) & 0xFF)
+#define   C_036B00_PERF_SEL1                                          0xFFFC03FF
+#define   S_036B00_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036B00_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036B00_CNTR_MODE                                          0xFF0FFFFF
+#define   S_036B00_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_036B00_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036B00_PERF_MODE1                                         0xF0FFFFFF
+#define   S_036B00_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036B00_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036B00_PERF_MODE                                          0x0FFFFFFF
+#define R_036B04_TA_PERFCOUNTER0_SELECT1                                0x036B04
+#define   S_036B04_PERF_SEL2(x)                                       (((x) & 0xFF) << 0)
+#define   G_036B04_PERF_SEL2(x)                                       (((x) >> 0) & 0xFF)
+#define   C_036B04_PERF_SEL2                                          0xFFFFFF00
+#define   S_036B04_PERF_SEL3(x)                                       (((x) & 0xFF) << 10)
+#define   G_036B04_PERF_SEL3(x)                                       (((x) >> 10) & 0xFF)
+#define   C_036B04_PERF_SEL3                                          0xFFFC03FF
+#define   S_036B04_PERF_MODE3(x)                                      (((x) & 0x0F) << 24)
+#define   G_036B04_PERF_MODE3(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036B04_PERF_MODE3                                         0xF0FFFFFF
+#define   S_036B04_PERF_MODE2(x)                                      (((x) & 0x0F) << 28)
+#define   G_036B04_PERF_MODE2(x)                                      (((x) >> 28) & 0x0F)
+#define   C_036B04_PERF_MODE2                                         0x0FFFFFFF
+#define R_036B08_TA_PERFCOUNTER1_SELECT                                 0x036B08
+#define R_036C00_TD_PERFCOUNTER0_SELECT                                 0x036C00
+#define   S_036C00_PERF_SEL(x)                                        (((x) & 0xFF) << 0)
+#define   G_036C00_PERF_SEL(x)                                        (((x) >> 0) & 0xFF)
+#define   C_036C00_PERF_SEL                                           0xFFFFFF00
+#define   S_036C00_PERF_SEL1(x)                                       (((x) & 0xFF) << 10)
+#define   G_036C00_PERF_SEL1(x)                                       (((x) >> 10) & 0xFF)
+#define   C_036C00_PERF_SEL1                                          0xFFFC03FF
+#define   S_036C00_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036C00_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036C00_CNTR_MODE                                          0xFF0FFFFF
+#define   S_036C00_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_036C00_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036C00_PERF_MODE1                                         0xF0FFFFFF
+#define   S_036C00_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036C00_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036C00_PERF_MODE                                          0x0FFFFFFF
+#define R_036C04_TD_PERFCOUNTER0_SELECT1                                0x036C04
+#define   S_036C04_PERF_SEL2(x)                                       (((x) & 0xFF) << 0)
+#define   G_036C04_PERF_SEL2(x)                                       (((x) >> 0) & 0xFF)
+#define   C_036C04_PERF_SEL2                                          0xFFFFFF00
+#define   S_036C04_PERF_SEL3(x)                                       (((x) & 0xFF) << 10)
+#define   G_036C04_PERF_SEL3(x)                                       (((x) >> 10) & 0xFF)
+#define   C_036C04_PERF_SEL3                                          0xFFFC03FF
+#define   S_036C04_PERF_MODE3(x)                                      (((x) & 0x0F) << 24)
+#define   G_036C04_PERF_MODE3(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036C04_PERF_MODE3                                         0xF0FFFFFF
+#define   S_036C04_PERF_MODE2(x)                                      (((x) & 0x0F) << 28)
+#define   G_036C04_PERF_MODE2(x)                                      (((x) >> 28) & 0x0F)
+#define   C_036C04_PERF_MODE2                                         0x0FFFFFFF
+#define R_036C08_TD_PERFCOUNTER1_SELECT                                 0x036C08
+#define R_036D00_TCP_PERFCOUNTER0_SELECT                                0x036D00
+#define   S_036D00_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036D00_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036D00_PERF_SEL                                           0xFFFFFC00
+#define   S_036D00_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036D00_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036D00_PERF_SEL1                                          0xFFF003FF
+#define   S_036D00_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036D00_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036D00_CNTR_MODE                                          0xFF0FFFFF
+#define   S_036D00_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_036D00_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036D00_PERF_MODE1                                         0xF0FFFFFF
+#define   S_036D00_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036D00_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036D00_PERF_MODE                                          0x0FFFFFFF
+#define R_036D04_TCP_PERFCOUNTER0_SELECT1                               0x036D04
+#define   S_036D04_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036D04_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036D04_PERF_SEL2                                          0xFFFFFC00
+#define   S_036D04_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036D04_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036D04_PERF_SEL3                                          0xFFF003FF
+#define   S_036D04_PERF_MODE3(x)                                      (((x) & 0x0F) << 24)
+#define   G_036D04_PERF_MODE3(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036D04_PERF_MODE3                                         0xF0FFFFFF
+#define   S_036D04_PERF_MODE2(x)                                      (((x) & 0x0F) << 28)
+#define   G_036D04_PERF_MODE2(x)                                      (((x) >> 28) & 0x0F)
+#define   C_036D04_PERF_MODE2                                         0x0FFFFFFF
+#define R_036D08_TCP_PERFCOUNTER1_SELECT                                0x036D08
+#define R_036D0C_TCP_PERFCOUNTER1_SELECT1                               0x036D0C
+#define R_036D10_TCP_PERFCOUNTER2_SELECT                                0x036D10
+#define R_036D14_TCP_PERFCOUNTER3_SELECT                                0x036D14
+#define R_036E00_TCC_PERFCOUNTER0_SELECT                                0x036E00
+#define   S_036E00_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036E00_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036E00_PERF_SEL                                           0xFFFFFC00
+#define   S_036E00_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036E00_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036E00_PERF_SEL1                                          0xFFF003FF
+#define   S_036E00_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036E00_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036E00_CNTR_MODE                                          0xFF0FFFFF
+#define   S_036E00_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_036E00_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036E00_PERF_MODE1                                         0xF0FFFFFF
+#define   S_036E00_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036E00_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036E00_PERF_MODE                                          0x0FFFFFFF
+#define R_036E04_TCC_PERFCOUNTER0_SELECT1                               0x036E04
+#define   S_036E04_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036E04_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036E04_PERF_SEL2                                          0xFFFFFC00
+#define   S_036E04_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036E04_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036E04_PERF_SEL3                                          0xFFF003FF
+#define   S_036E04_PERF_MODE2(x)                                      (((x) & 0x0F) << 24)
+#define   G_036E04_PERF_MODE2(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036E04_PERF_MODE2                                         0xF0FFFFFF
+#define   S_036E04_PERF_MODE3(x)                                      (((x) & 0x0F) << 28)
+#define   G_036E04_PERF_MODE3(x)                                      (((x) >> 28) & 0x0F)
+#define   C_036E04_PERF_MODE3                                         0x0FFFFFFF
+#define R_036E08_TCC_PERFCOUNTER1_SELECT                                0x036E08
+#define R_036E0C_TCC_PERFCOUNTER1_SELECT1                               0x036E0C
+#define R_036E10_TCC_PERFCOUNTER2_SELECT                                0x036E10
+#define R_036E14_TCC_PERFCOUNTER3_SELECT                                0x036E14
+#define R_036E40_TCA_PERFCOUNTER0_SELECT                                0x036E40
+#define   S_036E40_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_036E40_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_036E40_PERF_SEL                                           0xFFFFFC00
+#define   S_036E40_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036E40_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036E40_PERF_SEL1                                          0xFFF003FF
+#define   S_036E40_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_036E40_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_036E40_CNTR_MODE                                          0xFF0FFFFF
+#define   S_036E40_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_036E40_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036E40_PERF_MODE1                                         0xF0FFFFFF
+#define   S_036E40_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_036E40_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_036E40_PERF_MODE                                          0x0FFFFFFF
+#define R_036E44_TCA_PERFCOUNTER0_SELECT1                               0x036E44
+#define   S_036E44_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_036E44_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_036E44_PERF_SEL2                                          0xFFFFFC00
+#define   S_036E44_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_036E44_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_036E44_PERF_SEL3                                          0xFFF003FF
+#define   S_036E44_PERF_MODE2(x)                                      (((x) & 0x0F) << 24)
+#define   G_036E44_PERF_MODE2(x)                                      (((x) >> 24) & 0x0F)
+#define   C_036E44_PERF_MODE2                                         0xF0FFFFFF
+#define   S_036E44_PERF_MODE3(x)                                      (((x) & 0x0F) << 28)
+#define   G_036E44_PERF_MODE3(x)                                      (((x) >> 28) & 0x0F)
+#define   C_036E44_PERF_MODE3                                         0x0FFFFFFF
+#define R_036E48_TCA_PERFCOUNTER1_SELECT                                0x036E48
+#define R_036E4C_TCA_PERFCOUNTER1_SELECT1                               0x036E4C
+#define R_036E50_TCA_PERFCOUNTER2_SELECT                                0x036E50
+#define R_036E54_TCA_PERFCOUNTER3_SELECT                                0x036E54
+#define R_037000_CB_PERFCOUNTER_FILTER                                  0x037000
+#define   S_037000_OP_FILTER_ENABLE(x)                                (((x) & 0x1) << 0)
+#define   G_037000_OP_FILTER_ENABLE(x)                                (((x) >> 0) & 0x1)
+#define   C_037000_OP_FILTER_ENABLE                                   0xFFFFFFFE
+#define   S_037000_OP_FILTER_SEL(x)                                   (((x) & 0x07) << 1)
+#define   G_037000_OP_FILTER_SEL(x)                                   (((x) >> 1) & 0x07)
+#define   C_037000_OP_FILTER_SEL                                      0xFFFFFFF1
+#define   S_037000_FORMAT_FILTER_ENABLE(x)                            (((x) & 0x1) << 4)
+#define   G_037000_FORMAT_FILTER_ENABLE(x)                            (((x) >> 4) & 0x1)
+#define   C_037000_FORMAT_FILTER_ENABLE                               0xFFFFFFEF
+#define   S_037000_FORMAT_FILTER_SEL(x)                               (((x) & 0x1F) << 5)
+#define   G_037000_FORMAT_FILTER_SEL(x)                               (((x) >> 5) & 0x1F)
+#define   C_037000_FORMAT_FILTER_SEL                                  0xFFFFFC1F
+#define   S_037000_CLEAR_FILTER_ENABLE(x)                             (((x) & 0x1) << 10)
+#define   G_037000_CLEAR_FILTER_ENABLE(x)                             (((x) >> 10) & 0x1)
+#define   C_037000_CLEAR_FILTER_ENABLE                                0xFFFFFBFF
+#define   S_037000_CLEAR_FILTER_SEL(x)                                (((x) & 0x1) << 11)
+#define   G_037000_CLEAR_FILTER_SEL(x)                                (((x) >> 11) & 0x1)
+#define   C_037000_CLEAR_FILTER_SEL                                   0xFFFFF7FF
+#define   S_037000_MRT_FILTER_ENABLE(x)                               (((x) & 0x1) << 12)
+#define   G_037000_MRT_FILTER_ENABLE(x)                               (((x) >> 12) & 0x1)
+#define   C_037000_MRT_FILTER_ENABLE                                  0xFFFFEFFF
+#define   S_037000_MRT_FILTER_SEL(x)                                  (((x) & 0x07) << 13)
+#define   G_037000_MRT_FILTER_SEL(x)                                  (((x) >> 13) & 0x07)
+#define   C_037000_MRT_FILTER_SEL                                     0xFFFF1FFF
+#define   S_037000_NUM_SAMPLES_FILTER_ENABLE(x)                       (((x) & 0x1) << 17)
+#define   G_037000_NUM_SAMPLES_FILTER_ENABLE(x)                       (((x) >> 17) & 0x1)
+#define   C_037000_NUM_SAMPLES_FILTER_ENABLE                          0xFFFDFFFF
+#define   S_037000_NUM_SAMPLES_FILTER_SEL(x)                          (((x) & 0x07) << 18)
+#define   G_037000_NUM_SAMPLES_FILTER_SEL(x)                          (((x) >> 18) & 0x07)
+#define   C_037000_NUM_SAMPLES_FILTER_SEL                             0xFFE3FFFF
+#define   S_037000_NUM_FRAGMENTS_FILTER_ENABLE(x)                     (((x) & 0x1) << 21)
+#define   G_037000_NUM_FRAGMENTS_FILTER_ENABLE(x)                     (((x) >> 21) & 0x1)
+#define   C_037000_NUM_FRAGMENTS_FILTER_ENABLE                        0xFFDFFFFF
+#define   S_037000_NUM_FRAGMENTS_FILTER_SEL(x)                        (((x) & 0x03) << 22)
+#define   G_037000_NUM_FRAGMENTS_FILTER_SEL(x)                        (((x) >> 22) & 0x03)
+#define   C_037000_NUM_FRAGMENTS_FILTER_SEL                           0xFF3FFFFF
+#define R_037004_CB_PERFCOUNTER0_SELECT                                 0x037004
+#define   S_037004_PERF_SEL(x)                                        (((x) & 0x1FF) << 0)
+#define   G_037004_PERF_SEL(x)                                        (((x) >> 0) & 0x1FF)
+#define   C_037004_PERF_SEL                                           0xFFFFFE00
+#define   S_037004_PERF_SEL1(x)                                       (((x) & 0x1FF) << 10)
+#define   G_037004_PERF_SEL1(x)                                       (((x) >> 10) & 0x1FF)
+#define   C_037004_PERF_SEL1                                          0xFFF803FF
+#define   S_037004_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_037004_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_037004_CNTR_MODE                                          0xFF0FFFFF
+#define   S_037004_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_037004_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_037004_PERF_MODE1                                         0xF0FFFFFF
+#define   S_037004_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_037004_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_037004_PERF_MODE                                          0x0FFFFFFF
+#define R_037008_CB_PERFCOUNTER0_SELECT1                                0x037008
+#define   S_037008_PERF_SEL2(x)                                       (((x) & 0x1FF) << 0)
+#define   G_037008_PERF_SEL2(x)                                       (((x) >> 0) & 0x1FF)
+#define   C_037008_PERF_SEL2                                          0xFFFFFE00
+#define   S_037008_PERF_SEL3(x)                                       (((x) & 0x1FF) << 10)
+#define   G_037008_PERF_SEL3(x)                                       (((x) >> 10) & 0x1FF)
+#define   C_037008_PERF_SEL3                                          0xFFF803FF
+#define   S_037008_PERF_MODE3(x)                                      (((x) & 0x0F) << 24)
+#define   G_037008_PERF_MODE3(x)                                      (((x) >> 24) & 0x0F)
+#define   C_037008_PERF_MODE3                                         0xF0FFFFFF
+#define   S_037008_PERF_MODE2(x)                                      (((x) & 0x0F) << 28)
+#define   G_037008_PERF_MODE2(x)                                      (((x) >> 28) & 0x0F)
+#define   C_037008_PERF_MODE2                                         0x0FFFFFFF
+#define R_03700C_CB_PERFCOUNTER1_SELECT                                 0x03700C
+#define R_037010_CB_PERFCOUNTER2_SELECT                                 0x037010
+#define R_037014_CB_PERFCOUNTER3_SELECT                                 0x037014
+#define R_037100_DB_PERFCOUNTER0_SELECT                                 0x037100
+#define   S_037100_PERF_SEL(x)                                        (((x) & 0x3FF) << 0)
+#define   G_037100_PERF_SEL(x)                                        (((x) >> 0) & 0x3FF)
+#define   C_037100_PERF_SEL                                           0xFFFFFC00
+#define   S_037100_PERF_SEL1(x)                                       (((x) & 0x3FF) << 10)
+#define   G_037100_PERF_SEL1(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_037100_PERF_SEL1                                          0xFFF003FF
+#define   S_037100_CNTR_MODE(x)                                       (((x) & 0x0F) << 20)
+#define   G_037100_CNTR_MODE(x)                                       (((x) >> 20) & 0x0F)
+#define   C_037100_CNTR_MODE                                          0xFF0FFFFF
+#define   S_037100_PERF_MODE1(x)                                      (((x) & 0x0F) << 24)
+#define   G_037100_PERF_MODE1(x)                                      (((x) >> 24) & 0x0F)
+#define   C_037100_PERF_MODE1                                         0xF0FFFFFF
+#define   S_037100_PERF_MODE(x)                                       (((x) & 0x0F) << 28)
+#define   G_037100_PERF_MODE(x)                                       (((x) >> 28) & 0x0F)
+#define   C_037100_PERF_MODE                                          0x0FFFFFFF
+#define R_037104_DB_PERFCOUNTER0_SELECT1                                0x037104
+#define   S_037104_PERF_SEL2(x)                                       (((x) & 0x3FF) << 0)
+#define   G_037104_PERF_SEL2(x)                                       (((x) >> 0) & 0x3FF)
+#define   C_037104_PERF_SEL2                                          0xFFFFFC00
+#define   S_037104_PERF_SEL3(x)                                       (((x) & 0x3FF) << 10)
+#define   G_037104_PERF_SEL3(x)                                       (((x) >> 10) & 0x3FF)
+#define   C_037104_PERF_SEL3                                          0xFFF003FF
+#define   S_037104_PERF_MODE3(x)                                      (((x) & 0x0F) << 24)
+#define   G_037104_PERF_MODE3(x)                                      (((x) >> 24) & 0x0F)
+#define   C_037104_PERF_MODE3                                         0xF0FFFFFF
+#define   S_037104_PERF_MODE2(x)                                      (((x) & 0x0F) << 28)
+#define   G_037104_PERF_MODE2(x)                                      (((x) >> 28) & 0x0F)
+#define   C_037104_PERF_MODE2                                         0x0FFFFFFF
+#define R_037108_DB_PERFCOUNTER1_SELECT                                 0x037108
+#define R_03710C_DB_PERFCOUNTER1_SELECT1                                0x03710C
+#define R_037110_DB_PERFCOUNTER2_SELECT                                 0x037110
+#define R_037118_DB_PERFCOUNTER3_SELECT                                 0x037118
 #define R_028000_DB_RENDER_CONTROL                                      0x028000
 #define   S_028000_DEPTH_CLEAR_ENABLE(x)                              (((x) & 0x1) << 0)
 #define   G_028000_DEPTH_CLEAR_ENABLE(x)                              (((x) >> 0) & 0x1)