13464ebd5Sriastradh/* 23464ebd5Sriastradh * Copyright 2010 Jerome Glisse <glisse@freedesktop.org> 33464ebd5Sriastradh * 43464ebd5Sriastradh * Permission is hereby granted, free of charge, to any person obtaining a 53464ebd5Sriastradh * copy of this software and associated documentation files (the "Software"), 63464ebd5Sriastradh * to deal in the Software without restriction, including without limitation 73464ebd5Sriastradh * on the rights to use, copy, modify, merge, publish, distribute, sub 83464ebd5Sriastradh * license, and/or sell copies of the Software, and to permit persons to whom 93464ebd5Sriastradh * the Software is furnished to do so, subject to the following conditions: 103464ebd5Sriastradh * 113464ebd5Sriastradh * The above copyright notice and this permission notice (including the next 123464ebd5Sriastradh * paragraph) shall be included in all copies or substantial portions of the 133464ebd5Sriastradh * Software. 143464ebd5Sriastradh * 153464ebd5Sriastradh * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 163464ebd5Sriastradh * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 173464ebd5Sriastradh * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 183464ebd5Sriastradh * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, 193464ebd5Sriastradh * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 203464ebd5Sriastradh * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 213464ebd5Sriastradh * USE OR OTHER DEALINGS IN THE SOFTWARE. 223464ebd5Sriastradh * 233464ebd5Sriastradh * Authors: 243464ebd5Sriastradh * Jerome Glisse 253464ebd5Sriastradh */ 263464ebd5Sriastradh#ifndef EG_SQ_H 273464ebd5Sriastradh#define EG_SQ_H 283464ebd5Sriastradh 293464ebd5Sriastradh#define P_SQ_CF_WORD0 3001e04c3fSmrg#define S_SQ_CF_WORD0_ADDR(x) (((unsigned)(x) & 0xFFFFFF) << 0) 313464ebd5Sriastradh#define G_SQ_CF_WORD0_ADDR(x) (((x) >> 0) & 0xFFFFFF) 323464ebd5Sriastradh#define C_SQ_CF_WORD0_ADDR 0x00000000 3301e04c3fSmrg#define S_SQ_CF_WORD0_JUMPTABLE_SEL(x) (((unsigned)(x) & 0x7) << 24) 343464ebd5Sriastradh#define G_SQ_CF_WORD0_JUMPTABLE_SEL(x) (((x) >> 24) & 0x7) 353464ebd5Sriastradh#define C_SQ_CF_WORD0_JUMPTABLE_SEL 0xF8FFFFFF 363464ebd5Sriastradh#define P_SQ_CF_WORD1 3701e04c3fSmrg#define S_SQ_CF_WORD1_POP_COUNT(x) (((unsigned)(x) & 0x7) << 0) 383464ebd5Sriastradh#define G_SQ_CF_WORD1_POP_COUNT(x) (((x) >> 0) & 0x7) 393464ebd5Sriastradh#define C_SQ_CF_WORD1_POP_COUNT 0xFFFFFFF8 4001e04c3fSmrg#define S_SQ_CF_WORD1_CF_CONST(x) (((unsigned)(x) & 0x1F) << 3) 413464ebd5Sriastradh#define G_SQ_CF_WORD1_CF_CONST(x) (((x) >> 3) & 0x1F) 423464ebd5Sriastradh#define C_SQ_CF_WORD1_CF_CONST 0xFFFFFF07 4301e04c3fSmrg#define S_SQ_CF_WORD1_COND(x) (((unsigned)(x) & 0x3) << 8) 443464ebd5Sriastradh#define G_SQ_CF_WORD1_COND(x) (((x) >> 8) & 0x3) 453464ebd5Sriastradh#define C_SQ_CF_WORD1_COND 0xFFFFFCFF 4601e04c3fSmrg#define S_SQ_CF_WORD1_COUNT(x) (((unsigned)(x) & 0x3f) << 10) 473464ebd5Sriastradh#define G_SQ_CF_WORD1_COUNT(x) (((x) >> 10) & 0x3f) 483464ebd5Sriastradh#define C_SQ_CF_WORD1_COUNT 0xFFFF03FF 4901e04c3fSmrg#define S_SQ_CF_WORD1_VALID_PIXEL_MODE(x) (((unsigned)(x) & 0x1) << 20) 503464ebd5Sriastradh#define G_SQ_CF_WORD1_VALID_PIXEL_MODE(x) (((x) >> 20) & 0x1) 513464ebd5Sriastradh#define C_SQ_CF_WORD1_VALID_PIXEL_MODE 0xFFEFFFFF 5201e04c3fSmrg#define S_SQ_CF_WORD1_END_OF_PROGRAM(x) (((unsigned)(x) & 0x1) << 21) 533464ebd5Sriastradh#define G_SQ_CF_WORD1_END_OF_PROGRAM(x) (((x) >> 21) & 0x1) 543464ebd5Sriastradh#define C_SQ_CF_WORD1_END_OF_PROGRAM 0xFFDFFFFF 553464ebd5Sriastradh 5601e04c3fSmrg#define S_SQ_CF_WORD1_CF_INST(x) (((unsigned)(x) & 0xFF) << 22) 573464ebd5Sriastradh#define G_SQ_CF_WORD1_CF_INST(x) (((x) >> 22) & 0xFF) 583464ebd5Sriastradh#define C_SQ_CF_WORD1_CF_INST 0xC03FFFFF 593464ebd5Sriastradh 6001e04c3fSmrg#define S_SQ_CF_WORD1_WHOLE_QUAD_MODE(x) (((unsigned)(x) & 0x1) << 30) 613464ebd5Sriastradh#define G_SQ_CF_WORD1_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1) 623464ebd5Sriastradh#define C_SQ_CF_WORD1_WHOLE_QUAD_MODE 0xBFFFFFFF 6301e04c3fSmrg#define S_SQ_CF_WORD1_BARRIER(x) (((unsigned)(x) & 0x1) << 31) 643464ebd5Sriastradh#define G_SQ_CF_WORD1_BARRIER(x) (((x) >> 31) & 0x1) 653464ebd5Sriastradh#define C_SQ_CF_WORD1_BARRIER 0x7FFFFFFF 663464ebd5Sriastradh 673464ebd5Sriastradh/* done */ 683464ebd5Sriastradh#define P_SQ_CF_ALU_WORD0 6901e04c3fSmrg#define S_SQ_CF_ALU_WORD0_ADDR(x) (((unsigned)(x) & 0x3FFFFF) << 0) 703464ebd5Sriastradh#define G_SQ_CF_ALU_WORD0_ADDR(x) (((x) >> 0) & 0x3FFFFF) 713464ebd5Sriastradh#define C_SQ_CF_ALU_WORD0_ADDR 0xFFC00000 7201e04c3fSmrg#define S_SQ_CF_ALU_WORD0_KCACHE_BANK0(x) (((unsigned)(x) & 0xF) << 22) 733464ebd5Sriastradh#define G_SQ_CF_ALU_WORD0_KCACHE_BANK0(x) (((x) >> 22) & 0xF) 743464ebd5Sriastradh#define C_SQ_CF_ALU_WORD0_KCACHE_BANK0 0xFC3FFFFF 7501e04c3fSmrg#define S_SQ_CF_ALU_WORD0_KCACHE_BANK1(x) (((unsigned)(x) & 0xF) << 26) 763464ebd5Sriastradh#define G_SQ_CF_ALU_WORD0_KCACHE_BANK1(x) (((x) >> 26) & 0xF) 773464ebd5Sriastradh#define C_SQ_CF_ALU_WORD0_KCACHE_BANK1 0xC3FFFFFF 7801e04c3fSmrg#define S_SQ_CF_ALU_WORD0_KCACHE_MODE0(x) (((unsigned)(x) & 0x3) << 30) 793464ebd5Sriastradh#define G_SQ_CF_ALU_WORD0_KCACHE_MODE0(x) (((x) >> 30) & 0x3) 803464ebd5Sriastradh#define C_SQ_CF_ALU_WORD0_KCACHE_MODE0 0x3FFFFFFF 81af69d88dSmrg#define V_SQ_CF_KCACHE_NOP 0x00000000 82af69d88dSmrg#define V_SQ_CF_KCACHE_LOCK_1 0x00000001 83af69d88dSmrg#define V_SQ_CF_KCACHE_LOCK_2 0x00000002 84af69d88dSmrg#define V_SQ_CF_KCACHE_LOCK_LOOP_INDEX 0x00000003 853464ebd5Sriastradh#define P_SQ_CF_ALU_WORD1 8601e04c3fSmrg#define S_SQ_CF_ALU_WORD1_KCACHE_MODE1(x) (((unsigned)(x) & 0x3) << 0) 873464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_KCACHE_MODE1(x) (((x) >> 0) & 0x3) 883464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_KCACHE_MODE1 0xFFFFFFFC 8901e04c3fSmrg#define S_SQ_CF_ALU_WORD1_KCACHE_ADDR0(x) (((unsigned)(x) & 0xFF) << 2) 903464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_KCACHE_ADDR0(x) (((x) >> 2) & 0xFF) 913464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_KCACHE_ADDR0 0xFFFFFC03 9201e04c3fSmrg#define S_SQ_CF_ALU_WORD1_KCACHE_ADDR1(x) (((unsigned)(x) & 0xFF) << 10) 933464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_KCACHE_ADDR1(x) (((x) >> 10) & 0xFF) 943464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_KCACHE_ADDR1 0xFFFC03FF 9501e04c3fSmrg#define S_SQ_CF_ALU_WORD1_COUNT(x) (((unsigned)(x) & 0x7F) << 18) 963464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_COUNT(x) (((x) >> 18) & 0x7F) 973464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_COUNT 0xFE03FFFF 9801e04c3fSmrg#define S_SQ_CF_ALU_WORD1_ALT_CONST(x) (((unsigned)(x) & 0x1) << 25) 993464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_ALT_CONST(x) (((x) >> 25) & 0x1) 1003464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_ALT_CONST 0xFDFFFFFF 10101e04c3fSmrg#define S_SQ_CF_ALU_WORD1_CF_INST(x) (((unsigned)(x) & 0xF) << 26) 1023464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_CF_INST(x) (((x) >> 26) & 0xF) 1033464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_CF_INST 0xC3FFFFFF 10401e04c3fSmrg#define S_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE(x) (((unsigned)(x) & 0x1) << 30) 1053464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1) 1063464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE 0xBFFFFFFF 10701e04c3fSmrg#define S_SQ_CF_ALU_WORD1_BARRIER(x) (((unsigned)(x) & 0x1) << 31) 1083464ebd5Sriastradh#define G_SQ_CF_ALU_WORD1_BARRIER(x) (((x) >> 31) & 0x1) 1093464ebd5Sriastradh#define C_SQ_CF_ALU_WORD1_BARRIER 0x7FFFFFFF 110af69d88dSmrg 111af69d88dSmrg#define P_SQ_CF_ALU_WORD0_EXT 11201e04c3fSmrg#define S_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE0(x) (((unsigned)(x) & 0x3) << 4) 113af69d88dSmrg#define G_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE0(x) (((x) >> 4) & 0x3) 114af69d88dSmrg#define C_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE0 0xFFFFFFCF 115af69d88dSmrg#define V_SQ_CF_INDEX_NONE 0x00 116af69d88dSmrg#define V_SQ_CF_INDEX_0 0x01 117af69d88dSmrg#define V_SQ_CF_INDEX_1 0x02 11801e04c3fSmrg#define S_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE1(x) (((unsigned)(x) & 0x3) << 6) 119af69d88dSmrg#define G_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE1(x) (((x) >> 6) & 0x3) 120af69d88dSmrg#define C_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE1 0xFFFFFF3F 12101e04c3fSmrg#define S_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE2(x) (((unsigned)(x) & 0x3) << 8) 122af69d88dSmrg#define G_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE2(x) (((x) >> 8) & 0x3) 123af69d88dSmrg#define C_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE2 0xFFFFFCFF 12401e04c3fSmrg#define S_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE3(x) (((unsigned)(x) & 0x3) << 10) 125af69d88dSmrg#define G_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE3(x) (((x) >> 10) & 0x3) 126af69d88dSmrg#define C_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK_INDEX_MODE3 0xFFFFF3FF 12701e04c3fSmrg#define S_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK2(x) (((unsigned)(x) & 0xF) << 22) 128af69d88dSmrg#define G_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK2(x) (((x) >> 22) & 0xF) 129af69d88dSmrg#define C_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK2 0xFC3FFFFF 13001e04c3fSmrg#define S_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK3(x) (((unsigned)(x) & 0xF) << 26) 131af69d88dSmrg#define G_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK3(x) (((x) >> 26) & 0xF) 132af69d88dSmrg#define C_SQ_CF_ALU_WORD0_EXT_KCACHE_BANK3 0xC3FFFFFF 13301e04c3fSmrg#define S_SQ_CF_ALU_WORD0_EXT_KCACHE_MODE2(x) (((unsigned)(x) & 0x3) << 30) 134af69d88dSmrg#define G_SQ_CF_ALU_WORD0_EXT_KCACHE_MODE2(x) (((x) >> 30) & 0x3) 135af69d88dSmrg#define C_SQ_CF_ALU_WORD0_EXT_KCACHE_MODE2 0x3FFFFFFF 136af69d88dSmrg 137af69d88dSmrg#define P_SQ_CF_ALU_WORD1_EXT 13801e04c3fSmrg#define S_SQ_CF_ALU_WORD1_EXT_KCACHE_MODE3(x) (((unsigned)(x) & 0x3) << 0) 139af69d88dSmrg#define G_SQ_CF_ALU_WORD1_EXT_KCACHE_MODE3(x) (((x) >> 0) & 0x3) 140af69d88dSmrg#define C_SQ_CF_ALU_WORD1_EXT_KCACHE_MODE3 0xFFFFFFFC 14101e04c3fSmrg#define S_SQ_CF_ALU_WORD1_EXT_KCACHE_ADDR2(x) (((unsigned)(x) & 0xFF) << 2) 142af69d88dSmrg#define G_SQ_CF_ALU_WORD1_EXT_KCACHE_ADDR2(x) (((x) >> 2) & 0xFF) 143af69d88dSmrg#define C_SQ_CF_ALU_WORD1_EXT_KCACHE_ADDR2 0xFFFFFC03 14401e04c3fSmrg#define S_SQ_CF_ALU_WORD1_EXT_KCACHE_ADDR3(x) (((unsigned)(x) & 0xFF) << 10) 145af69d88dSmrg#define G_SQ_CF_ALU_WORD1_EXT_KCACHE_ADDR3(x) (((x) >> 10) & 0xFF) 146af69d88dSmrg#define C_SQ_CF_ALU_WORD1_EXT_KCACHE_ADDR3 0xFFFC03FF 14701e04c3fSmrg#define S_SQ_CF_ALU_WORD1_EXT_CF_INST(x) (((unsigned)(x) & 0xF) << 26) 148af69d88dSmrg#define G_SQ_CF_ALU_WORD1_EXT_CF_INST(x) (((x) >> 26) & 0xF) 149af69d88dSmrg#define C_SQ_CF_ALU_WORD1_EXT_CF_INST 0xC3FFFFFF 15001e04c3fSmrg#define S_SQ_CF_ALU_WORD1_EXT_BARRIER(x) (((unsigned)(x) & 0x1) << 31) 151af69d88dSmrg#define G_SQ_CF_ALU_WORD1_EXT_BARRIER(x) (((x) >> 31) & 0x1) 152af69d88dSmrg#define C_SQ_CF_ALU_WORD1_EXT_BARRIER 0x7FFFFFFF 153af69d88dSmrg 1543464ebd5Sriastradh/* done */ 1553464ebd5Sriastradh#define P_SQ_CF_ALLOC_EXPORT_WORD0 15601e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(x) (((unsigned)(x) & 0x1FFF) << 0) 1573464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(x) (((x) >> 0) & 0x1FFF) 1583464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE 0xFFFFE000 15901e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(x) (((unsigned)(x) & 0x3) << 13) 1603464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(x) (((x) >> 13) & 0x3) 1613464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD0_TYPE 0xFFFF9FFF 1623464ebd5Sriastradh#define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PIXEL 0x00000000 1633464ebd5Sriastradh#define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_POS 0x00000001 1643464ebd5Sriastradh#define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PARAM 0x00000002 1657ec681f3Smrg#define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_WRITE 0x00000000 1667ec681f3Smrg#define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_WRITE_IND 0x00000001 1677ec681f3Smrg#define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_READ 0x00000002 1687ec681f3Smrg#define V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_READ_IND 0x00000003 1697ec681f3Smrg 17001e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(x) (((unsigned)(x) & 0x7F) << 15) 1713464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(x) (((x) >> 15) & 0x7F) 1723464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR 0xFFC07FFF 17301e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL(x) (((unsigned)(x) & 0x1) << 22) 1743464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL(x) (((x) >> 22) & 0x1) 1753464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL 0xFFBFFFFF 17601e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(x) (((unsigned)(x) & 0x7F) << 23) 1773464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(x) (((x) >> 23) & 0x7F) 1783464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR 0xC07FFFFF 17901e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(x) (((unsigned)(x) & 0x3) << 30) 1803464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(x) (((x) >> 30) & 0x3) 1813464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE 0x3FFFFFFF 1823464ebd5Sriastradh/* done */ 18301e04c3fSmrg 18401e04c3fSmrg#define P_SQ_CF_ALLOC_EXPORT_WORD0_RAT 18501e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_ID(x) (((x) & 0xF) << 0) 18601e04c3fSmrg#define G_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_ID(x) (((x) >> 0) & 0xF) 18701e04c3fSmrg#define C_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_ID 0xFFFFFFF0 18801e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_INST(x) (((x) & 0x3F) << 4) 18901e04c3fSmrg#define G_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_INST(x) (((x) >> 4) & 0x3F) 19001e04c3fSmrg#define C_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_INST 0xFFFFFC0F 19101e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_INDEX_MODE(x) (((x) & 0x3) << 11) 19201e04c3fSmrg#define G_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_INDEX_MODE(x) (((x) >> 11) & 0x3) 19301e04c3fSmrg#define C_SQ_CF_ALLOC_EXPORT_WORD0_RAT_RAT_INDEX_MODE 0xFFFFE7FF 19401e04c3fSmrg 1953464ebd5Sriastradh#define P_SQ_CF_ALLOC_EXPORT_WORD1 19601e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(x) (((unsigned)(x) & 0xF) << 16) 1973464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(x) (((x) >> 16) & 0xF) 1983464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT 0xFFF0FFFF 19901e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE(x) (((unsigned)(x) & 0x1) << 20) 2003464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE(x) (((x) >> 20) & 0x1) 2013464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE 0xFFEFFFFF 20201e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(x) (((unsigned)(x) & 0x1) << 21) 2033464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(x) (((x) >> 21) & 0x1) 2043464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM 0xFFDFFFFF 20501e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(x) (((unsigned)(x) & 0xFF) << 22) 2063464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(x) (((x) >> 22) & 0xFF) 2073464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST 0xC03FFFFF 2083464ebd5Sriastradh 20901e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_MARK(x) (((unsigned)(x) & 0x1) << 30) 2103464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_MARK(x) (((x) >> 30) & 0x1) 2113464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_WHOLE_QUAD_MODE 0xBFFFFFFF 21201e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(x) (((unsigned)(x) & 0x1) << 31) 2133464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(x) (((x) >> 31) & 0x1) 2143464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER 0x7FFFFFFF 2153464ebd5Sriastradh 2163464ebd5Sriastradh/* done */ 2173464ebd5Sriastradh#define P_SQ_CF_ALLOC_EXPORT_WORD1_BUF 21801e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(x) (((unsigned)(x) & 0xFFF) << 0) 2193464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(x) (((x) >> 0) & 0xFFF) 2203464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE 0xFFFFF000 22101e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(x) (((unsigned)(x) & 0xF) << 12) 2223464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(x) (((x) >> 12) & 0xF) 2233464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK 0xFFFF0FFF 2243464ebd5Sriastradh#define P_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ 22501e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(x) (((unsigned)(x) & 0x7) << 0) 2263464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(x) (((x) >> 0) & 0x7) 2273464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X 0xFFFFFFF8 22801e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(x) (((unsigned)(x) & 0x7) << 3) 2293464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(x) (((x) >> 3) & 0x7) 2303464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y 0xFFFFFFC7 23101e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(x) (((unsigned)(x) & 0x7) << 6) 2323464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(x) (((x) >> 6) & 0x7) 2333464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z 0xFFFFFE3F 23401e04c3fSmrg#define S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(x) (((unsigned)(x) & 0x7) << 9) 2353464ebd5Sriastradh#define G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(x) (((x) >> 9) & 0x7) 2363464ebd5Sriastradh#define C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W 0xFFFFF1FF 2373464ebd5Sriastradh 2383464ebd5Sriastradh/* done */ 2393464ebd5Sriastradh#define P_SQ_ALU_WORD0 24001e04c3fSmrg#define S_SQ_ALU_WORD0_SRC0_SEL(x) (((unsigned)(x) & 0x1FF) << 0) 2413464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC0_SEL(x) (((x) >> 0) & 0x1FF) 2423464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC0_SEL 0xFFFFFE00 2433464ebd5Sriastradh 2443464ebd5Sriastradh/* 2453464ebd5Sriastradh * 244 ALU_SRC_1_DBL_L: special constant 1.0 double-float, LSW. (RV670+) 2463464ebd5Sriastradh * 245 ALU_SRC_1_DBL_M: special constant 1.0 double-float, MSW. (RV670+) 2473464ebd5Sriastradh * 246 ALU_SRC_0_5_DBL_L: special constant 0.5 double-float, LSW. (RV670+) 2483464ebd5Sriastradh * 247 ALU_SRC_0_5_DBL_M: special constant 0.5 double-float, MSW. (RV670+) 2493464ebd5Sriastradh * 248 SQ_ALU_SRC_0: special constant 0.0. 2503464ebd5Sriastradh * 249 SQ_ALU_SRC_1: special constant 1.0 float. 2513464ebd5Sriastradh * 250 SQ_ALU_SRC_1_INT: special constant 1 integer. 2523464ebd5Sriastradh * 251 SQ_ALU_SRC_M_1_INT: special constant -1 integer. 2533464ebd5Sriastradh * 252 SQ_ALU_SRC_0_5: special constant 0.5 float. 2543464ebd5Sriastradh * 253 SQ_ALU_SRC_LITERAL: literal constant. 2553464ebd5Sriastradh * 254 SQ_ALU_SRC_PV: previous vector result. 2563464ebd5Sriastradh * 255 SQ_ALU_SRC_PS: previous scalar result. 2573464ebd5Sriastradh */ 2583464ebd5Sriastradh#define V_SQ_ALU_SRC_0 0x000000F8 2593464ebd5Sriastradh#define V_SQ_ALU_SRC_1 0x000000F9 2603464ebd5Sriastradh#define V_SQ_ALU_SRC_1_INT 0x000000FA 2613464ebd5Sriastradh#define V_SQ_ALU_SRC_M_1_INT 0x000000FB 2623464ebd5Sriastradh#define V_SQ_ALU_SRC_0_5 0x000000FC 2633464ebd5Sriastradh#define V_SQ_ALU_SRC_LITERAL 0x000000FD 26401e04c3fSmrg#define S_SQ_ALU_WORD0_SRC0_REL(x) (((unsigned)(x) & 0x1) << 9) 2653464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC0_REL(x) (((x) >> 9) & 0x1) 2663464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC0_REL 0xFFFFFDFF 26701e04c3fSmrg#define S_SQ_ALU_WORD0_SRC0_CHAN(x) (((unsigned)(x) & 0x3) << 10) 2683464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC0_CHAN(x) (((x) >> 10) & 0x3) 2693464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC0_CHAN 0xFFFFF3FF 27001e04c3fSmrg#define S_SQ_ALU_WORD0_SRC0_NEG(x) (((unsigned)(x) & 0x1) << 12) 2713464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC0_NEG(x) (((x) >> 12) & 0x1) 2723464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC0_NEG 0xFFFFEFFF 27301e04c3fSmrg#define S_SQ_ALU_WORD0_SRC1_SEL(x) (((unsigned)(x) & 0x1FF) << 13) 2743464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC1_SEL(x) (((x) >> 13) & 0x1FF) 2753464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC1_SEL 0xFFC01FFF 27601e04c3fSmrg#define S_SQ_ALU_WORD0_SRC1_REL(x) (((unsigned)(x) & 0x1) << 22) 2773464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC1_REL(x) (((x) >> 22) & 0x1) 2783464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC1_REL 0xFFBFFFFF 27901e04c3fSmrg#define S_SQ_ALU_WORD0_SRC1_CHAN(x) (((unsigned)(x) & 0x3) << 23) 2803464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC1_CHAN(x) (((x) >> 23) & 0x3) 2813464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC1_CHAN 0xFE7FFFFF 28201e04c3fSmrg#define S_SQ_ALU_WORD0_SRC1_NEG(x) (((unsigned)(x) & 0x1) << 25) 2833464ebd5Sriastradh#define G_SQ_ALU_WORD0_SRC1_NEG(x) (((x) >> 25) & 0x1) 2843464ebd5Sriastradh#define C_SQ_ALU_WORD0_SRC1_NEG 0xFDFFFFFF 28501e04c3fSmrg#define S_SQ_ALU_WORD0_INDEX_MODE(x) (((unsigned)(x) & 0x7) << 26) 2863464ebd5Sriastradh#define G_SQ_ALU_WORD0_INDEX_MODE(x) (((x) >> 26) & 0x7) 2873464ebd5Sriastradh#define C_SQ_ALU_WORD0_INDEX_MODE 0xE3FFFFFF 28801e04c3fSmrg#define S_SQ_ALU_WORD0_PRED_SEL(x) (((unsigned)(x) & 0x3) << 29) 2893464ebd5Sriastradh#define G_SQ_ALU_WORD0_PRED_SEL(x) (((x) >> 29) & 0x3) 2903464ebd5Sriastradh#define C_SQ_ALU_WORD0_PRED_SEL 0x9FFFFFFF 29101e04c3fSmrg#define S_SQ_ALU_WORD0_LAST(x) (((unsigned)(x) & 0x1) << 31) 2923464ebd5Sriastradh#define G_SQ_ALU_WORD0_LAST(x) (((x) >> 31) & 0x1) 2933464ebd5Sriastradh#define C_SQ_ALU_WORD0_LAST 0x7FFFFFFF 2943464ebd5Sriastradh/* same */ 2953464ebd5Sriastradh#define P_SQ_ALU_WORD1 29601e04c3fSmrg#define S_SQ_ALU_WORD1_ENCODING(x) (((unsigned)(x) & 0x7) << 15) 2973464ebd5Sriastradh#define G_SQ_ALU_WORD1_ENCODING(x) (((x) >> 15) & 0x7) 2983464ebd5Sriastradh#define C_SQ_ALU_WORD1_ENCODING 0xFFFC7FFF 29901e04c3fSmrg#define S_SQ_ALU_WORD1_BANK_SWIZZLE(x) (((unsigned)(x) & 0x7) << 18) 3003464ebd5Sriastradh#define G_SQ_ALU_WORD1_BANK_SWIZZLE(x) (((x) >> 18) & 0x7) 3013464ebd5Sriastradh#define C_SQ_ALU_WORD1_BANK_SWIZZLE 0xFFE3FFFF 30201e04c3fSmrg#define S_SQ_ALU_WORD1_DST_GPR(x) (((unsigned)(x) & 0x7F) << 21) 3033464ebd5Sriastradh#define G_SQ_ALU_WORD1_DST_GPR(x) (((x) >> 21) & 0x7F) 3043464ebd5Sriastradh#define C_SQ_ALU_WORD1_DST_GPR 0xF01FFFFF 30501e04c3fSmrg#define S_SQ_ALU_WORD1_DST_REL(x) (((unsigned)(x) & 0x1) << 28) 3063464ebd5Sriastradh#define G_SQ_ALU_WORD1_DST_REL(x) (((x) >> 28) & 0x1) 3073464ebd5Sriastradh#define C_SQ_ALU_WORD1_DST_REL 0xEFFFFFFF 30801e04c3fSmrg#define S_SQ_ALU_WORD1_DST_CHAN(x) (((unsigned)(x) & 0x3) << 29) 3093464ebd5Sriastradh#define G_SQ_ALU_WORD1_DST_CHAN(x) (((x) >> 29) & 0x3) 3103464ebd5Sriastradh#define C_SQ_ALU_WORD1_DST_CHAN 0x9FFFFFFF 31101e04c3fSmrg#define S_SQ_ALU_WORD1_CLAMP(x) (((unsigned)(x) & 0x1) << 31) 3123464ebd5Sriastradh#define G_SQ_ALU_WORD1_CLAMP(x) (((x) >> 31) & 0x1) 3133464ebd5Sriastradh#define C_SQ_ALU_WORD1_CLAMP 0x7FFFFFFF 3143464ebd5Sriastradh/* same except maybe encoding */ 3153464ebd5Sriastradh#define P_SQ_ALU_WORD1_OP2 31601e04c3fSmrg#define S_SQ_ALU_WORD1_OP2_SRC0_ABS(x) (((unsigned)(x) & 0x1) << 0) 3173464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP2_SRC0_ABS(x) (((x) >> 0) & 0x1) 3183464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP2_SRC0_ABS 0xFFFFFFFE 31901e04c3fSmrg#define S_SQ_ALU_WORD1_OP2_SRC1_ABS(x) (((unsigned)(x) & 0x1) << 1) 3203464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP2_SRC1_ABS(x) (((x) >> 1) & 0x1) 3213464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP2_SRC1_ABS 0xFFFFFFFD 32201e04c3fSmrg#define S_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK(x) (((unsigned)(x) & 0x1) << 2) 3233464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK(x) (((x) >> 2) & 0x1) 3243464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK 0xFFFFFFFB 32501e04c3fSmrg#define S_SQ_ALU_WORD1_OP2_UPDATE_PRED(x) (((unsigned)(x) & 0x1) << 3) 3263464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP2_UPDATE_PRED(x) (((x) >> 3) & 0x1) 3273464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP2_UPDATE_PRED 0xFFFFFFF7 32801e04c3fSmrg#define S_SQ_ALU_WORD1_OP2_WRITE_MASK(x) (((unsigned)(x) & 0x1) << 4) 3293464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP2_WRITE_MASK(x) (((x) >> 4) & 0x1) 3303464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP2_WRITE_MASK 0xFFFFFFEF 33101e04c3fSmrg#define S_SQ_ALU_WORD1_OP2_OMOD(x) (((unsigned)(x) & 0x3) << 5) 3323464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP2_OMOD(x) (((x) >> 5) & 0x3) 3333464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP2_OMOD 0xFFFFFF9F 33401e04c3fSmrg#define S_SQ_ALU_WORD1_OP2_ALU_INST(x) (((unsigned)(x) & 0x7FF) << 7) 3353464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP2_ALU_INST(x) (((x) >> 7) & 0x7FF) 3363464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP2_ALU_INST 0xFFFC007F 3373464ebd5Sriastradh 3383464ebd5Sriastradh#define P_SQ_ALU_WORD1_OP3 33901e04c3fSmrg#define S_SQ_ALU_WORD1_OP3_SRC2_SEL(x) (((unsigned)(x) & 0x1FF) << 0) 3403464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP3_SRC2_SEL(x) (((x) >> 0) & 0x1FF) 3413464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP3_SRC2_SEL 0xFFFFFE00 34201e04c3fSmrg#define S_SQ_ALU_WORD1_OP3_SRC2_REL(x) (((unsigned)(x) & 0x1) << 9) 3433464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP3_SRC2_REL(x) (((x) >> 9) & 0x1) 3443464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP3_SRC2_REL 0xFFFFFDFF 34501e04c3fSmrg#define S_SQ_ALU_WORD1_OP3_SRC2_CHAN(x) (((unsigned)(x) & 0x3) << 10) 3463464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP3_SRC2_CHAN(x) (((x) >> 10) & 0x3) 3473464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP3_SRC2_CHAN 0xFFFFF3FF 34801e04c3fSmrg#define S_SQ_ALU_WORD1_OP3_SRC2_NEG(x) (((unsigned)(x) & 0x1) << 12) 3493464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP3_SRC2_NEG(x) (((x) >> 12) & 0x1) 3503464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP3_SRC2_NEG 0xFFFFEFFF 35101e04c3fSmrg#define S_SQ_ALU_WORD1_OP3_ALU_INST(x) (((unsigned)(x) & 0x1F) << 13) 3523464ebd5Sriastradh#define G_SQ_ALU_WORD1_OP3_ALU_INST(x) (((x) >> 13) & 0x1F) 3533464ebd5Sriastradh#define C_SQ_ALU_WORD1_OP3_ALU_INST 0xFFFC1FFF 354af69d88dSmrg/* XXX ADD OTHER OP3 */ 3553464ebd5Sriastradh/* done */ 3563464ebd5Sriastradh#define P_SQ_VTX_WORD0 35701e04c3fSmrg#define S_SQ_VTX_WORD0_VTX_INST(x) (((unsigned)(x) & 0x1F) << 0) 3583464ebd5Sriastradh#define G_SQ_VTX_WORD0_VTX_INST(x) (((x) >> 0) & 0x1F) 3593464ebd5Sriastradh#define C_SQ_VTX_WORD0_VTX_INST 0xFFFFFFE0 36001e04c3fSmrg#define S_SQ_VTX_WORD0_FETCH_TYPE(x) (((unsigned)(x) & 0x3) << 5) 3613464ebd5Sriastradh#define G_SQ_VTX_WORD0_FETCH_TYPE(x) (((x) >> 5) & 0x3) 3623464ebd5Sriastradh#define C_SQ_VTX_WORD0_FETCH_TYPE 0xFFFFFF9F 36301e04c3fSmrg#define S_SQ_VTX_WORD0_FETCH_WHOLE_QUAD(x) (((unsigned)(x) & 0x1) << 7) 3643464ebd5Sriastradh#define G_SQ_VTX_WORD0_FETCH_WHOLE_QUAD(x) (((x) >> 7) & 0x1) 3653464ebd5Sriastradh#define C_SQ_VTX_WORD0_FETCH_WHOLE_QUAD 0xFFFFFF7F 36601e04c3fSmrg#define S_SQ_VTX_WORD0_BUFFER_ID(x) (((unsigned)(x) & 0xFF) << 8) 3673464ebd5Sriastradh#define G_SQ_VTX_WORD0_BUFFER_ID(x) (((x) >> 8) & 0xFF) 3683464ebd5Sriastradh#define C_SQ_VTX_WORD0_BUFFER_ID 0xFFFF00FF 36901e04c3fSmrg#define S_SQ_VTX_WORD0_SRC_GPR(x) (((unsigned)(x) & 0x7F) << 16) 3703464ebd5Sriastradh#define G_SQ_VTX_WORD0_SRC_GPR(x) (((x) >> 16) & 0x7F) 3713464ebd5Sriastradh#define C_SQ_VTX_WORD0_SRC_GPR 0xFF80FFFF 37201e04c3fSmrg#define S_SQ_VTX_WORD0_SRC_REL(x) (((unsigned)(x) & 0x1) << 23) 3733464ebd5Sriastradh#define G_SQ_VTX_WORD0_SRC_REL(x) (((x) >> 23) & 0x1) 3743464ebd5Sriastradh#define C_SQ_VTX_WORD0_SRC_REL 0xFF7FFFFF 37501e04c3fSmrg#define S_SQ_VTX_WORD0_SRC_SEL_X(x) (((unsigned)(x) & 0x3) << 24) 3763464ebd5Sriastradh#define G_SQ_VTX_WORD0_SRC_SEL_X(x) (((x) >> 24) & 0x3) 3773464ebd5Sriastradh#define C_SQ_VTX_WORD0_SRC_SEL_X 0xFCFFFFFF 37801e04c3fSmrg#define S_SQ_VTX_WORD0_MEGA_FETCH_COUNT(x) (((unsigned)(x) & 0x3F) << 26) 3793464ebd5Sriastradh#define G_SQ_VTX_WORD0_MEGA_FETCH_COUNT(x) (((x) >> 26) & 0x3F) 3803464ebd5Sriastradh#define C_SQ_VTX_WORD0_MEGA_FETCH_COUNT 0x03FFFFFF 3813464ebd5Sriastradh/* same WORD 0 */ 3823464ebd5Sriastradh#define P_SQ_VTX_WORD1 38301e04c3fSmrg#define S_SQ_VTX_WORD1_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 9) 3843464ebd5Sriastradh#define G_SQ_VTX_WORD1_DST_SEL_X(x) (((x) >> 9) & 0x7) 3853464ebd5Sriastradh#define C_SQ_VTX_WORD1_DST_SEL_X 0xFFFFF1FF 38601e04c3fSmrg#define S_SQ_VTX_WORD1_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 12) 3873464ebd5Sriastradh#define G_SQ_VTX_WORD1_DST_SEL_Y(x) (((x) >> 12) & 0x7) 3883464ebd5Sriastradh#define C_SQ_VTX_WORD1_DST_SEL_Y 0xFFFF8FFF 38901e04c3fSmrg#define S_SQ_VTX_WORD1_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 15) 3903464ebd5Sriastradh#define G_SQ_VTX_WORD1_DST_SEL_Z(x) (((x) >> 15) & 0x7) 3913464ebd5Sriastradh#define C_SQ_VTX_WORD1_DST_SEL_Z 0xFFFC7FFF 39201e04c3fSmrg#define S_SQ_VTX_WORD1_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 18) 3933464ebd5Sriastradh#define G_SQ_VTX_WORD1_DST_SEL_W(x) (((x) >> 18) & 0x7) 3943464ebd5Sriastradh#define C_SQ_VTX_WORD1_DST_SEL_W 0xFFE3FFFF 39501e04c3fSmrg#define S_SQ_VTX_WORD1_USE_CONST_FIELDS(x) (((unsigned)(x) & 0x1) << 21) 3963464ebd5Sriastradh#define G_SQ_VTX_WORD1_USE_CONST_FIELDS(x) (((x) >> 21) & 0x1) 3973464ebd5Sriastradh#define C_SQ_VTX_WORD1_USE_CONST_FIELDS 0xFFDFFFFF 39801e04c3fSmrg#define S_SQ_VTX_WORD1_DATA_FORMAT(x) (((unsigned)(x) & 0x3F) << 22) 3993464ebd5Sriastradh#define G_SQ_VTX_WORD1_DATA_FORMAT(x) (((x) >> 22) & 0x3F) 4003464ebd5Sriastradh#define C_SQ_VTX_WORD1_DATA_FORMAT 0xF03FFFFF 40101e04c3fSmrg#define S_SQ_VTX_WORD1_NUM_FORMAT_ALL(x) (((unsigned)(x) & 0x3) << 28) 4023464ebd5Sriastradh#define G_SQ_VTX_WORD1_NUM_FORMAT_ALL(x) (((x) >> 28) & 0x3) 4033464ebd5Sriastradh#define C_SQ_VTX_WORD1_NUM_FORMAT_ALL 0xCFFFFFFF 40401e04c3fSmrg#define S_SQ_VTX_WORD1_FORMAT_COMP_ALL(x) (((unsigned)(x) & 0x1) << 30) 4053464ebd5Sriastradh#define G_SQ_VTX_WORD1_FORMAT_COMP_ALL(x) (((x) >> 30) & 0x1) 4063464ebd5Sriastradh#define C_SQ_VTX_WORD1_FORMAT_COMP_ALL 0xBFFFFFFF 40701e04c3fSmrg#define S_SQ_VTX_WORD1_SRF_MODE_ALL(x) (((unsigned)(x) & 0x1) << 31) 4083464ebd5Sriastradh#define G_SQ_VTX_WORD1_SRF_MODE_ALL(x) (((x) >> 31) & 0x1) 4093464ebd5Sriastradh#define C_SQ_VTX_WORD1_SRF_MODE_ALL 0x7FFFFFFF 4103464ebd5Sriastradh/* same WORD1 generic */ 4113464ebd5Sriastradh#define P_SQ_VTX_WORD1_GPR 41201e04c3fSmrg#define S_SQ_VTX_WORD1_GPR_DST_GPR(x) (((unsigned)(x) & 0x7F) << 0) 4133464ebd5Sriastradh#define G_SQ_VTX_WORD1_GPR_DST_GPR(x) (((x) >> 0) & 0x7F) 4143464ebd5Sriastradh#define C_SQ_VTX_WORD1_GPR_DST_GPR 0xFFFFFF80 41501e04c3fSmrg#define S_SQ_VTX_WORD1_GPR_DST_REL(x) (((unsigned)(x) & 0x1) << 7) 4163464ebd5Sriastradh#define G_SQ_VTX_WORD1_GPR_DST_REL(x) (((x) >> 7) & 0x1) 4173464ebd5Sriastradh#define C_SQ_VTX_WORD1_GPR_DST_REL 0xFFFFFF7F 4183464ebd5Sriastradh#define P_SQ_VTX_WORD1_SEM 41901e04c3fSmrg#define S_SQ_VTX_WORD1_SEM_SEMANTIC_ID(x) (((unsigned)(x) & 0xFF) << 0) 4203464ebd5Sriastradh#define G_SQ_VTX_WORD1_SEM_SEMANTIC_ID(x) (((x) >> 0) & 0xFF) 4213464ebd5Sriastradh#define C_SQ_VTX_WORD1_SEM_SEMANTIC_ID 0xFFFFFF00 4223464ebd5Sriastradh#define P_SQ_VTX_WORD2 42301e04c3fSmrg#define S_SQ_VTX_WORD2_OFFSET(x) (((unsigned)(x) & 0xFFFF) << 0) 4243464ebd5Sriastradh#define G_SQ_VTX_WORD2_OFFSET(x) (((x) >> 0) & 0xFFFF) 4253464ebd5Sriastradh#define C_SQ_VTX_WORD2_OFFSET 0xFFFF0000 42601e04c3fSmrg#define S_SQ_VTX_WORD2_ENDIAN_SWAP(x) (((unsigned)(x) & 0x3) << 16) 4273464ebd5Sriastradh#define G_SQ_VTX_WORD2_ENDIAN_SWAP(x) (((x) >> 16) & 0x3) 4283464ebd5Sriastradh#define C_SQ_VTX_WORD2_ENDIAN_SWAP 0xFFFCFFFF 42901e04c3fSmrg#define S_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE(x) (((unsigned)(x) & 0x1) << 18) 4303464ebd5Sriastradh#define G_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE(x) (((x) >> 18) & 0x1) 4313464ebd5Sriastradh#define C_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE 0xFFFBFFFF 43201e04c3fSmrg#define S_SQ_VTX_WORD2_MEGA_FETCH(x) (((unsigned)(x) & 0x1) << 19) 4333464ebd5Sriastradh#define G_SQ_VTX_WORD2_MEGA_FETCH(x) (((x) >> 19) & 0x1) 4343464ebd5Sriastradh#define C_SQ_VTX_WORD2_MEGA_FETCH 0xFFF7FFFF 43501e04c3fSmrg#define S_SQ_VTX_WORD2_ALT_CONST(x) (((unsigned)(x) & 0x1) << 20) 4363464ebd5Sriastradh#define G_SQ_VTX_WORD2_ALT_CONST(x) (((x) >> 20) & 0x1) 4373464ebd5Sriastradh#define C_SQ_VTX_WORD2_ALT_CONST 0xFFEFFFFF 43801e04c3fSmrg#define S_SQ_VTX_WORD2_BIM(x) (((unsigned)(x) & 0x3) << 21) 4393464ebd5Sriastradh#define G_SQ_VTX_WORD2_BIM(x) (((x) >> 21) & 0x3) 4403464ebd5Sriastradh#define C_SQ_VTX_WORD2_BIM 0xFF9FFFFF 4413464ebd5Sriastradh/* done */ 4423464ebd5Sriastradh 4433464ebd5Sriastradh#define P_SQ_TEX_WORD0 44401e04c3fSmrg#define S_SQ_TEX_WORD0_TEX_INST(x) (((unsigned)(x) & 0x1F) << 0) 4453464ebd5Sriastradh#define G_SQ_TEX_WORD0_TEX_INST(x) (((x) >> 0) & 0x1F) 4463464ebd5Sriastradh#define C_SQ_TEX_WORD0_TEX_INST 0xFFFFFFE0 44701e04c3fSmrg#define S_SQ_TEX_WORD0_INST_MOD(x) (((unsigned)(x) & 0x3) << 5) 4483464ebd5Sriastradh#define G_SQ_TEX_WORD0_INST_MOD(x) (((x) >> 5) & 0x3) 4493464ebd5Sriastradh#define C_SQ_TEX_WORD0_INST_MOD 0xFFFFFF9F 45001e04c3fSmrg#define S_SQ_TEX_WORD0_FETCH_WHOLE_QUAD(x) (((unsigned)(x) & 0x1) << 7) 4513464ebd5Sriastradh#define G_SQ_TEX_WORD0_FETCH_WHOLE_QUAD(x) (((x) >> 7) & 0x1) 4523464ebd5Sriastradh#define C_SQ_TEX_WORD0_FETCH_WHOLE_QUAD 0xFFFFFF7F 45301e04c3fSmrg#define S_SQ_TEX_WORD0_RESOURCE_ID(x) (((unsigned)(x) & 0xFF) << 8) 4543464ebd5Sriastradh#define G_SQ_TEX_WORD0_RESOURCE_ID(x) (((x) >> 8) & 0xFF) 4553464ebd5Sriastradh#define C_SQ_TEX_WORD0_RESOURCE_ID 0xFFFF00FF 45601e04c3fSmrg#define S_SQ_TEX_WORD0_SRC_GPR(x) (((unsigned)(x) & 0x7F) << 16) 4573464ebd5Sriastradh#define G_SQ_TEX_WORD0_SRC_GPR(x) (((x) >> 16) & 0x7F) 4583464ebd5Sriastradh#define C_SQ_TEX_WORD0_SRC_GPR 0xFF80FFFF 45901e04c3fSmrg#define S_SQ_TEX_WORD0_SRC_REL(x) (((unsigned)(x) & 0x1) << 23) 4603464ebd5Sriastradh#define G_SQ_TEX_WORD0_SRC_REL(x) (((x) >> 23) & 0x1) 4613464ebd5Sriastradh#define C_SQ_TEX_WORD0_SRC_REL 0xFF7FFFFF 46201e04c3fSmrg#define S_SQ_TEX_WORD0_ALT_CONST(x) (((unsigned)(x) & 0x1) << 24) 4633464ebd5Sriastradh#define G_SQ_TEX_WORD0_ALT_CONST(x) (((x) >> 24) & 0x1) 4643464ebd5Sriastradh#define C_SQ_TEX_WORD0_ALT_CONST 0xFEFFFFFF 46501e04c3fSmrg#define S_SQ_TEX_WORD0_RIM(x) (((unsigned)(x) & 0x3) << 25) 4663464ebd5Sriastradh#define G_SQ_TEX_WORD0_RIM(x) (((x) >> 25) & 0x3) 4673464ebd5Sriastradh#define C_SQ_TEX_WORD0_RIM 0xF9FFFFFF 46801e04c3fSmrg#define S_SQ_TEX_WORD0_SIM(x) (((unsigned)(x) & 0x3) << 27) 4693464ebd5Sriastradh#define G_SQ_TEX_WORD0_SIM(x) (((x) >> 27) & 0x3) 4703464ebd5Sriastradh#define C_SQ_TEX_WORD0_SIM 0xE7FFFFFF 4713464ebd5Sriastradh#define P_SQ_TEX_WORD1 47201e04c3fSmrg#define S_SQ_TEX_WORD1_DST_GPR(x) (((unsigned)(x) & 0x7F) << 0) 4733464ebd5Sriastradh#define G_SQ_TEX_WORD1_DST_GPR(x) (((x) >> 0) & 0x7F) 4743464ebd5Sriastradh#define C_SQ_TEX_WORD1_DST_GPR 0xFFFFFF80 47501e04c3fSmrg#define S_SQ_TEX_WORD1_DST_REL(x) (((unsigned)(x) & 0x1) << 7) 4763464ebd5Sriastradh#define G_SQ_TEX_WORD1_DST_REL(x) (((x) >> 7) & 0x1) 4773464ebd5Sriastradh#define C_SQ_TEX_WORD1_DST_REL 0xFFFFFF7F 47801e04c3fSmrg#define S_SQ_TEX_WORD1_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 9) 4793464ebd5Sriastradh#define G_SQ_TEX_WORD1_DST_SEL_X(x) (((x) >> 9) & 0x7) 4803464ebd5Sriastradh#define C_SQ_TEX_WORD1_DST_SEL_X 0xFFFFF1FF 48101e04c3fSmrg#define S_SQ_TEX_WORD1_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 12) 4823464ebd5Sriastradh#define G_SQ_TEX_WORD1_DST_SEL_Y(x) (((x) >> 12) & 0x7) 4833464ebd5Sriastradh#define C_SQ_TEX_WORD1_DST_SEL_Y 0xFFFF8FFF 48401e04c3fSmrg#define S_SQ_TEX_WORD1_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 15) 4853464ebd5Sriastradh#define G_SQ_TEX_WORD1_DST_SEL_Z(x) (((x) >> 15) & 0x7) 4863464ebd5Sriastradh#define C_SQ_TEX_WORD1_DST_SEL_Z 0xFFFC7FFF 48701e04c3fSmrg#define S_SQ_TEX_WORD1_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 18) 4883464ebd5Sriastradh#define G_SQ_TEX_WORD1_DST_SEL_W(x) (((x) >> 18) & 0x7) 4893464ebd5Sriastradh#define C_SQ_TEX_WORD1_DST_SEL_W 0xFFE3FFFF 49001e04c3fSmrg#define S_SQ_TEX_WORD1_LOD_BIAS(x) (((unsigned)(x) & 0x7F) << 21) 4913464ebd5Sriastradh#define G_SQ_TEX_WORD1_LOD_BIAS(x) (((x) >> 21) & 0x7F) 4923464ebd5Sriastradh#define C_SQ_TEX_WORD1_LOD_BIAS 0xF01FFFFF 49301e04c3fSmrg#define S_SQ_TEX_WORD1_COORD_TYPE_X(x) (((unsigned)(x) & 0x1) << 28) 4943464ebd5Sriastradh#define G_SQ_TEX_WORD1_COORD_TYPE_X(x) (((x) >> 28) & 0x1) 4953464ebd5Sriastradh#define C_SQ_TEX_WORD1_COORD_TYPE_X 0xEFFFFFFF 4963464ebd5Sriastradh#define V_SQ_TEX_WORD1_COORD_UNNORMALIZED 0x00000000 4973464ebd5Sriastradh#define V_SQ_TEX_WORD1_COORD_NORMALIZED 0x00000001 49801e04c3fSmrg#define S_SQ_TEX_WORD1_COORD_TYPE_Y(x) (((unsigned)(x) & 0x1) << 29) 4993464ebd5Sriastradh#define G_SQ_TEX_WORD1_COORD_TYPE_Y(x) (((x) >> 29) & 0x1) 5003464ebd5Sriastradh#define C_SQ_TEX_WORD1_COORD_TYPE_Y 0xDFFFFFFF 50101e04c3fSmrg#define S_SQ_TEX_WORD1_COORD_TYPE_Z(x) (((unsigned)(x) & 0x1) << 30) 5023464ebd5Sriastradh#define G_SQ_TEX_WORD1_COORD_TYPE_Z(x) (((x) >> 30) & 0x1) 5033464ebd5Sriastradh#define C_SQ_TEX_WORD1_COORD_TYPE_Z 0xBFFFFFFF 50401e04c3fSmrg#define S_SQ_TEX_WORD1_COORD_TYPE_W(x) (((unsigned)(x) & 0x1) << 31) 5053464ebd5Sriastradh#define G_SQ_TEX_WORD1_COORD_TYPE_W(x) (((x) >> 31) & 0x1) 5063464ebd5Sriastradh#define C_SQ_TEX_WORD1_COORD_TYPE_W 0x7FFFFFFF 5073464ebd5Sriastradh#define P_SQ_TEX_WORD2 50801e04c3fSmrg#define S_SQ_TEX_WORD2_OFFSET_X(x) (((unsigned)(x) & 0x1F) << 0) 5093464ebd5Sriastradh#define G_SQ_TEX_WORD2_OFFSET_X(x) (((x) >> 0) & 0x1F) 5103464ebd5Sriastradh#define C_SQ_TEX_WORD2_OFFSET_X 0xFFFFFFE0 51101e04c3fSmrg#define S_SQ_TEX_WORD2_OFFSET_Y(x) (((unsigned)(x) & 0x1F) << 5) 5123464ebd5Sriastradh#define G_SQ_TEX_WORD2_OFFSET_Y(x) (((x) >> 5) & 0x1F) 5133464ebd5Sriastradh#define C_SQ_TEX_WORD2_OFFSET_Y 0xFFFFFC1F 51401e04c3fSmrg#define S_SQ_TEX_WORD2_OFFSET_Z(x) (((unsigned)(x) & 0x1F) << 10) 5153464ebd5Sriastradh#define G_SQ_TEX_WORD2_OFFSET_Z(x) (((x) >> 10) & 0x1F) 5163464ebd5Sriastradh#define C_SQ_TEX_WORD2_OFFSET_Z 0xFFFF83FF 51701e04c3fSmrg#define S_SQ_TEX_WORD2_SAMPLER_ID(x) (((unsigned)(x) & 0x1F) << 15) 5183464ebd5Sriastradh#define G_SQ_TEX_WORD2_SAMPLER_ID(x) (((x) >> 15) & 0x1F) 5193464ebd5Sriastradh#define C_SQ_TEX_WORD2_SAMPLER_ID 0xFFF07FFF 52001e04c3fSmrg#define S_SQ_TEX_WORD2_SRC_SEL_X(x) (((unsigned)(x) & 0x7) << 20) 5213464ebd5Sriastradh#define G_SQ_TEX_WORD2_SRC_SEL_X(x) (((x) >> 20) & 0x7) 5223464ebd5Sriastradh#define C_SQ_TEX_WORD2_SRC_SEL_X 0xFF8FFFFF 52301e04c3fSmrg#define S_SQ_TEX_WORD2_SRC_SEL_Y(x) (((unsigned)(x) & 0x7) << 23) 5243464ebd5Sriastradh#define G_SQ_TEX_WORD2_SRC_SEL_Y(x) (((x) >> 23) & 0x7) 5253464ebd5Sriastradh#define C_SQ_TEX_WORD2_SRC_SEL_Y 0xFC7FFFFF 52601e04c3fSmrg#define S_SQ_TEX_WORD2_SRC_SEL_Z(x) (((unsigned)(x) & 0x7) << 26) 5273464ebd5Sriastradh#define G_SQ_TEX_WORD2_SRC_SEL_Z(x) (((x) >> 26) & 0x7) 5283464ebd5Sriastradh#define C_SQ_TEX_WORD2_SRC_SEL_Z 0xE3FFFFFF 52901e04c3fSmrg#define S_SQ_TEX_WORD2_SRC_SEL_W(x) (((unsigned)(x) & 0x7) << 29) 5303464ebd5Sriastradh#define G_SQ_TEX_WORD2_SRC_SEL_W(x) (((x) >> 29) & 0x7) 5313464ebd5Sriastradh#define C_SQ_TEX_WORD2_SRC_SEL_W 0x1FFFFFFF 5323464ebd5Sriastradh 53301e04c3fSmrg#define P_SQ_MEM_GDS_WORD0 53401e04c3fSmrg#define S_SQ_MEM_GDS_WORD0_MEM_INST(x) (((unsigned)(x) & 0x1f) << 0) 53501e04c3fSmrg#define S_SQ_MEM_GDS_WORD0_MEM_OP(x) (((unsigned)(x) & 0x7) << 8) 53601e04c3fSmrg#define S_SQ_MEM_GDS_WORD0_SRC_GPR(x) (((unsigned)(x) & 0x7f) << 11) 53701e04c3fSmrg#define S_SQ_MEM_GDS_WORD0_SRC_REL(x) (((unsigned)(x) & 0x3) << 18) 53801e04c3fSmrg#define S_SQ_MEM_GDS_WORD0_SRC_SEL_X(x) (((unsigned)(x) & 0x7) << 20) 53901e04c3fSmrg#define S_SQ_MEM_GDS_WORD0_SRC_SEL_Y(x) (((unsigned)(x) & 0x7) << 23) 54001e04c3fSmrg#define S_SQ_MEM_GDS_WORD0_SRC_SEL_Z(x) (((unsigned)(x) & 0x7) << 26) 54101e04c3fSmrg 54201e04c3fSmrg#define P_SQ_MEM_GDS_WORD1 54301e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_DST_GPR(x) (((unsigned)(x) & 0x7f) << 0) 54401e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_DST_REL(x) (((unsigned)(x) & 0x3) << 7) 54501e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_GDS_OP(x) (((unsigned)(x) & 0x3f) << 9) 54601e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_SRC_GPR(x) (((unsigned)(x) & 0x7f) << 16) 54701e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_UAV_INDEX_MODE(x) (((unsigned)(x) & 0x3) << 24) 54801e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_UAV_ID(x) (((unsigned)(x) & 0xf) << 26) 54901e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_ALLOC_CONSUME(x) (((unsigned)(x) & 0x1) << 30) 55001e04c3fSmrg#define S_SQ_MEM_GDS_WORD1_BCAST_FIRST_REQ(x) (((unsigned)(x) & 0x1) << 31) 55101e04c3fSmrg 55201e04c3fSmrg#define P_SQ_MEM_GDS_WORD2 55301e04c3fSmrg#define S_SQ_MEM_GDS_WORD2_DST_SEL_X(x) (((unsigned)(x) & 0x7) << 0) 55401e04c3fSmrg#define S_SQ_MEM_GDS_WORD2_DST_SEL_Y(x) (((unsigned)(x) & 0x7) << 3) 55501e04c3fSmrg#define S_SQ_MEM_GDS_WORD2_DST_SEL_Z(x) (((unsigned)(x) & 0x7) << 6) 55601e04c3fSmrg#define S_SQ_MEM_GDS_WORD2_DST_SEL_W(x) (((unsigned)(x) & 0x7) << 9) 55701e04c3fSmrg 55801e04c3fSmrg/* LDS IDX redefines the neg bits on op3 */ 55901e04c3fSmrg#define S_SQ_ALU_WORD0_LDS_IDX_OP_IDX_OFFSET_4(x) (((unsigned)(x) & 0x1) << 12) 56001e04c3fSmrg#define S_SQ_ALU_WORD0_LDS_IDX_OP_IDX_OFFSET_5(x) (((unsigned)(x) & 0x1) << 25) 56101e04c3fSmrg 56201e04c3fSmrg/* src2 neg */ 56301e04c3fSmrg#define S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_1(x) (((unsigned)(x) & 0x1) << 12) 56401e04c3fSmrg 56501e04c3fSmrg/* this was dst gpr */ 56601e04c3fSmrg#define S_SQ_ALU_WORD1_LDS_IDX_OP_LDS_OP(x) (((unsigned)(x) & 0x3f) << 21) 56701e04c3fSmrg#define S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_0(x) (((unsigned)(x) & 0x1) << 27) 56801e04c3fSmrg 56901e04c3fSmrg/* this was dst rel */ 57001e04c3fSmrg#define S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_2(x) (((unsigned)(x) & 0x1) << 28) 57101e04c3fSmrg/* this was clamp */ 57201e04c3fSmrg#define S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_3(x) (((unsigned)(x) & 0x1) << 31) 57301e04c3fSmrg 5747ec681f3Smrg#define EG_V_SQ_ALU_SRC_LDS_OQ_A_POP 0x000000DD 5757ec681f3Smrg#define EG_V_SQ_ALU_SRC_LDS_OQ_B_POP 0x000000DE 5767ec681f3Smrg 5777ec681f3Smrg 57801e04c3fSmrg#define V_SQ_LDS_INST_ADD 0x00 57901e04c3fSmrg#define V_SQ_LDS_INST_SUB 0x01 58001e04c3fSmrg#define V_SQ_LDS_INST_RSUB 0x02 58101e04c3fSmrg 58201e04c3fSmrg#define V_SQ_LDS_INST_INC 0x03 58301e04c3fSmrg#define V_SQ_LDS_INST_DEC 0x04 58401e04c3fSmrg#define V_SQ_LDS_INST_MIN_INT 0x05 58501e04c3fSmrg#define V_SQ_LDS_INST_MAX_INT 0x06 58601e04c3fSmrg#define V_SQ_LDS_INST_MIN_UINT 0x07 58701e04c3fSmrg#define V_SQ_LDS_INST_MAX_UINT 0x08 58801e04c3fSmrg#define V_SQ_LDS_INST_AND 0x09 58901e04c3fSmrg#define V_SQ_LDS_INST_OR 0x0a 59001e04c3fSmrg#define V_SQ_LDS_INST_XOR 0x0b 59101e04c3fSmrg#define V_SQ_LDS_INST_MSKOR 0x0c 59201e04c3fSmrg#define V_SQ_LDS_INST_WRITE 0x0d 59301e04c3fSmrg#define V_SQ_LDS_INST_WRITE_REL 0x0e 59401e04c3fSmrg#define V_SQ_LDS_INST_WRITE2 0x0f 59501e04c3fSmrg 59601e04c3fSmrg#define V_SQ_LDS_INST_READ_RET 0x32 59701e04c3fSmrg#define V_SQ_LDS_INST_READ_REL_RET 0x33 59801e04c3fSmrg#define V_SQ_LDS_INST_READ2_RET 0x34 59901e04c3fSmrg#define V_SQ_LDS_INST_READWRITE_RET 0x35 60001e04c3fSmrg 6013464ebd5Sriastradh#define V_SQ_CF_COND_ACTIVE 0x00 6023464ebd5Sriastradh#define V_SQ_CF_COND_FALSE 0x01 6033464ebd5Sriastradh#define V_SQ_CF_COND_BOOL 0x02 6043464ebd5Sriastradh#define V_SQ_CF_COND_NOT_BOOL 0x03 6053464ebd5Sriastradh 6063464ebd5Sriastradh#define V_SQ_REL_ABSOLUTE 0 6073464ebd5Sriastradh#define V_SQ_REL_RELATIVE 1 60801e04c3fSmrg 60901e04c3fSmrg/* CAYMAN has special encoding for MOVA_INT destination */ 61001e04c3fSmrg#define CM_V_SQ_MOVA_DST_AR_X 0 61101e04c3fSmrg#define CM_V_SQ_MOVA_DST_CF_PC 1 61201e04c3fSmrg#define CM_V_SQ_MOVA_DST_CF_IDX0 2 61301e04c3fSmrg#define CM_V_SQ_MOVA_DST_CF_IDX1 3 61401e04c3fSmrg 6153464ebd5Sriastradh#endif 616