From: Nicolai Hähnle Date: Fri, 6 Nov 2015 21:43:58 +0000 (+0100) Subject: radeonsi/sid: add performance counter registers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=592928065cc606c5acfe0fc13ce71532bf5cf726;p=mesa.git radeonsi/sid: add performance counter registers Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeonsi/sid.h b/src/gallium/drivers/radeonsi/sid.h index 4e03ceb7583..d2648e93c14 100644 --- a/src/gallium/drivers/radeonsi/sid.h +++ b/src/gallium/drivers/radeonsi/sid.h @@ -3730,6 +3730,1019 @@ #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)