Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright 2013 Vadim Girlin <vadimgirlin@gmail.com>
  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.  *      Vadim Girlin
  25.  */
  26.  
  27. // TODO add all formats
  28.  
  29. // CF
  30.  
  31. BC_FORMAT_BEGIN_HW(CF_WORD0, R6R7)
  32. BC_FIELD(CF_WORD0,      ADDR,               ADDR,       31, 0)
  33. BC_FORMAT_END(CF_WORD0)
  34.  
  35. BC_FORMAT_BEGIN_HW(CF_WORD0, EGCM)
  36. BC_FIELD(CF_WORD0,      ADDR,               ADDR,       23, 0)
  37. BC_FIELD(CF_WORD0,      JUMPTABLE_SEL,      JTS,        26, 24)
  38. BC_RSRVD(CF_WORD0,                                      31, 27)
  39. BC_FORMAT_END(CF_WORD0)
  40.  
  41.  
  42. BC_FORMAT_BEGIN_HW(CF_GWS_WORD0, EGCM)
  43. BC_FIELD(CF_GWS_WORD0,  VALUE,              VAL,        9,  0)
  44. BC_RSRVD(CF_GWS_WORD0,                                  15, 10)
  45. BC_FIELD(CF_GWS_WORD0,  RESOURCE,           RSRC,       20, 16)
  46. BC_RSRVD(CF_GWS_WORD0,                                  24, 21)
  47. BC_FIELD(CF_GWS_WORD0,  SIGN,               SIGN,       25, 25)
  48. BC_FIELD(CF_GWS_WORD0,  VAL_INDEX_MODE,     VIM,        27, 26)
  49. BC_FIELD(CF_GWS_WORD0,  RSRC_INDEX_MODE,    RIM,        29, 28)
  50. BC_FIELD(CF_GWS_WORD0,  GWS_OPCODE,         GWS_OP,     31, 30)
  51. BC_FORMAT_END(CF_GWS_WORD0)
  52.  
  53.  
  54. BC_FORMAT_BEGIN_HW(CF_WORD1, R6R7)
  55. BC_FIELD(CF_WORD1,      POP_COUNT,          PC,         2,  0)
  56. BC_FIELD(CF_WORD1,      CF_CONST,           CF_CONST,   7,  3)
  57. BC_FIELD(CF_WORD1,      COND,               COND,       9,  8)
  58. BC_FIELD(CF_WORD1,      COUNT,              COUNT,      12, 10)
  59. BC_FIELD(CF_WORD1,      CALL_COUNT,         CALL_CNT,   18, 13)
  60. BC_FIELD(CF_WORD1,      COUNT_3,            COUNT_3,    19, 19)
  61. BC_RSRVD(CF_WORD1,                                      20, 20)
  62. BC_FIELD(CF_WORD1,      END_OF_PROGRAM,     EOP,        21, 21)
  63. BC_FIELD(CF_WORD1,      VALID_PIXEL_MODE,   VPM,        22, 22)
  64. BC_FIELD(CF_WORD1,      CF_INST,            CF_INST,    29, 23)
  65. BC_FIELD(CF_WORD1,      WHOLE_QUAD_MODE,    WQM,        30, 30)
  66. BC_FIELD(CF_WORD1,      BARRIER,            B,          31, 31)
  67. BC_FORMAT_END(CF_WORD1)
  68.  
  69. BC_FORMAT_BEGIN_HW(CF_WORD1, EG)
  70. BC_FIELD(CF_WORD1,      POP_COUNT,          PC,         2,  0)
  71. BC_FIELD(CF_WORD1,      CF_CONST,           CF_CONST,   7,  3)
  72. BC_FIELD(CF_WORD1,      COND,               COND,       9,  8)
  73. BC_FIELD(CF_WORD1,      COUNT,              COUNT,      15, 10)
  74. BC_RSRVD(CF_WORD1,                                      19, 16)
  75. BC_FIELD(CF_WORD1,      VALID_PIXEL_MODE,   VPM,        20, 20)
  76. BC_FIELD(CF_WORD1,      END_OF_PROGRAM,     EOP,        21, 21)
  77. BC_FIELD(CF_WORD1,      CF_INST,            CF_INST,    29, 22)
  78. BC_FIELD(CF_WORD1,      WHOLE_QUAD_MODE,    WQM,        30, 30)
  79. BC_FIELD(CF_WORD1,      BARRIER,            B,          31, 31)
  80. BC_FORMAT_END(CF_WORD1)
  81.  
  82. BC_FORMAT_BEGIN_HW(CF_WORD1, CM)
  83. BC_FIELD(CF_WORD1,      POP_COUNT,          PC,         2,  0)
  84. BC_FIELD(CF_WORD1,      CF_CONST,           CF_CONST,   7,  3)
  85. BC_FIELD(CF_WORD1,      COND,               COND,       9,  8)
  86. BC_FIELD(CF_WORD1,      COUNT,              COUNT,      15, 10)
  87. BC_RSRVD(CF_WORD1,                                      19, 16)
  88. BC_FIELD(CF_WORD1,      VALID_PIXEL_MODE,   VPM,        20, 20)
  89. BC_RSRVD(CF_WORD1,                                      21, 21)
  90. BC_FIELD(CF_WORD1,      CF_INST,            CF_INST,    29, 22)
  91. BC_RSRVD(CF_WORD1,                                      30, 30)
  92. BC_FIELD(CF_WORD1,      BARRIER,            B,          31, 31)
  93. BC_FORMAT_END(CF_WORD1)
  94.  
  95.  
  96. BC_FORMAT_BEGIN(CF_ALU_WORD0)
  97. BC_FIELD(CF_ALU_WORD0,  ADDR,               ADDR,       21, 0)
  98. BC_FIELD(CF_ALU_WORD0,  KCACHE_BANK0,       KB0,        25, 22)
  99. BC_FIELD(CF_ALU_WORD0,  KCACHE_BANK1,       KB1,        29, 26)
  100. BC_FIELD(CF_ALU_WORD0,  KCACHE_MODE0,       KM0,        31, 30)
  101. BC_FORMAT_END(CF_ALU_WORD0)
  102.  
  103. BC_FORMAT_BEGIN_HW(CF_ALU_WORD1, R6)
  104. BC_FIELD(CF_ALU_WORD1,  KCACHE_MODE1,       KM1,        1,  0)
  105. BC_FIELD(CF_ALU_WORD1,  KCACHE_ADDR0,       KA0,        9,  2)
  106. BC_FIELD(CF_ALU_WORD1,  KCACHE_ADDR1,       KA1,        17, 10)
  107. BC_FIELD(CF_ALU_WORD1,  COUNT,              COUNT,      24, 18)
  108. BC_FIELD(CF_ALU_WORD1,  USES_WATERFALL,     UW,         25, 25)
  109. BC_FIELD(CF_ALU_WORD1,  CF_INST,            CF_INST,    29, 26)
  110. BC_FIELD(CF_ALU_WORD1,  WHOLE_QUAD_MODE,    WQM,        30, 30)
  111. BC_FIELD(CF_ALU_WORD1,  BARRIER,            B,          31, 31)
  112. BC_FORMAT_END(CF_ALU_WORD1)
  113.  
  114. BC_FORMAT_BEGIN_HW(CF_ALU_WORD1, R7EGCM)
  115. BC_FIELD(CF_ALU_WORD1,  KCACHE_MODE1,       KM1,        1,  0)
  116. BC_FIELD(CF_ALU_WORD1,  KCACHE_ADDR0,       KA0,        9,  2)
  117. BC_FIELD(CF_ALU_WORD1,  KCACHE_ADDR1,       KA1,        17, 10)
  118. BC_FIELD(CF_ALU_WORD1,  COUNT,              COUNT,      24, 18)
  119. BC_FIELD(CF_ALU_WORD1,  ALT_CONST,          ALT_C,      25, 25)
  120. BC_FIELD(CF_ALU_WORD1,  CF_INST,            CF_INST,    29, 26)
  121. BC_FIELD(CF_ALU_WORD1,  WHOLE_QUAD_MODE,    WQM,        30, 30)
  122. BC_FIELD(CF_ALU_WORD1,  BARRIER,            B,          31, 31)
  123. BC_FORMAT_END(CF_ALU_WORD1)
  124.  
  125.  
  126. BC_FORMAT_BEGIN_HW(CF_ALU_WORD0_EXT, EGCM)
  127. BC_RSRVD(CF_ALU_WORD0_EXT,                                          3,  0)
  128. BC_FIELD(CF_ALU_WORD0_EXT,  KCACHE_BANK_INDEX_MODE0,    KBIM0,      5,  4)
  129. BC_FIELD(CF_ALU_WORD0_EXT,  KCACHE_BANK_INDEX_MODE1,    KBIM1,      7,  6)
  130. BC_FIELD(CF_ALU_WORD0_EXT,  KCACHE_BANK_INDEX_MODE2,    KBIM2,      9,  8)
  131. BC_FIELD(CF_ALU_WORD0_EXT,  KCACHE_BANK_INDEX_MODE3,    KBIM3,      11, 10)
  132. BC_RSRVD(CF_ALU_WORD0_EXT,                                          21, 12)
  133. BC_FIELD(CF_ALU_WORD0_EXT,  KCACHE_BANK2,               KB2,        25, 22)
  134. BC_FIELD(CF_ALU_WORD0_EXT,  KCACHE_BANK3,               KB3,        29, 26)
  135. BC_FIELD(CF_ALU_WORD0_EXT,  KCACHE_MODE2,               KM2,        31, 30)
  136. BC_FORMAT_END(CF_ALU_WORD0_EXT)
  137.  
  138. BC_FORMAT_BEGIN_HW(CF_ALU_WORD1_EXT, EGCM)
  139. BC_FIELD(CF_ALU_WORD1_EXT,  KCACHE_MODE3,       KM3,        1,  0)
  140. BC_FIELD(CF_ALU_WORD1_EXT,  KCACHE_ADDR2,       KA2,        9,  2)
  141. BC_FIELD(CF_ALU_WORD1_EXT,  KCACHE_ADDR3,       KA3,        17, 10)
  142. BC_RSRVD(CF_ALU_WORD1_EXT,                                  25, 18)
  143. BC_FIELD(CF_ALU_WORD1_EXT,  CF_INST,            CF_INST,    29, 26)
  144. BC_RSRVD(CF_ALU_WORD1_EXT,                                  30, 30)
  145. BC_FIELD(CF_ALU_WORD1_EXT,  BARRIER,            B,          31, 31)
  146. BC_FORMAT_END(CF_ALU_WORD1_EXT)
  147.  
  148.  
  149. BC_FORMAT_BEGIN(CF_ALLOC_EXPORT_WORD0)
  150. BC_FIELD(CF_ALLOC_EXPORT_WORD0, ARRAY_BASE,     ARR_BS,     12, 0)
  151. BC_FIELD(CF_ALLOC_EXPORT_WORD0, TYPE,           TYPE,       14, 13)
  152. BC_FIELD(CF_ALLOC_EXPORT_WORD0, RW_GPR,         RW_GPR,     21, 15)
  153. BC_FIELD(CF_ALLOC_EXPORT_WORD0, RW_REL,         RW_REL,     22, 22)
  154. BC_FIELD(CF_ALLOC_EXPORT_WORD0, INDEX_GPR,      IND_GPR,    29, 23)
  155. BC_FIELD(CF_ALLOC_EXPORT_WORD0, ELEM_SIZE,      ES,         31, 30)
  156. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD0)
  157.  
  158. BC_FORMAT_BEGIN_HW(CF_ALLOC_EXPORT_WORD0_RAT, EGCM)
  159. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, RAT_ID,         R_ID,       3,  0)
  160. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, RAT_INST,       R_INST,     9,  4)
  161. BC_RSRVD(CF_ALLOC_EXPORT_WORD0_RAT,                             10, 10)
  162. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, RAT_INDEX_MODE, RIM,        12, 11)
  163. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, TYPE,           TYPE,       14, 13)
  164. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, RW_GPR,         RW_GPR,     21, 15)
  165. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, RW_REL,         RW_REL,     22, 22)
  166. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, INDEX_GPR,      IND_GPR,    29, 23)
  167. BC_FIELD(CF_ALLOC_EXPORT_WORD0_RAT, ELEM_SIZE,      ES,         31, 30)
  168. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD0_RAT)
  169.  
  170. BC_FORMAT_BEGIN_HW(CF_ALLOC_EXPORT_WORD1_BUF, R6R7)
  171. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, ARRAY_SIZE,         ARR_SZ,     11, 0)
  172. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, COMP_MASK,          MASK,       15, 12)
  173. BC_RSRVD(CF_ALLOC_EXPORT_WORD1_BUF,                                 16, 16)
  174. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, BURST_COUNT,        BURST,      20, 17)
  175. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, END_OF_PROGRAM,     EOP,        21, 21)
  176. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, VALID_PIXEL_MODE,   VPM,        22, 22)
  177. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, CF_INST,            CF_INST,    29, 23)
  178. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, WHOLE_QUAD_MODE,    WQM,        30, 30)
  179. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, BARRIER,            B,          31, 31)
  180. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD1_BUF)
  181.  
  182. BC_FORMAT_BEGIN_HW(CF_ALLOC_EXPORT_WORD1_BUF, EG)
  183. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, ARRAY_SIZE,         ARR_SZ,     11, 0)
  184. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, COMP_MASK,          MASK,       15, 12)
  185. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, BURST_COUNT,        BURST,      19, 16)
  186. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, VALID_PIXEL_MODE,   VPM,        20, 20)
  187. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, END_OF_PROGRAM,     EOP,        21, 21)
  188. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, CF_INST,            CF_INST,    29, 22)
  189. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, MARK,               MARK,       30, 30)
  190. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, BARRIER,            B,          31, 31)
  191. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD1_BUF)
  192.  
  193. BC_FORMAT_BEGIN_HW(CF_ALLOC_EXPORT_WORD1_BUF, CM)
  194. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, ARRAY_SIZE,         ARR_SZ,     11, 0)
  195. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, COMP_MASK,          MASK,       15, 12)
  196. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, BURST_COUNT,        BURST,      19, 16)
  197. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, VALID_PIXEL_MODE,   VPM,        20, 20)
  198. BC_RSRVD(CF_ALLOC_EXPORT_WORD1_BUF,                                 21, 21)
  199. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, CF_INST,            CF_INST,    29, 22)
  200. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, MARK,               MARK,       30, 30)
  201. BC_FIELD(CF_ALLOC_EXPORT_WORD1_BUF, BARRIER,            B,          31, 31)
  202. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD1_BUF)
  203.  
  204. BC_FORMAT_BEGIN_HW(CF_ALLOC_EXPORT_WORD1_SWIZ, R6R7)
  205. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_X,              SEL_X,      2,  0)
  206. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_Y,              SEL_Y,      5,  3)
  207. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_Z,              SEL_Z,      8,  6)
  208. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_W,              SEL_W,      11, 9)
  209. BC_RSRVD(CF_ALLOC_EXPORT_WORD1_SWIZ,                                    16, 12)
  210. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    BURST_COUNT,        BURST,      20, 17)
  211. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    END_OF_PROGRAM,     EOP,        21, 21)
  212. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    VALID_PIXEL_MODE,   VPM,        22, 22)
  213. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    CF_INST,            CF_INST,    29, 23)
  214. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    WHOLE_QUAD_MODE,    WQM,        30, 30)
  215. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    BARRIER,            B,          31, 31)
  216. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD1_SWIZ)
  217.  
  218. BC_FORMAT_BEGIN_HW(CF_ALLOC_EXPORT_WORD1_SWIZ, EG)
  219. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_X,              SEL_X,      2,  0)
  220. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_Y,              SEL_Y,      5,  3)
  221. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_Z,              SEL_Z,      8,  6)
  222. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_W,              SEL_W,      11, 9)
  223. BC_RSRVD(CF_ALLOC_EXPORT_WORD1_SWIZ,                                    15, 12)
  224. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    BURST_COUNT,        BURST,      19, 16)
  225. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    VALID_PIXEL_MODE,   VPM,        20, 20)
  226. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    END_OF_PROGRAM,     EOP,        21, 21)
  227. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    CF_INST,            CF_INST,    29, 22)
  228. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    MARK,               M,          30, 30)
  229. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    BARRIER,            B,          31, 31)
  230. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD1_SWIZ)
  231.  
  232. BC_FORMAT_BEGIN_HW(CF_ALLOC_EXPORT_WORD1_SWIZ, CM)
  233. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_X,              SEL_X,      2,  0)
  234. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_Y,              SEL_Y,      5,  3)
  235. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_Z,              SEL_Z,      8,  6)
  236. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    SEL_W,              SEL_W,      11, 9)
  237. BC_RSRVD(CF_ALLOC_EXPORT_WORD1_SWIZ,                                    15, 12)
  238. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    BURST_COUNT,        BURST,      19, 16)
  239. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    VALID_PIXEL_MODE,   VPM,        20, 20)
  240. BC_RSRVD(CF_ALLOC_EXPORT_WORD1_SWIZ,                                    21, 21)
  241. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    CF_INST,            CF_INST,    29, 22)
  242. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    MARK,               M,          30, 30)
  243. BC_FIELD(CF_ALLOC_EXPORT_WORD1_SWIZ,    BARRIER,            B,          31, 31)
  244. BC_FORMAT_END(CF_ALLOC_EXPORT_WORD1_SWIZ)
  245.  
  246. // ALU
  247.  
  248. BC_FORMAT_BEGIN(ALU_WORD0)
  249. BC_FIELD(ALU_WORD0,     SRC0_SEL,               S0S,        8,  0)
  250. BC_FIELD(ALU_WORD0,     SRC0_REL,               S0R,        9,  9)
  251. BC_FIELD(ALU_WORD0,     SRC0_CHAN,              S0C,        11, 10)
  252. BC_FIELD(ALU_WORD0,     SRC0_NEG,               S0N,        12, 12)
  253. BC_FIELD(ALU_WORD0,     SRC1_SEL,               S1S,        21, 13)
  254. BC_FIELD(ALU_WORD0,     SRC1_REL,               S1R,        22, 22)
  255. BC_FIELD(ALU_WORD0,     SRC1_CHAN,              S1C,        24, 23)
  256. BC_FIELD(ALU_WORD0,     SRC1_NEG,               S1N,        25, 25)
  257. BC_FIELD(ALU_WORD0,     INDEX_MODE,             IM,         28, 26)
  258. BC_FIELD(ALU_WORD0,     PRED_SEL,               PS,         30, 29)
  259. BC_FIELD(ALU_WORD0,     LAST,                   L,          31, 31)
  260. BC_FORMAT_END(ALU_WORD0)
  261.  
  262. BC_FORMAT_BEGIN_HW(ALU_WORD1_OP2, R6)
  263. BC_FIELD(ALU_WORD1_OP2,     SRC0_ABS,               S0A,        0,  0)
  264. BC_FIELD(ALU_WORD1_OP2,     SRC1_ABS,               S1A,        1,  1)
  265. BC_FIELD(ALU_WORD1_OP2,     UPDATE_EXEC_MASK,       UEM,        2,  2)
  266. BC_FIELD(ALU_WORD1_OP2,     UPDATE_PRED,            UP,         3,  3)
  267. BC_FIELD(ALU_WORD1_OP2,     WRITE_MASK,             WM,         4,  4)
  268. BC_FIELD(ALU_WORD1_OP2,     FOG_MERGE,              FM,         5,  5)
  269. BC_FIELD(ALU_WORD1_OP2,     OMOD,                   OMOD,       7,  6)
  270. BC_FIELD(ALU_WORD1_OP2,     ALU_INST,               INST,       17, 8)
  271. BC_FIELD(ALU_WORD1_OP2,     BANK_SWIZZLE,           BS,         20, 18)
  272. BC_FIELD(ALU_WORD1_OP2,     DST_GPR,                DGPR,       27, 21)
  273. BC_FIELD(ALU_WORD1_OP2,     DST_REL,                DR,         28, 28)
  274. BC_FIELD(ALU_WORD1_OP2,     DST_CHAN,               DC,         30, 29)
  275. BC_FIELD(ALU_WORD1_OP2,     CLAMP,                  C,          31, 31)
  276. BC_FORMAT_END(ALU_WORD1_OP2)
  277.  
  278. BC_FORMAT_BEGIN_HW(ALU_WORD1_OP2, R7EGCM)
  279. BC_FIELD(ALU_WORD1_OP2,     SRC0_ABS,               S0A,        0,  0)
  280. BC_FIELD(ALU_WORD1_OP2,     SRC1_ABS,               S1A,        1,  1)
  281. BC_FIELD(ALU_WORD1_OP2,     UPDATE_EXEC_MASK,       UEM,        2,  2)
  282. BC_FIELD(ALU_WORD1_OP2,     UPDATE_PRED,            UP,         3,  3)
  283. BC_FIELD(ALU_WORD1_OP2,     WRITE_MASK,             WM,         4,  4)
  284. BC_FIELD(ALU_WORD1_OP2,     OMOD,                   OMOD,       6,  5)
  285. BC_FIELD(ALU_WORD1_OP2,     ALU_INST,               INST,       17, 7)
  286. BC_FIELD(ALU_WORD1_OP2,     BANK_SWIZZLE,           BS,         20, 18)
  287. BC_FIELD(ALU_WORD1_OP2,     DST_GPR,                DGPR,       27, 21)
  288. BC_FIELD(ALU_WORD1_OP2,     DST_REL,                DR,         28, 28)
  289. BC_FIELD(ALU_WORD1_OP2,     DST_CHAN,               DC,         30, 29)
  290. BC_FIELD(ALU_WORD1_OP2,     CLAMP,                  C,          31, 31)
  291. BC_FORMAT_END(ALU_WORD1_OP2)
  292.  
  293. BC_FORMAT_BEGIN_HW(ALU_WORD1_OP2_MOVA, CM)
  294. BC_FIELD(ALU_WORD1_OP2_MOVA,     SRC0_ABS,               S0A,        0,  0)
  295. BC_FIELD(ALU_WORD1_OP2_MOVA,     SRC1_ABS,               S1A,        1,  1)
  296. BC_FIELD(ALU_WORD1_OP2_MOVA,     UPDATE_EXEC_MASK,       UEM,        2,  2)
  297. BC_FIELD(ALU_WORD1_OP2_MOVA,     UPDATE_PRED,            UP,         3,  3)
  298. BC_FIELD(ALU_WORD1_OP2_MOVA,     WRITE_MASK,             WM,         4,  4)
  299. BC_FIELD(ALU_WORD1_OP2_MOVA,     OMOD,                   OMOD,       6,  5)
  300. BC_FIELD(ALU_WORD1_OP2_MOVA,     ALU_INST,               INST,       17, 7)
  301. BC_FIELD(ALU_WORD1_OP2_MOVA,     BANK_SWIZZLE,           BS,         20, 18)
  302. BC_FIELD(ALU_WORD1_OP2_MOVA,     MOVA_DST,               MOVA_DST,   27, 21)
  303. BC_FIELD(ALU_WORD1_OP2_MOVA,     DST_REL,                DR,         28, 28)
  304. BC_FIELD(ALU_WORD1_OP2_MOVA,     DST_CHAN,               DC,         30, 29)
  305. BC_FIELD(ALU_WORD1_OP2_MOVA,     CLAMP,                  C,          31, 31)
  306. BC_FORMAT_END(ALU_WORD1_OP2_MOVA)
  307.  
  308. BC_FORMAT_BEGIN_HW(ALU_WORD1_OP2_EXEC_MASK, CM)
  309. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     SRC0_ABS,               S0A,        0,  0)
  310. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     SRC1_ABS,               S1A,        1,  1)
  311. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     UPDATE_EXEC_MASK,       UEM,        2,  2)
  312. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     UPDATE_PRED,            UP,         3,  3)
  313. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     WRITE_MASK,             WM,         4,  4)
  314. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     EXECUTE_MASK_OP,        EMO,        6,  5)
  315. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     ALU_INST,               INST,       17, 7)
  316. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     BANK_SWIZZLE,           BS,         20, 18)
  317. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     DST_GPR,                DGPR,       27, 21)
  318. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     DST_REL,                DR,         28, 28)
  319. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     DST_CHAN,               DC,         30, 29)
  320. BC_FIELD(ALU_WORD1_OP2_EXEC_MASK,     CLAMP,                  C,          31, 31)
  321. BC_FORMAT_END(ALU_WORD1_OP2_EXEC_MASK)
  322.  
  323. BC_FORMAT_BEGIN(ALU_WORD1_OP3)
  324. BC_FIELD(ALU_WORD1_OP3,     SRC2_SEL,               S2S,        8,  0)
  325. BC_FIELD(ALU_WORD1_OP3,     SRC2_REL,               S2R,        9,  9)
  326. BC_FIELD(ALU_WORD1_OP3,     SRC2_CHAN,              S2C,        11, 10)
  327. BC_FIELD(ALU_WORD1_OP3,     SRC2_NEG,               S2N,        12, 12)
  328. BC_FIELD(ALU_WORD1_OP3,     ALU_INST,               INST,       17, 13)
  329. BC_FIELD(ALU_WORD1_OP3,     BANK_SWIZZLE,           BS,         20, 18)
  330. BC_FIELD(ALU_WORD1_OP3,     DST_GPR,                DGPR,       27, 21)
  331. BC_FIELD(ALU_WORD1_OP3,     DST_REL,                DR,         28, 28)
  332. BC_FIELD(ALU_WORD1_OP3,     DST_CHAN,               DC,         30, 29)
  333. BC_FIELD(ALU_WORD1_OP3,     CLAMP,                  C,          31, 31)
  334. BC_FORMAT_END(ALU_WORD1_OP3)
  335.  
  336.  
  337. BC_FORMAT_BEGIN_HW(ALU_WORD0_LDS_IDX_OP, EGCM)
  338. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      SRC0_SEL,               S0S,        8,  0)
  339. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      SRC0_REL,               S0R,        9,  9)
  340. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      SRC0_CHAN,              S0C,        11, 10)
  341. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      IDX_OFFSET_4,           IO4,        12, 12)
  342. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      SRC1_SEL,               S1S,        21, 13)
  343. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      SRC1_REL,               S1R,        22, 22)
  344. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      SRC1_CHAN,              S1C,        24, 23)
  345. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      IDX_OFFSET_5,           IO5,        25, 25)
  346. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      INDEX_MODE,             IM,         28, 26)
  347. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      PRED_SEL,               PS,         30, 29)
  348. BC_FIELD(ALU_WORD0_LDS_IDX_OP,      LAST,                   L,          31, 31)
  349. BC_FORMAT_END(ALU_WORD0_LDS_IDX_OP)
  350.  
  351. BC_FORMAT_BEGIN_HW(ALU_WORD1_LDS_IDX_OP, EGCM)
  352. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      SRC2_SEL,               S2S,        8,  0)
  353. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      SRC2_REL,               S2R,        9,  9)
  354. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      SRC2_CHAN,              S2C,        11, 10)
  355. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      IDX_OFFSET_1,           IO1,        12, 12)
  356. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      ALU_INST,               INST,       17, 13)
  357. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      BANK_SWIZZLE,           BS,         20, 18)
  358. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      LDS_OP,                 LDS_OP,     26, 21)
  359. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      IDX_OFFSET_0,           IO0,        27, 27)
  360. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      IDX_OFFSET_2,           IO2,        28, 28)
  361. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      DST_CHAN,               DC,         30, 29)
  362. BC_FIELD(ALU_WORD1_LDS_IDX_OP,      IDX_OFFSET_3,           IO3,        31, 31)
  363. BC_FORMAT_END(ALU_WORD1_LDS_IDX_OP)
  364.  
  365.  
  366. BC_FORMAT_BEGIN_HW(ALU_WORD1_LDS_DIRECT_LITERAL_LO, EGCM)
  367. BC_FIELD(ALU_WORD1_LDS_DIRECT_LITERAL_LO,       OFFSET_A,       OFS_A,  12, 0)
  368. BC_FIELD(ALU_WORD1_LDS_DIRECT_LITERAL_LO,       STRIDE_A,       STR_A,  19, 13)
  369. BC_RSRVD(ALU_WORD1_LDS_DIRECT_LITERAL_LO,                               21, 20)
  370. BC_FIELD(ALU_WORD1_LDS_DIRECT_LITERAL_LO,       THREAD_REL_A,   THR_A,  22, 22)
  371. BC_RSRVD(ALU_WORD1_LDS_DIRECT_LITERAL_LO,                               31, 22)
  372. BC_FORMAT_END(ALU_WORD1_LDS_DIRECT_LITERAL_LO)
  373.  
  374. BC_FORMAT_BEGIN_HW(ALU_WORD1_LDS_DIRECT_LITERAL_HI, EGCM)
  375. BC_FIELD(ALU_WORD1_LDS_DIRECT_LITERAL_HI,       OFFSET_B,       OFS_B,  12, 0)
  376. BC_FIELD(ALU_WORD1_LDS_DIRECT_LITERAL_HI,       STRIDE_B,       STR_B,  19, 13)
  377. BC_RSRVD(ALU_WORD1_LDS_DIRECT_LITERAL_HI,                               21, 20)
  378. BC_FIELD(ALU_WORD1_LDS_DIRECT_LITERAL_HI,       THREAD_REL_B,   THR_B,  22, 22)
  379. BC_RSRVD(ALU_WORD1_LDS_DIRECT_LITERAL_HI,                               30, 22)
  380. BC_FIELD(ALU_WORD1_LDS_DIRECT_LITERAL_HI,       DIRECT_READ_32, DR32,   31, 31)
  381. BC_FORMAT_END(ALU_WORD1_LDS_DIRECT_LITERAL_HI)
  382.  
  383.  
  384. // VTX
  385.  
  386. BC_FORMAT_BEGIN_HW(VTX_WORD0, R6R7EG)
  387. BC_FIELD(VTX_WORD0,     VC_INST,                INST,       4,  0)
  388. BC_FIELD(VTX_WORD0,     FETCH_TYPE,             FT,         6,  5)
  389. BC_FIELD(VTX_WORD0,     FETCH_WHOLE_QUAD,       FWQ,        7,  7)
  390. BC_FIELD(VTX_WORD0,     BUFFER_ID,              BUF_ID,     15, 8)
  391. BC_FIELD(VTX_WORD0,     SRC_GPR,                S_GPR,      22, 16)
  392. BC_FIELD(VTX_WORD0,     SRC_REL,                SR,         23, 23)
  393. BC_FIELD(VTX_WORD0,     SRC_SEL_X,              SSX,        25, 24)
  394. BC_FIELD(VTX_WORD0,     MEGA_FETCH_COUNT,       MFC,        31, 26)
  395. BC_FORMAT_END(VTX_WORD0)
  396.  
  397. BC_FORMAT_BEGIN_HW(VTX_WORD0, CM)
  398. BC_FIELD(VTX_WORD0,     VC_INST,                INST,       4,  0)
  399. BC_FIELD(VTX_WORD0,     FETCH_TYPE,             FT,         6,  5)
  400. BC_FIELD(VTX_WORD0,     FETCH_WHOLE_QUAD,       FWQ,        7,  7)
  401. BC_FIELD(VTX_WORD0,     BUFFER_ID,              BUF_ID,     15, 8)
  402. BC_FIELD(VTX_WORD0,     SRC_GPR,                S_GPR,      22, 16)
  403. BC_FIELD(VTX_WORD0,     SRC_REL,                SR,         23, 23)
  404. BC_FIELD(VTX_WORD0,     SRC_SEL_X,              SSX,        25, 24)
  405. BC_FIELD(VTX_WORD0,     SRC_SEL_Y,              SSY,        27, 26)
  406. BC_FIELD(VTX_WORD0,     STRUCTURED_READ,        SR,         29, 28)
  407. BC_FIELD(VTX_WORD0,     LDS_REQ,                LR,         30, 30)
  408. BC_FIELD(VTX_WORD0,     COALESCED_READ,         CR,         31, 31)
  409. BC_FORMAT_END(VTX_WORD0)
  410.  
  411.  
  412. BC_FORMAT_BEGIN(VTX_WORD1_GPR)
  413. BC_FIELD(VTX_WORD1_GPR,     DST_GPR,                D_GPR,      6,  0)
  414. BC_FIELD(VTX_WORD1_GPR,     DST_REL,                DR,         7,  7)
  415. BC_RSRVD(VTX_WORD1_GPR,                                         8,  8)
  416. BC_FIELD(VTX_WORD1_GPR,     DST_SEL_X,              DSX,        11, 9)
  417. BC_FIELD(VTX_WORD1_GPR,     DST_SEL_Y,              DSY,        14, 12)
  418. BC_FIELD(VTX_WORD1_GPR,     DST_SEL_Z,              DSZ,        17, 15)
  419. BC_FIELD(VTX_WORD1_GPR,     DST_SEL_W,              DSW,        20, 18)
  420. BC_FIELD(VTX_WORD1_GPR,     USE_CONST_FIELDS,       UCF,        21, 21)
  421. BC_FIELD(VTX_WORD1_GPR,     DATA_FORMAT,            DFMT,       27, 22)
  422. BC_FIELD(VTX_WORD1_GPR,     NUM_FORMAT_ALL,         NFA,        29, 28)
  423. BC_FIELD(VTX_WORD1_GPR,     FORMAT_COMP_ALL,        FCA,        30, 30)
  424. BC_FIELD(VTX_WORD1_GPR,     SRF_MODE_ALL,           SMA,        31, 31)
  425. BC_FORMAT_END(VTX_WORD1_GPR)
  426.  
  427. BC_FORMAT_BEGIN(VTX_WORD1_SEM)
  428. BC_FIELD(VTX_WORD1_SEM,     SEMANTIC_ID,            SID,        7,  0)
  429. BC_RSRVD(VTX_WORD1_SEM,                                         8,  8)
  430. BC_FIELD(VTX_WORD1_SEM,     DST_SEL_X,              DSX,        11, 9)
  431. BC_FIELD(VTX_WORD1_SEM,     DST_SEL_Y,              DSY,        14, 12)
  432. BC_FIELD(VTX_WORD1_SEM,     DST_SEL_Z,              DSZ,        17, 15)
  433. BC_FIELD(VTX_WORD1_SEM,     DST_SEL_W,              DSW,        20, 18)
  434. BC_FIELD(VTX_WORD1_SEM,     USE_CONST_FIELDS,       UCF,        21, 21)
  435. BC_FIELD(VTX_WORD1_SEM,     DATA_FORMAT,            DFMT,       27, 22)
  436. BC_FIELD(VTX_WORD1_SEM,     NUM_FORMAT_ALL,         NFA,        29, 28)
  437. BC_FIELD(VTX_WORD1_SEM,     FORMAT_COMP_ALL,        FCA,        30, 30)
  438. BC_FIELD(VTX_WORD1_SEM,     SRF_MODE_ALL,           SMA,        31, 31)
  439. BC_FORMAT_END(VTX_WORD1_SEM)
  440.  
  441.  
  442. BC_FORMAT_BEGIN_HW(VTX_WORD2, R6)
  443. BC_FIELD(VTX_WORD2,     OFFSET,                 OFS,        15, 0)
  444. BC_FIELD(VTX_WORD2,     ENDIAN_SWAP,            ES,         17, 16)
  445. BC_FIELD(VTX_WORD2,     CONST_BUF_NO_STRIDE,    CBNS,       18, 18)
  446. BC_FIELD(VTX_WORD2,     MEGA_FETCH,             MF,         19, 19)
  447. BC_RSRVD(VTX_WORD2,                                         31, 20)
  448. BC_FORMAT_END(VTX_WORD2)
  449.  
  450. BC_FORMAT_BEGIN_HW(VTX_WORD2, R7)
  451. BC_FIELD(VTX_WORD2,     OFFSET,                 OFS,        15, 0)
  452. BC_FIELD(VTX_WORD2,     ENDIAN_SWAP,            ES,         17, 16)
  453. BC_FIELD(VTX_WORD2,     CONST_BUF_NO_STRIDE,    CBNS,       18, 18)
  454. BC_FIELD(VTX_WORD2,     MEGA_FETCH,             MF,         19, 19)
  455. BC_FIELD(VTX_WORD2,     ALT_CONST,              ALT_C,      20, 20)
  456. BC_RSRVD(VTX_WORD2,                                         31, 21)
  457. BC_FORMAT_END(VTX_WORD2)
  458.  
  459. BC_FORMAT_BEGIN_HW(VTX_WORD2, EG)
  460. BC_FIELD(VTX_WORD2,     OFFSET,                 OFS,        15, 0)
  461. BC_FIELD(VTX_WORD2,     ENDIAN_SWAP,            ES,         17, 16)
  462. BC_FIELD(VTX_WORD2,     CONST_BUF_NO_STRIDE,    CBNS,       18, 18)
  463. BC_FIELD(VTX_WORD2,     MEGA_FETCH,             MF,         19, 19)
  464. BC_FIELD(VTX_WORD2,     ALT_CONST,              ALT_C,      20, 20)
  465. BC_FIELD(VTX_WORD2,     BUFFER_INDEX_MODE,      BIM,        22, 21)
  466. BC_RSRVD(VTX_WORD2,                                         31, 23)
  467. BC_FORMAT_END(VTX_WORD2)
  468.  
  469. BC_FORMAT_BEGIN_HW(VTX_WORD2, CM)
  470. BC_FIELD(VTX_WORD2,     OFFSET,                 OFS,        15, 0)
  471. BC_FIELD(VTX_WORD2,     ENDIAN_SWAP,            ES,         17, 16)
  472. BC_FIELD(VTX_WORD2,     CONST_BUF_NO_STRIDE,    CBNS,       18, 18)
  473. BC_RSRVD(VTX_WORD2,                                         19, 19)
  474. BC_FIELD(VTX_WORD2,     ALT_CONST,              ALT_C,      20, 20)
  475. BC_FIELD(VTX_WORD2,     BUFFER_INDEX_MODE,      BIM,        22, 21)
  476. BC_RSRVD(VTX_WORD2,                                         31, 23)
  477. BC_FORMAT_END(VTX_WORD2)
  478.  
  479. // TEX
  480.  
  481. BC_FORMAT_BEGIN_HW(TEX_WORD0, R6)
  482. BC_FIELD(TEX_WORD0,     TEX_INST,               T_INST,     4,  0)
  483. BC_FIELD(TEX_WORD0,     BC_FRAC_MODE,           BFM,        5,  5)
  484. BC_RSRVD(TEX_WORD0,                                         6,  6)
  485. BC_FIELD(TEX_WORD0,     FETCH_WHOLE_QUAD,       FWQ,        7,  7)
  486. BC_FIELD(TEX_WORD0,     RESOURCE_ID,            RSRC_ID,    15, 8)
  487. BC_FIELD(TEX_WORD0,     SRC_GPR,                S_GPR,      22, 16)
  488. BC_FIELD(TEX_WORD0,     SRC_REL,                SR,         23, 23)
  489. BC_RSRVD(TEX_WORD0,                                         31, 24)
  490. BC_FORMAT_END(TEX_WORD0)
  491.  
  492. BC_FORMAT_BEGIN_HW(TEX_WORD0, R7)
  493. BC_FIELD(TEX_WORD0,     TEX_INST,               T_INST,     4,  0)
  494. BC_FIELD(TEX_WORD0,     BC_FRAC_MODE,           BFM,        5,  5)
  495. BC_RSRVD(TEX_WORD0,                                         6,  6)
  496. BC_FIELD(TEX_WORD0,     FETCH_WHOLE_QUAD,       FWQ,        7,  7)
  497. BC_FIELD(TEX_WORD0,     RESOURCE_ID,            RSRC_ID,    15, 8)
  498. BC_FIELD(TEX_WORD0,     SRC_GPR,                S_GPR,      22, 16)
  499. BC_FIELD(TEX_WORD0,     SRC_REL,                SR,         23, 23)
  500. BC_FIELD(TEX_WORD0,     ALT_CONST,              ALT_C,      24, 24)
  501. BC_RSRVD(TEX_WORD0,                                         31, 25)
  502. BC_FORMAT_END(TEX_WORD0)
  503.  
  504. BC_FORMAT_BEGIN_HW(TEX_WORD0, EGCM)
  505. BC_FIELD(TEX_WORD0,     TEX_INST,               T_INST,     4,  0)
  506. BC_FIELD(TEX_WORD0,     INST_MOD,               IMOD,       6,  5)
  507. BC_FIELD(TEX_WORD0,     FETCH_WHOLE_QUAD,       FWQ,        7,  7)
  508. BC_FIELD(TEX_WORD0,     RESOURCE_ID,            RSRC_ID,    15, 8)
  509. BC_FIELD(TEX_WORD0,     SRC_GPR,                S_GPR,      22, 16)
  510. BC_FIELD(TEX_WORD0,     SRC_REL,                SR,         23, 23)
  511. BC_FIELD(TEX_WORD0,     ALT_CONST,              ALT_C,      24, 24)
  512. BC_FIELD(TEX_WORD0,     RESOURCE_INDEX_MODE,    RIM,        26, 25)
  513. BC_FIELD(TEX_WORD0,     SAMPLER_INDEX_MODE,     SIM,        28, 27)
  514. BC_RSRVD(TEX_WORD0,                                         31, 29)
  515. BC_FORMAT_END(TEX_WORD0)
  516.  
  517.  
  518. BC_FORMAT_BEGIN(TEX_WORD1)
  519. BC_FIELD(TEX_WORD1,     DST_GPR,                D_GPR,      6,  0)
  520. BC_FIELD(TEX_WORD1,     DST_REL,                DR,         7,  7)
  521. BC_RSRVD(TEX_WORD1,                                         8,  8)
  522. BC_FIELD(TEX_WORD1,     DST_SEL_X,              DSX,        11, 9)
  523. BC_FIELD(TEX_WORD1,     DST_SEL_Y,              DSY,        14, 12)
  524. BC_FIELD(TEX_WORD1,     DST_SEL_Z,              DSZ,        17, 15)
  525. BC_FIELD(TEX_WORD1,     DST_SEL_W,              DSW,        20, 18)
  526. BC_FIELD(TEX_WORD1,     LOD_BIAS,               LBIAS,      27, 21)
  527. BC_FIELD(TEX_WORD1,     COORD_TYPE_X,           CTX,        28, 28)
  528. BC_FIELD(TEX_WORD1,     COORD_TYPE_Y,           CTY,        29, 29)
  529. BC_FIELD(TEX_WORD1,     COORD_TYPE_Z,           CTZ,        30, 30)
  530. BC_FIELD(TEX_WORD1,     COORD_TYPE_W,           CTW,        31, 31)
  531. BC_FORMAT_END(TEX_WORD1)
  532.  
  533.  
  534. BC_FORMAT_BEGIN(TEX_WORD2)
  535. BC_FIELD(TEX_WORD2,     OFFSET_X,               OFS_X,      4,  0)
  536. BC_FIELD(TEX_WORD2,     OFFSET_Y,               OFS_Y,      9,  5)
  537. BC_FIELD(TEX_WORD2,     OFFSET_Z,               OFS_Z,      14, 10)
  538. BC_FIELD(TEX_WORD2,     SAMPLER_ID,             SAMP_ID,    19, 15)
  539. BC_FIELD(TEX_WORD2,     SRC_SEL_X,              SSX,        22, 20)
  540. BC_FIELD(TEX_WORD2,     SRC_SEL_Y,              SSY,        25, 23)
  541. BC_FIELD(TEX_WORD2,     SRC_SEL_Z,              SSZ,        28, 26)
  542. BC_FIELD(TEX_WORD2,     SRC_SEL_W,              SSW,        31, 29)
  543. BC_FORMAT_END(TEX_WORD2)
  544.