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