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