1 /* 2 * Copyright 2010 Jerome Glisse <[email protected]> 3 * Authors: 4 * Jerome Glisse 5 * SPDX-License-Identifier: MIT 6 */ 7 8 #ifndef R700_SQ_H 9 #define R700_SQ_H 10 11 #define P_SQ_CF_WORD0 12 #define S_SQ_CF_WORD0_ADDR(x) (((unsigned)(x) & 0xFFFFFFFF) << 0) 13 #define G_SQ_CF_WORD0_ADDR(x) (((x) >> 0) & 0xFFFFFFFF) 14 #define C_SQ_CF_WORD0_ADDR 0x00000000 15 #define P_SQ_CF_WORD1 16 #define S_SQ_CF_WORD1_POP_COUNT(x) (((unsigned)(x) & 0x7) << 0) 17 #define G_SQ_CF_WORD1_POP_COUNT(x) (((x) >> 0) & 0x7) 18 #define C_SQ_CF_WORD1_POP_COUNT 0xFFFFFFF8 19 #define S_SQ_CF_WORD1_CF_CONST(x) (((unsigned)(x) & 0x1F) << 3) 20 #define G_SQ_CF_WORD1_CF_CONST(x) (((x) >> 3) & 0x1F) 21 #define C_SQ_CF_WORD1_CF_CONST 0xFFFFFF07 22 #define S_SQ_CF_WORD1_COND(x) (((unsigned)(x) & 0x3) << 8) 23 #define G_SQ_CF_WORD1_COND(x) (((x) >> 8) & 0x3) 24 #define C_SQ_CF_WORD1_COND 0xFFFFFCFF 25 #define S_SQ_CF_WORD1_COUNT(x) (((unsigned)(x) & 0x7) << 10) 26 #define G_SQ_CF_WORD1_COUNT(x) (((x) >> 10) & 0x7) 27 #define C_SQ_CF_WORD1_COUNT 0xFFFFE3FF 28 #define S_SQ_CF_WORD1_CALL_COUNT(x) (((unsigned)(x) & 0x3F) << 13) 29 #define G_SQ_CF_WORD1_CALL_COUNT(x) (((x) >> 13) & 0x3F) 30 #define C_SQ_CF_WORD1_CALL_COUNT 0xFFF81FFF 31 #define S_SQ_CF_WORD1_END_OF_PROGRAM(x) (((unsigned)(x) & 0x1) << 21) 32 #define G_SQ_CF_WORD1_END_OF_PROGRAM(x) (((x) >> 21) & 0x1) 33 #define C_SQ_CF_WORD1_END_OF_PROGRAM 0xFFDFFFFF 34 #define S_SQ_CF_WORD1_VALID_PIXEL_MODE(x) (((unsigned)(x) & 0x1) << 22) 35 #define G_SQ_CF_WORD1_VALID_PIXEL_MODE(x) (((x) >> 22) & 0x1) 36 #define C_SQ_CF_WORD1_VALID_PIXEL_MODE 0xFFBFFFFF 37 #define S_SQ_CF_WORD1_CF_INST(x) (((unsigned)(x) & 0x7F) << 23) 38 #define G_SQ_CF_WORD1_CF_INST(x) (((x) >> 23) & 0x7F) 39 #define C_SQ_CF_WORD1_CF_INST 0xC07FFFFF 40 #define S_SQ_CF_WORD1_WHOLE_QUAD_MODE(x) (((unsigned)(x) & 0x1) << 30) 41 #define G_SQ_CF_WORD1_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1) 42 #define C_SQ_CF_WORD1_WHOLE_QUAD_MODE 0xBFFFFFFF 43 #define S_SQ_CF_WORD1_BARRIER(x) (((unsigned)(x) & 0x1) << 31) 44 #define G_SQ_CF_WORD1_BARRIER(x) (((x) >> 31) & 0x1) 45 #define C_SQ_CF_WORD1_BARRIER 0x7FFFFFFF 46 #define S_SQ_CF_WORD1_COUNT_3(x) (((unsigned)(x) & 0x1) << 19) 47 #define G_SQ_CF_WORD1_COUNT_3(x) (((x) >> 19) & 0x1) 48 #define C_SQ_CF_WORD1_COUNT_3 0xFFF7FFFF 49 #define P_SQ_CF_ALU_WORD0 50 #define S_SQ_CF_ALU_WORD0_ADDR(x) (((unsigned)(x) & 0x3FFFFF) << 0) 51 #define G_SQ_CF_ALU_WORD0_ADDR(x) (((x) >> 0) & 0x3FFFFF) 52 #define C_SQ_CF_ALU_WORD0_ADDR 0xFFC00000 53 #define S_SQ_CF_ALU_WORD0_KCACHE_BANK0(x) (((unsigned)(x) & 0xF) << 22) 54 #define G_SQ_CF_ALU_WORD0_KCACHE_BANK0(x) (((x) >> 22) & 0xF) 55 #define C_SQ_CF_ALU_WORD0_KCACHE_BANK0 0xFC3FFFFF 56 #define S_SQ_CF_ALU_WORD0_KCACHE_BANK1(x) (((unsigned)(x) & 0xF) << 26) 57 #define G_SQ_CF_ALU_WORD0_KCACHE_BANK1(x) (((x) >> 26) & 0xF) 58 #define C_SQ_CF_ALU_WORD0_KCACHE_BANK1 0xC3FFFFFF 59 #define S_SQ_CF_ALU_WORD0_KCACHE_MODE0(x) (((unsigned)(x) & 0x3) << 30) 60 #define G_SQ_CF_ALU_WORD0_KCACHE_MODE0(x) (((x) >> 30) & 0x3) 61 #define C_SQ_CF_ALU_WORD0_KCACHE_MODE0 0x3FFFFFFF 62 #define P_SQ_CF_ALU_WORD1 63 #define S_SQ_CF_ALU_WORD1_KCACHE_MODE1(x) (((unsigned)(x) & 0x3) << 0) 64 #define G_SQ_CF_ALU_WORD1_KCACHE_MODE1(x) (((x) >> 0) & 0x3) 65 #define C_SQ_CF_ALU_WORD1_KCACHE_MODE1 0xFFFFFFFC 66 #define S_SQ_CF_ALU_WORD1_KCACHE_ADDR0(x) (((unsigned)(x) & 0xFF) << 2) 67 #define G_SQ_CF_ALU_WORD1_KCACHE_ADDR0(x) (((x) >> 2) & 0xFF) 68 #define C_SQ_CF_ALU_WORD1_KCACHE_ADDR0 0xFFFFFC03 69 #define S_SQ_CF_ALU_WORD1_KCACHE_ADDR1(x) (((unsigned)(x) & 0xFF) << 10) 70 #define G_SQ_CF_ALU_WORD1_KCACHE_ADDR1(x) (((x) >> 10) & 0xFF) 71 #define C_SQ_CF_ALU_WORD1_KCACHE_ADDR1 0xFFFC03FF 72 #define S_SQ_CF_ALU_WORD1_COUNT(x) (((unsigned)(x) & 0x7F) << 18) 73 #define G_SQ_CF_ALU_WORD1_COUNT(x) (((x) >> 18) & 0x7F) 74 #define C_SQ_CF_ALU_WORD1_COUNT 0xFE03FFFF 75 #define S_SQ_CF_ALU_WORD1_USES_WATERFALL(x) (((unsigned)(x) & 0x1) << 25) 76 #define G_SQ_CF_ALU_WORD1_USES_WATERFALL(x) (((x) >> 25) & 0x1) 77 #define C_SQ_CF_ALU_WORD1_USES_WATERFALL 0xFDFFFFFF 78 #define S_SQ_CF_ALU_WORD1_CF_INST(x) (((unsigned)(x) & 0xF) << 26) 79 #define G_SQ_CF_ALU_WORD1_CF_INST(x) (((x) >> 26) & 0xF) 80 #define C_SQ_CF_ALU_WORD1_CF_INST 0xC3FFFFFF 81 #define S_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE(x) (((unsigned)(x) & 0x1) << 30) 82 #define G_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1) 83 #define C_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE 0xBFFFFFFF 84 #define S_SQ_CF_ALU_WORD1_BARRIER(x) (((unsigned)(x) & 0x1) << 31) 85 #define G_SQ_CF_ALU_WORD1_BARRIER(x) (((x) >> 31) & 0x1) 86 #define C_SQ_CF_ALU_WORD1_BARRIER 0x7FFFFFFF 87 #define S_SQ_CF_ALU_WORD1_ALT_CONST(x) (((unsigned)(x) & 0x1) << 25) 88 #define G_SQ_CF_ALU_WORD1_ALT_CONST(x) (((x) >> 25) & 0x1) 89 #define C_SQ_CF_ALU_WORD1_ALT_CONST 0xFDFFFFFF 90 #define P_SQ_CF_ALLOC_EXPORT_WORD0 91 #define S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(x) (((unsigned)(x) & 0x1FFF) << 0) 92 #define G_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(x) (((x) >> 0) & 0x1FFF) 93 #define C_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE 0xFFFFE000 94 #define S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(x) (((unsigned)(x) & 0x3) << 13) 95 #define G_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(x) (((x) >> 13) & 0x3) 96 #define C_SQ_CF_ALLOC_EXPORT_WORD0_TYPE 0xFFFF9FFF 97 #define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PIXEL 0x00000000 98 #define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_POS 0x00000001 99 #define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PARAM 0x00000002 100 #define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_SX 0x00000003 101 #define S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(x) (((unsigned)(x) & 0x7F) << 15) 102 #define G_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(x) (((x) >> 15) & 0x7F) 103 #define C_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR 0xFFC07FFF 104 #define S_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL(x) (((unsigned)(x) & 0x1) << 22) 105 #define G_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL(x) (((x) >> 22) & 0x1) 106 #define C_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL 0xFFBFFFFF 107 #define S_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(x) (((unsigned)(x) & 0x7F) << 23) 108 #define G_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(x) (((x) >> 23) & 0x7F) 109 #define C_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR 0xC07FFFFF 110 #define S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(x) (((unsigned)(x) & 0x3) << 30) 111 #define G_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(x) (((x) >> 30) & 0x3) 112 #define C_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE 0x3FFFFFFF 113 #define P_SQ_CF_ALLOC_EXPORT_WORD1 114 #define S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(x) (((unsigned)(x) & 0xF) << 17) 115 #define G_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(x) (((x) >> 17) & 0xF) 116 #define C_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT 0xFFE1FFFF 117 #define S_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(x) (((unsigned)(x) & 0x1) << 21) 118 #define G_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(x) (((x) >> 21) & 0x1) 119 #define C_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM 0xFFDFFFFF 120 #define S_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE(x) (((unsigned)(x) & 0x1) << 22) 121 #define G_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE(x) (((x) >> 22) & 0x1) 122 #define C_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE 0xFFBFFFFF 123 #define S_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(x) (((unsigned)(x) & 0x7F) << 23) 124 #define G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(x) (((x) >> 23) & 0x7F) 125 #define C_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST 0xC07FFFFF 126 #define S_SQ_CF_ALLOC_EXPORT_WORD1_WHOLE_QUAD_MODE(x) (((unsigned)(x) & 0x1) << 30) 127 #define G_SQ_CF_ALLOC_EXPORT_WORD1_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1) 128 #define C_SQ_CF_ALLOC_EXPORT_WORD1_WHOLE_QUAD_MODE 0xBFFFFFFF 129 #define S_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(x) (((unsigned)(x) & 0x1) << 31) 130 #define G_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(x) (((x) >> 31) & 0x1) 131 #define C_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER 0x7FFFFFFF 132 #define P_SQ_CF_ALLOC_EXPORT_WORD1_BUF 133 #define S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(x) (((unsigned)(x) & 0xFFF) << 0) 134 #define G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(x) (((x) >> 0) & 0xFFF) 135 #define C_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE 0xFFFFF000 136 #define S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(x) (((unsigned)(x) & 0xF) << 12) 137 #define G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(x) (((x) >> 12) & 0xF) 138 #define C_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK 0xFFFF0FFF 139 #define P_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ 140 #define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(x) (((unsigned)(x) & 0x7) << 0) 141 #define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(x) (((x) >> 0) & 0x7) 142 #define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X 0xFFFFFFF8 143 #define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(x) (((unsigned)(x) & 0x7) << 3) 144 #define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(x) (((x) >> 3) & 0x7) 145 #define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y 0xFFFFFFC7 146 #define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(x) (((unsigned)(x) & 0x7) << 6) 147 #define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(x) (((x) >> 6) & 0x7) 148 #define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z 0xFFFFFE3F 149 #define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(x) (((unsigned)(x) & 0x7) << 9) 150 #define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(x) (((x) >> 9) & 0x7) 151 #define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W 0xFFFFF1FF 152 #define P_SQ_ALU_WORD0 153 #define S_SQ_ALU_WORD0_SRC0_SEL(x) (((unsigned)(x) & 0x1FF) << 0) 154 #define G_SQ_ALU_WORD0_SRC0_SEL(x) (((x) >> 0) & 0x1FF) 155 #define C_SQ_ALU_WORD0_SRC0_SEL 0xFFFFFE00 156 #define S_SQ_ALU_WORD0_SRC0_REL(x) (((unsigned)(x) & 0x1) << 9) 157 #define G_SQ_ALU_WORD0_SRC0_REL(x) (((x) >> 9) & 0x1) 158 #define C_SQ_ALU_WORD0_SRC0_REL 0xFFFFFDFF 159 #define S_SQ_ALU_WORD0_SRC0_CHAN(x) (((unsigned)(x) & 0x3) << 10) 160 #define G_SQ_ALU_WORD0_SRC0_CHAN(x) (((x) >> 10) & 0x3) 161 #define C_SQ_ALU_WORD0_SRC0_CHAN 0xFFFFF3FF 162 #define S_SQ_ALU_WORD0_SRC0_NEG(x) (((unsigned)(x) & 0x1) << 12) 163 #define G_SQ_ALU_WORD0_SRC0_NEG(x) (((x) >> 12) & 0x1) 164 #define C_SQ_ALU_WORD0_SRC0_NEG 0xFFFFEFFF 165 #define S_SQ_ALU_WORD0_SRC1_SEL(x) (((unsigned)(x) & 0x1FF) << 13) 166 #define G_SQ_ALU_WORD0_SRC1_SEL(x) (((x) >> 13) & 0x1FF) 167 #define C_SQ_ALU_WORD0_SRC1_SEL 0xFFC01FFF 168 #define S_SQ_ALU_WORD0_SRC1_REL(x) (((unsigned)(x) & 0x1) << 22) 169 #define G_SQ_ALU_WORD0_SRC1_REL(x) (((x) >> 22) & 0x1) 170 #define C_SQ_ALU_WORD0_SRC1_REL 0xFFBFFFFF 171 #define S_SQ_ALU_WORD0_SRC1_CHAN(x) (((unsigned)(x) & 0x3) << 23) 172 #define G_SQ_ALU_WORD0_SRC1_CHAN(x) (((x) >> 23) & 0x3) 173 #define C_SQ_ALU_WORD0_SRC1_CHAN 0xFE7FFFFF 174 #define S_SQ_ALU_WORD0_SRC1_NEG(x) (((unsigned)(x) & 0x1) << 25) 175 #define G_SQ_ALU_WORD0_SRC1_NEG(x) (((x) >> 25) & 0x1) 176 #define C_SQ_ALU_WORD0_SRC1_NEG 0xFDFFFFFF 177 #define S_SQ_ALU_WORD0_INDEX_MODE(x) (((unsigned)(x) & 0x7) << 26) 178 #define G_SQ_ALU_WORD0_INDEX_MODE(x) (((x) >> 26) & 0x7) 179 #define C_SQ_ALU_WORD0_INDEX_MODE 0xE3FFFFFF 180 #define S_SQ_ALU_WORD0_PRED_SEL(x) (((unsigned)(x) & 0x3) << 29) 181 #define G_SQ_ALU_WORD0_PRED_SEL(x) (((x) >> 29) & 0x3) 182 #define C_SQ_ALU_WORD0_PRED_SEL 0x9FFFFFFF 183 #define S_SQ_ALU_WORD0_LAST(x) (((unsigned)(x) & 0x1) << 31) 184 #define G_SQ_ALU_WORD0_LAST(x) (((x) >> 31) & 0x1) 185 #define C_SQ_ALU_WORD0_LAST 0x7FFFFFFF 186 #define P_SQ_ALU_WORD1 187 #define S_SQ_ALU_WORD1_ENCODING(x) (((unsigned)(x) & 0x7) << 15) 188 #define G_SQ_ALU_WORD1_ENCODING(x) (((x) >> 15) & 0x7) 189 #define C_SQ_ALU_WORD1_ENCODING 0xFFFC7FFF 190 #define S_SQ_ALU_WORD1_BANK_SWIZZLE(x) (((unsigned)(x) & 0x7) << 18) 191 #define G_SQ_ALU_WORD1_BANK_SWIZZLE(x) (((x) >> 18) & 0x7) 192 #define C_SQ_ALU_WORD1_BANK_SWIZZLE 0xFFE3FFFF 193 #define S_SQ_ALU_WORD1_DST_GPR(x) (((unsigned)(x) & 0x7F) << 21) 194 #define G_SQ_ALU_WORD1_DST_GPR(x) (((x) >> 21) & 0x7F) 195 #define C_SQ_ALU_WORD1_DST_GPR 0xF01FFFFF 196 #define S_SQ_ALU_WORD1_DST_REL(x) (((unsigned)(x) & 0x1) << 28) 197 #define G_SQ_ALU_WORD1_DST_REL(x) (((x) >> 28) & 0x1) 198 #define C_SQ_ALU_WORD1_DST_REL 0xEFFFFFFF 199 #define S_SQ_ALU_WORD1_DST_CHAN(x) (((unsigned)(x) & 0x3) << 29) 200 #define G_SQ_ALU_WORD1_DST_CHAN(x) (((x) >> 29) & 0x3) 201 #define C_SQ_ALU_WORD1_DST_CHAN 0x9FFFFFFF 202 #define S_SQ_ALU_WORD1_CLAMP(x) (((unsigned)(x) & 0x1) << 31) 203 #define G_SQ_ALU_WORD1_CLAMP(x) (((x) >> 31) & 0x1) 204 #define C_SQ_ALU_WORD1_CLAMP 0x7FFFFFFF 205 #define P_SQ_ALU_WORD1_OP2 206 #define S_SQ_ALU_WORD1_OP2_SRC0_ABS(x) (((unsigned)(x) & 0x1) << 0) 207 #define G_SQ_ALU_WORD1_OP2_SRC0_ABS(x) (((x) >> 0) & 0x1) 208 #define C_SQ_ALU_WORD1_OP2_SRC0_ABS 0xFFFFFFFE 209 #define S_SQ_ALU_WORD1_OP2_SRC1_ABS(x) (((unsigned)(x) & 0x1) << 1) 210 #define G_SQ_ALU_WORD1_OP2_SRC1_ABS(x) (((x) >> 1) & 0x1) 211 #define C_SQ_ALU_WORD1_OP2_SRC1_ABS 0xFFFFFFFD 212 #define S_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK(x) (((unsigned)(x) & 0x1) << 2) 213 #define G_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK(x) (((x) >> 2) & 0x1) 214 #define C_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK 0xFFFFFFFB 215 #define S_SQ_ALU_WORD1_OP2_UPDATE_PRED(x) (((unsigned)(x) & 0x1) << 3) 216 #define G_SQ_ALU_WORD1_OP2_UPDATE_PRED(x) (((x) >> 3) & 0x1) 217 #define C_SQ_ALU_WORD1_OP2_UPDATE_PRED 0xFFFFFFF7 218 #define S_SQ_ALU_WORD1_OP2_WRITE_MASK(x) (((unsigned)(x) & 0x1) << 4) 219 #define G_SQ_ALU_WORD1_OP2_WRITE_MASK(x) (((x) >> 4) & 0x1) 220 #define C_SQ_ALU_WORD1_OP2_WRITE_MASK 0xFFFFFFEF 221 #define S_SQ_ALU_WORD1_OP2_OMOD(x) (((unsigned)(x) & 0x3) << 5) 222 #define G_SQ_ALU_WORD1_OP2_OMOD(x) (((x) >> 5) & 0x3) 223 #define C_SQ_ALU_WORD1_OP2_OMOD 0xFFFFFF9F 224 #define S_SQ_ALU_WORD1_OP2_ALU_INST(x) (((unsigned)(x) & 0x7FF) << 7) 225 #define G_SQ_ALU_WORD1_OP2_ALU_INST(x) (((x) >> 7) & 0x7FF) 226 #define C_SQ_ALU_WORD1_OP2_ALU_INST 0xFFFC007F 227 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_ADD 0x00000000 228 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MUL 0x00000001 229 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MUL_IEEE 0x00000002 230 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX 0x00000003 231 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN 0x00000004 232 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX_DX10 0x00000005 233 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN_DX10 0x00000006 234 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE 0x00000008 235 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT 0x00000009 236 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE 0x0000000A 237 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE 0x0000000B 238 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE_DX10 0x0000000C 239 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_DX10 0x0000000D 240 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_DX10 0x0000000E 241 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE_DX10 0x0000000F 242 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FRACT 0x00000010 243 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_TRUNC 0x00000011 244 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_CEIL 0x00000012 245 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RNDNE 0x00000013 246 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLOOR 0x00000014 247 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA 0x00000015 248 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_FLOOR 0x00000016 249 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_INT 0x00000018 250 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV 0x00000019 251 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP 0x0000001A 252 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_UINT 0x0000001E 253 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_UINT 0x0000001F 254 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE 0x00000020 255 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT 0x00000021 256 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE 0x00000022 257 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE 0x00000023 258 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_INV 0x00000024 259 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_POP 0x00000025 260 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_CLR 0x00000026 261 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_RESTORE 0x00000027 262 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE_PUSH 0x00000028 263 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_PUSH 0x00000029 264 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_PUSH 0x0000002A 265 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE_PUSH 0x0000002B 266 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLE 0x0000002C 267 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGT 0x0000002D 268 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGE 0x0000002E 269 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLNE 0x0000002F 270 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_AND_INT 0x00000030 271 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_OR_INT 0x00000031 272 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_XOR_INT 0x00000032 273 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOT_INT 0x00000033 274 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_ADD_INT 0x00000034 275 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SUB_INT 0x00000035 276 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX_INT 0x00000036 277 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN_INT 0x00000037 278 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX_UINT 0x00000038 279 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN_UINT 0x00000039 280 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE_INT 0x0000003A 281 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_INT 0x0000003B 282 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_INT 0x0000003C 283 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE_INT 0x0000003D 284 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_UINT 0x0000003E 285 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_UINT 0x0000003F 286 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGT_UINT 0x00000040 287 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGE_UINT 0x00000041 288 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE_INT 0x00000042 289 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_INT 0x00000043 290 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_INT 0x00000044 291 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE_INT 0x00000045 292 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLE_INT 0x00000046 293 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGT_INT 0x00000047 294 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGE_INT 0x00000048 295 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLNE_INT 0x00000049 296 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE_PUSH_INT 0x0000004A 297 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_PUSH_INT 0x0000004B 298 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_PUSH_INT 0x0000004C 299 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE_PUSH_INT 0x0000004D 300 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETLT_PUSH_INT 0x0000004E 301 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETLE_PUSH_INT 0x0000004F 302 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_DOT4 0x00000050 303 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_DOT4_IEEE 0x00000051 304 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_CUBE 0x00000052 305 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX4 0x00000053 306 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_GPR_INT 0x00000060 307 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_EXP_IEEE 0x00000061 308 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LOG_CLAMPED 0x00000062 309 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LOG_IEEE 0x00000063 310 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_CLAMPED 0x00000064 311 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_FF 0x00000065 312 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_IEEE 0x00000066 313 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_CLAMPED 0x00000067 314 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_FF 0x00000068 315 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_IEEE 0x00000069 316 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SQRT_IEEE 0x0000006A 317 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT 0x0000006B 318 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_INT_TO_FLT 0x0000006C 319 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_UINT_TO_FLT 0x0000006D 320 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SIN 0x0000006E 321 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_COS 0x0000006F 322 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_ASHR_INT 0x00000070 323 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LSHR_INT 0x00000071 324 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LSHL_INT 0x00000072 325 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_INT 0x00000073 326 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULHI_INT 0x00000074 327 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT 0x00000075 328 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULHI_UINT 0x00000076 329 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_INT 0x00000077 330 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_UINT 0x00000078 331 #define V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_UINT 0x00000079 332 #define P_SQ_ALU_WORD1_OP3 333 #define S_SQ_ALU_WORD1_OP3_SRC2_SEL(x) (((unsigned)(x) & 0x1FF) << 0) 334 #define G_SQ_ALU_WORD1_OP3_SRC2_SEL(x) (((x) >> 0) & 0x1FF) 335 #define C_SQ_ALU_WORD1_OP3_SRC2_SEL 0xFFFFFE00 336 #define S_SQ_ALU_WORD1_OP3_SRC2_REL(x) (((unsigned)(x) & 0x1) << 9) 337 #define G_SQ_ALU_WORD1_OP3_SRC2_REL(x) (((x) >> 9) & 0x1) 338 #define C_SQ_ALU_WORD1_OP3_SRC2_REL 0xFFFFFDFF 339 #define S_SQ_ALU_WORD1_OP3_SRC2_CHAN(x) (((unsigned)(x) & 0x3) << 10) 340 #define G_SQ_ALU_WORD1_OP3_SRC2_CHAN(x) (((x) >> 10) & 0x3) 341 #define C_SQ_ALU_WORD1_OP3_SRC2_CHAN 0xFFFFF3FF 342 #define S_SQ_ALU_WORD1_OP3_SRC2_NEG(x) (((unsigned)(x) & 0x1) << 12) 343 #define G_SQ_ALU_WORD1_OP3_SRC2_NEG(x) (((x) >> 12) & 0x1) 344 #define C_SQ_ALU_WORD1_OP3_SRC2_NEG 0xFFFFEFFF 345 #define S_SQ_ALU_WORD1_OP3_ALU_INST(x) (((unsigned)(x) & 0x1F) << 13) 346 #define G_SQ_ALU_WORD1_OP3_ALU_INST(x) (((x) >> 13) & 0x1F) 347 #define C_SQ_ALU_WORD1_OP3_ALU_INST 0xFFFC1FFF 348 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT 0x0000000C 349 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT_M2 0x0000000D 350 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT_M4 0x0000000E 351 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT_D2 0x0000000F 352 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD 0x00000010 353 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_M2 0x00000011 354 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_M4 0x00000012 355 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_D2 0x00000013 356 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE 0x00000014 357 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE_M2 0x00000015 358 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE_M4 0x00000016 359 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE_D2 0x00000017 360 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDE 0x00000018 361 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGT 0x00000019 362 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGE 0x0000001A 363 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDE_INT 0x0000001C 364 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGT_INT 0x0000001D 365 #define V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGE_INT 0x0000001E 366 #define P_SQ_VTX_WORD0 367 #define S_SQ_VTX_WORD0_VTX_INST(x) (((unsigned)(x) & 0x1F) << 0) 368 #define G_SQ_VTX_WORD0_VTX_INST(x) (((x) >> 0) & 0x1F) 369 #define C_SQ_VTX_WORD0_VTX_INST 0xFFFFFFE0 370 #define S_SQ_VTX_WORD0_FETCH_TYPE(x) (((unsigned)(x) & 0x3) << 5) 371 #define G_SQ_VTX_WORD0_FETCH_TYPE(x) (((x) >> 5) & 0x3) 372 #define C_SQ_VTX_WORD0_FETCH_TYPE 0xFFFFFF9F 373 #define S_SQ_VTX_WORD0_FETCH_WHOLE_QUAD(x) (((unsigned)(x) & 0x1) << 7) 374 #define G_SQ_VTX_WORD0_FETCH_WHOLE_QUAD(x) (((x) >> 7) & 0x1) 375 #define C_SQ_VTX_WORD0_FETCH_WHOLE_QUAD 0xFFFFFF7F 376 #define S_SQ_VTX_WORD0_BUFFER_ID(x) (((unsigned)(x) & 0xFF) << 8) 377 #define G_SQ_VTX_WORD0_BUFFER_ID(x) (((x) >> 8) & 0xFF) 378 #define C_SQ_VTX_WORD0_BUFFER_ID 0xFFFF00FF 379 #define S_SQ_VTX_WORD0_SRC_GPR(x) (((unsigned)(x) & 0x7F) << 16) 380 #define G_SQ_VTX_WORD0_SRC_GPR(x) (((x) >> 16) & 0x7F) 381 #define C_SQ_VTX_WORD0_SRC_GPR 0xFF80FFFF 382 #define S_SQ_VTX_WORD0_SRC_REL(x) (((unsigned)(x) & 0x1) << 23) 383 #define G_SQ_VTX_WORD0_SRC_REL(x) (((x) >> 23) & 0x1) 384 #define C_SQ_VTX_WORD0_SRC_REL 0xFF7FFFFF 385 #define S_SQ_VTX_WORD0_SRC_SEL_X(x) (((unsigned)(x) & 0x3) << 24) 386 #define G_SQ_VTX_WORD0_SRC_SEL_X(x) (((x) >> 24) & 0x3) 387 #define C_SQ_VTX_WORD0_SRC_SEL_X 0xFCFFFFFF 388 #define S_SQ_VTX_WORD0_MEGA_FETCH_COUNT(x) (((unsigned)(x) & 0x3F) << 26) 389 #define G_SQ_VTX_WORD0_MEGA_FETCH_COUNT(x) (((x) >> 26) & 0x3F) 390 #define C_SQ_VTX_WORD0_MEGA_FETCH_COUNT 0x03FFFFFF 391 #define P_SQ_VTX_WORD1 392 #define S_SQ_VTX_WORD1_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 9) 393 #define G_SQ_VTX_WORD1_DST_SEL_X(x) (((x) >> 9) & 0x7) 394 #define C_SQ_VTX_WORD1_DST_SEL_X 0xFFFFF1FF 395 #define S_SQ_VTX_WORD1_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 12) 396 #define G_SQ_VTX_WORD1_DST_SEL_Y(x) (((x) >> 12) & 0x7) 397 #define C_SQ_VTX_WORD1_DST_SEL_Y 0xFFFF8FFF 398 #define S_SQ_VTX_WORD1_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 15) 399 #define G_SQ_VTX_WORD1_DST_SEL_Z(x) (((x) >> 15) & 0x7) 400 #define C_SQ_VTX_WORD1_DST_SEL_Z 0xFFFC7FFF 401 #define S_SQ_VTX_WORD1_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 18) 402 #define G_SQ_VTX_WORD1_DST_SEL_W(x) (((x) >> 18) & 0x7) 403 #define C_SQ_VTX_WORD1_DST_SEL_W 0xFFE3FFFF 404 #define S_SQ_VTX_WORD1_USE_CONST_FIELDS(x) (((unsigned)(x) & 0x1) << 21) 405 #define G_SQ_VTX_WORD1_USE_CONST_FIELDS(x) (((x) >> 21) & 0x1) 406 #define C_SQ_VTX_WORD1_USE_CONST_FIELDS 0xFFDFFFFF 407 #define S_SQ_VTX_WORD1_DATA_FORMAT(x) (((unsigned)(x) & 0x3F) << 22) 408 #define G_SQ_VTX_WORD1_DATA_FORMAT(x) (((x) >> 22) & 0x3F) 409 #define C_SQ_VTX_WORD1_DATA_FORMAT 0xF03FFFFF 410 #define S_SQ_VTX_WORD1_NUM_FORMAT_ALL(x) (((unsigned)(x) & 0x3) << 28) 411 #define G_SQ_VTX_WORD1_NUM_FORMAT_ALL(x) (((x) >> 28) & 0x3) 412 #define C_SQ_VTX_WORD1_NUM_FORMAT_ALL 0xCFFFFFFF 413 #define S_SQ_VTX_WORD1_FORMAT_COMP_ALL(x) (((unsigned)(x) & 0x1) << 30) 414 #define G_SQ_VTX_WORD1_FORMAT_COMP_ALL(x) (((x) >> 30) & 0x1) 415 #define C_SQ_VTX_WORD1_FORMAT_COMP_ALL 0xBFFFFFFF 416 #define S_SQ_VTX_WORD1_SRF_MODE_ALL(x) (((unsigned)(x) & 0x1) << 31) 417 #define G_SQ_VTX_WORD1_SRF_MODE_ALL(x) (((x) >> 31) & 0x1) 418 #define C_SQ_VTX_WORD1_SRF_MODE_ALL 0x7FFFFFFF 419 #define P_SQ_VTX_WORD1_GPR 420 #define S_SQ_VTX_WORD1_GPR_DST_GPR(x) (((unsigned)(x) & 0x7F) << 0) 421 #define G_SQ_VTX_WORD1_GPR_DST_GPR(x) (((x) >> 0) & 0x7F) 422 #define C_SQ_VTX_WORD1_GPR_DST_GPR 0xFFFFFF80 423 #define S_SQ_VTX_WORD1_GPR_DST_REL(x) (((unsigned)(x) & 0x1) << 7) 424 #define G_SQ_VTX_WORD1_GPR_DST_REL(x) (((x) >> 7) & 0x1) 425 #define C_SQ_VTX_WORD1_GPR_DST_REL 0xFFFFFF7F 426 #define P_SQ_VTX_WORD1_SEM 427 #define S_SQ_VTX_WORD1_SEM_SEMANTIC_ID(x) (((unsigned)(x) & 0xFF) << 0) 428 #define G_SQ_VTX_WORD1_SEM_SEMANTIC_ID(x) (((x) >> 0) & 0xFF) 429 #define C_SQ_VTX_WORD1_SEM_SEMANTIC_ID 0xFFFFFF00 430 #define P_SQ_VTX_WORD2 431 #define S_SQ_VTX_WORD2_OFFSET(x) (((unsigned)(x) & 0xFFFF) << 0) 432 #define G_SQ_VTX_WORD2_OFFSET(x) (((x) >> 0) & 0xFFFF) 433 #define C_SQ_VTX_WORD2_OFFSET 0xFFFF0000 434 #define S_SQ_VTX_WORD2_ENDIAN_SWAP(x) (((unsigned)(x) & 0x3) << 16) 435 #define G_SQ_VTX_WORD2_ENDIAN_SWAP(x) (((x) >> 16) & 0x3) 436 #define C_SQ_VTX_WORD2_ENDIAN_SWAP 0xFFFCFFFF 437 #define S_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE(x) (((unsigned)(x) & 0x1) << 18) 438 #define G_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE(x) (((x) >> 18) & 0x1) 439 #define C_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE 0xFFFBFFFF 440 #define S_SQ_VTX_WORD2_MEGA_FETCH(x) (((unsigned)(x) & 0x1) << 19) 441 #define G_SQ_VTX_WORD2_MEGA_FETCH(x) (((x) >> 19) & 0x1) 442 #define C_SQ_VTX_WORD2_MEGA_FETCH 0xFFF7FFFF 443 #define S_SQ_VTX_WORD2_ALT_CONST(x) (((unsigned)(x) & 0x1) << 20) 444 #define G_SQ_VTX_WORD2_ALT_CONST(x) (((x) >> 20) & 0x1) 445 #define C_SQ_VTX_WORD2_ALT_CONST 0xFFEFFFFF 446 #define P_SQ_TEX_WORD0 447 #define S_SQ_TEX_WORD0_TEX_INST(x) (((unsigned)(x) & 0x1F) << 0) 448 #define G_SQ_TEX_WORD0_TEX_INST(x) (((x) >> 0) & 0x1F) 449 #define C_SQ_TEX_WORD0_TEX_INST 0xFFFFFFE0 450 #define S_SQ_TEX_WORD0_BC_FRAC_MODE(x) (((unsigned)(x) & 0x1) << 5) 451 #define G_SQ_TEX_WORD0_BC_FRAC_MODE(x) (((x) >> 5) & 0x1) 452 #define C_SQ_TEX_WORD0_BC_FRAC_MODE 0xFFFFFFDF 453 #define S_SQ_TEX_WORD0_FETCH_WHOLE_QUAD(x) (((unsigned)(x) & 0x1) << 7) 454 #define G_SQ_TEX_WORD0_FETCH_WHOLE_QUAD(x) (((x) >> 7) & 0x1) 455 #define C_SQ_TEX_WORD0_FETCH_WHOLE_QUAD 0xFFFFFF7F 456 #define S_SQ_TEX_WORD0_RESOURCE_ID(x) (((unsigned)(x) & 0xFF) << 8) 457 #define G_SQ_TEX_WORD0_RESOURCE_ID(x) (((x) >> 8) & 0xFF) 458 #define C_SQ_TEX_WORD0_RESOURCE_ID 0xFFFF00FF 459 #define S_SQ_TEX_WORD0_SRC_GPR(x) (((unsigned)(x) & 0x7F) << 16) 460 #define G_SQ_TEX_WORD0_SRC_GPR(x) (((x) >> 16) & 0x7F) 461 #define C_SQ_TEX_WORD0_SRC_GPR 0xFF80FFFF 462 #define S_SQ_TEX_WORD0_SRC_REL(x) (((unsigned)(x) & 0x1) << 23) 463 #define G_SQ_TEX_WORD0_SRC_REL(x) (((x) >> 23) & 0x1) 464 #define C_SQ_TEX_WORD0_SRC_REL 0xFF7FFFFF 465 #define S_SQ_TEX_WORD0_ALT_CONST(x) (((unsigned)(x) & 0x1) << 24) 466 #define G_SQ_TEX_WORD0_ALT_CONST(x) (((x) >> 24) & 0x1) 467 #define C_SQ_TEX_WORD0_ALT_CONST 0xFEFFFFFF 468 #define P_SQ_TEX_WORD1 469 #define S_SQ_TEX_WORD1_DST_GPR(x) (((unsigned)(x) & 0x7F) << 0) 470 #define G_SQ_TEX_WORD1_DST_GPR(x) (((x) >> 0) & 0x7F) 471 #define C_SQ_TEX_WORD1_DST_GPR 0xFFFFFF80 472 #define S_SQ_TEX_WORD1_DST_REL(x) (((unsigned)(x) & 0x1) << 7) 473 #define G_SQ_TEX_WORD1_DST_REL(x) (((x) >> 7) & 0x1) 474 #define C_SQ_TEX_WORD1_DST_REL 0xFFFFFF7F 475 #define S_SQ_TEX_WORD1_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 9) 476 #define G_SQ_TEX_WORD1_DST_SEL_X(x) (((x) >> 9) & 0x7) 477 #define C_SQ_TEX_WORD1_DST_SEL_X 0xFFFFF1FF 478 #define S_SQ_TEX_WORD1_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 12) 479 #define G_SQ_TEX_WORD1_DST_SEL_Y(x) (((x) >> 12) & 0x7) 480 #define C_SQ_TEX_WORD1_DST_SEL_Y 0xFFFF8FFF 481 #define S_SQ_TEX_WORD1_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 15) 482 #define G_SQ_TEX_WORD1_DST_SEL_Z(x) (((x) >> 15) & 0x7) 483 #define C_SQ_TEX_WORD1_DST_SEL_Z 0xFFFC7FFF 484 #define S_SQ_TEX_WORD1_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 18) 485 #define G_SQ_TEX_WORD1_DST_SEL_W(x) (((x) >> 18) & 0x7) 486 #define C_SQ_TEX_WORD1_DST_SEL_W 0xFFE3FFFF 487 #define S_SQ_TEX_WORD1_LOD_BIAS(x) (((unsigned)(x) & 0x7F) << 21) 488 #define G_SQ_TEX_WORD1_LOD_BIAS(x) (((x) >> 21) & 0x7F) 489 #define C_SQ_TEX_WORD1_LOD_BIAS 0xF01FFFFF 490 #define S_SQ_TEX_WORD1_COORD_TYPE_X(x) (((unsigned)(x) & 0x1) << 28) 491 #define G_SQ_TEX_WORD1_COORD_TYPE_X(x) (((x) >> 28) & 0x1) 492 #define C_SQ_TEX_WORD1_COORD_TYPE_X 0xEFFFFFFF 493 #define S_SQ_TEX_WORD1_COORD_TYPE_Y(x) (((unsigned)(x) & 0x1) << 29) 494 #define G_SQ_TEX_WORD1_COORD_TYPE_Y(x) (((x) >> 29) & 0x1) 495 #define C_SQ_TEX_WORD1_COORD_TYPE_Y 0xDFFFFFFF 496 #define S_SQ_TEX_WORD1_COORD_TYPE_Z(x) (((unsigned)(x) & 0x1) << 30) 497 #define G_SQ_TEX_WORD1_COORD_TYPE_Z(x) (((x) >> 30) & 0x1) 498 #define C_SQ_TEX_WORD1_COORD_TYPE_Z 0xBFFFFFFF 499 #define S_SQ_TEX_WORD1_COORD_TYPE_W(x) (((unsigned)(x) & 0x1) << 31) 500 #define G_SQ_TEX_WORD1_COORD_TYPE_W(x) (((x) >> 31) & 0x1) 501 #define C_SQ_TEX_WORD1_COORD_TYPE_W 0x7FFFFFFF 502 #define P_SQ_TEX_WORD2 503 #define S_SQ_TEX_WORD2_OFFSET_X(x) (((unsigned)(x) & 0x1F) << 0) 504 #define G_SQ_TEX_WORD2_OFFSET_X(x) (((x) >> 0) & 0x1F) 505 #define C_SQ_TEX_WORD2_OFFSET_X 0xFFFFFFE0 506 #define S_SQ_TEX_WORD2_OFFSET_Y(x) (((unsigned)(x) & 0x1F) << 5) 507 #define G_SQ_TEX_WORD2_OFFSET_Y(x) (((x) >> 5) & 0x1F) 508 #define C_SQ_TEX_WORD2_OFFSET_Y 0xFFFFFC1F 509 #define S_SQ_TEX_WORD2_OFFSET_Z(x) (((unsigned)(x) & 0x1F) << 10) 510 #define G_SQ_TEX_WORD2_OFFSET_Z(x) (((x) >> 10) & 0x1F) 511 #define C_SQ_TEX_WORD2_OFFSET_Z 0xFFFF83FF 512 #define S_SQ_TEX_WORD2_SAMPLER_ID(x) (((unsigned)(x) & 0x1F) << 15) 513 #define G_SQ_TEX_WORD2_SAMPLER_ID(x) (((x) >> 15) & 0x1F) 514 #define C_SQ_TEX_WORD2_SAMPLER_ID 0xFFF07FFF 515 #define S_SQ_TEX_WORD2_SRC_SEL_X(x) (((unsigned)(x) & 0x7) << 20) 516 #define G_SQ_TEX_WORD2_SRC_SEL_X(x) (((x) >> 20) & 0x7) 517 #define C_SQ_TEX_WORD2_SRC_SEL_X 0xFF8FFFFF 518 #define S_SQ_TEX_WORD2_SRC_SEL_Y(x) (((unsigned)(x) & 0x7) << 23) 519 #define G_SQ_TEX_WORD2_SRC_SEL_Y(x) (((x) >> 23) & 0x7) 520 #define C_SQ_TEX_WORD2_SRC_SEL_Y 0xFC7FFFFF 521 #define S_SQ_TEX_WORD2_SRC_SEL_Z(x) (((unsigned)(x) & 0x7) << 26) 522 #define G_SQ_TEX_WORD2_SRC_SEL_Z(x) (((x) >> 26) & 0x7) 523 #define C_SQ_TEX_WORD2_SRC_SEL_Z 0xE3FFFFFF 524 #define S_SQ_TEX_WORD2_SRC_SEL_W(x) (((unsigned)(x) & 0x7) << 29) 525 #define G_SQ_TEX_WORD2_SRC_SEL_W(x) (((x) >> 29) & 0x7) 526 #define C_SQ_TEX_WORD2_SRC_SEL_W 0x1FFFFFFF 527 528 #define P_SQ_MEM_RD_WORD0 529 #define S_SQ_MEM_RD_WORD0_MEM_INST(x) (((x) & 0x1F) << 0) 530 #define S_SQ_MEM_RD_WORD0_ELEM_SIZE(x) (((x) & 0x3) << 5) 531 #define S_SQ_MEM_RD_WORD0_FETCH_WHOLE_QUAD(x) (((x) & 0x1) << 7) 532 #define S_SQ_MEM_RD_WORD0_MEM_OP(x) (((x) & 0x7) << 8) 533 #define S_SQ_MEM_RD_WORD0_UNCACHED(x) (((x) & 0x1) << 11) 534 #define S_SQ_MEM_RD_WORD0_INDEXED(x) (((x) & 0x1) << 12) 535 #define S_SQ_MEM_RD_WORD0_SRC_SEL_Y(x) (((x) & 0x3) << 13) 536 #define S_SQ_MEM_RD_WORD0_SRC_GPR(x) (((x) & 0x7F) << 16) 537 #define S_SQ_MEM_RD_WORD0_SRC_REL(x) (((x) & 0x1) << 23) 538 #define S_SQ_MEM_RD_WORD0_SRC_SEL_X(x) (((x) & 0x3) << 24) 539 #define S_SQ_MEM_RD_WORD0_BURST_COUNT(x) (((x) & 0xF) << 26) 540 #define S_SQ_MEM_RD_WORD0_LDS_REQ(x) (((x) & 0x1) << 30) 541 #define S_SQ_MEM_RD_WORD0_COALESCED_READ(x) (((x) & 0x1) << 31) 542 #define P_SQ_MEM_RD_WORD1 543 #define S_SQ_MEM_RD_WORD1_DST_GPR(x) (((x) & 0x7f) << 0) 544 #define S_SQ_MEM_RD_WORD1_DST_REL(x) (((x) & 0x1) << 7) 545 #define S_SQ_MEM_RD_WORD1_DST_SEL_X(x) (((x) & 0x7) << 9) 546 #define S_SQ_MEM_RD_WORD1_DST_SEL_Y(x) (((x) & 0x7) << 12) 547 #define S_SQ_MEM_RD_WORD1_DST_SEL_Z(x) (((x) & 0x7) << 15) 548 #define S_SQ_MEM_RD_WORD1_DST_SEL_W(x) (((x) & 0x7) << 18) 549 #define S_SQ_MEM_RD_WORD1_DATA_FORMAT(x) (((x) & 0x3F) << 22) 550 #define S_SQ_MEM_RD_WORD1_NUM_FORMAT_ALL(x) (((x) & 0x3) << 28) 551 #define S_SQ_MEM_RD_WORD1_FORMAT_COMP_ALL(x) (((x) & 0x1) << 30) 552 #define S_SQ_MEM_RD_WORD1_SRF_MODE_ALL(x) (((x) & 0x1) << 31) 553 #define P_SQ_MEM_RD_WORD2 554 #define S_SQ_MEM_RD_WORD2_ARRAY_BASE(x) (((x) & 0x1FFF) << 0) 555 #define S_SQ_MEM_RD_WORD2_ENDIAN_SWAP(x) (((x) & 0x3) << 16) 556 #define S_SQ_MEM_RD_WORD2_ARRAY_SIZE(x) (((x) & 0xFFF) << 20) 557 558 #endif 559