Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Southern Islands Register documentation
  3.  *
  4.  * Copyright (C) 2011  Advanced Micro Devices, Inc.
  5.  *
  6.  * Permission is hereby granted, free of charge, to any person obtaining a
  7.  * copy of this software and associated documentation files (the "Software"),
  8.  * to deal in the Software without restriction, including without limitation
  9.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  10.  * and/or sell copies of the Software, and to permit persons to whom the
  11.  * Software is furnished to do so, subject to the following conditions:
  12.  *
  13.  * The above copyright notice and this permission notice shall be included
  14.  * in all copies or substantial portions of the Software.
  15.  *
  16.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  17.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  19.  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  20.  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  21.  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  22.  */
  23.  
  24. #ifndef SID_H
  25. #define SID_H
  26.  
  27. /* si values */
  28. #define SI_CONFIG_REG_OFFSET                 0x00008000
  29. #define SI_CONFIG_REG_END                    0x0000B000
  30. #define SI_SH_REG_OFFSET                     0x0000B000
  31. #define SI_SH_REG_END                        0x0000C000
  32. #define SI_CONTEXT_REG_OFFSET                0x00028000
  33. #define SI_CONTEXT_REG_END                   0x00029000
  34. #define CIK_UCONFIG_REG_OFFSET               0x00030000
  35. #define CIK_UCONFIG_REG_END                  0x00031000
  36.  
  37. #define EVENT_TYPE_CACHE_FLUSH                  0x6
  38. #define EVENT_TYPE_PS_PARTIAL_FLUSH            0x10
  39. #define EVENT_TYPE_CACHE_FLUSH_AND_INV_TS_EVENT 0x14
  40. #define EVENT_TYPE_ZPASS_DONE                  0x15
  41. #define EVENT_TYPE_CACHE_FLUSH_AND_INV_EVENT   0x16
  42. #define EVENT_TYPE_SO_VGTSTREAMOUT_FLUSH        0x1f
  43. #define EVENT_TYPE_SAMPLE_STREAMOUTSTATS        0x20
  44. #define         EVENT_TYPE(x)                           ((x) << 0)
  45. #define         EVENT_INDEX(x)                          ((x) << 8)
  46.                 /* 0 - any non-TS event
  47.                  * 1 - ZPASS_DONE
  48.                  * 2 - SAMPLE_PIPELINESTAT
  49.                  * 3 - SAMPLE_STREAMOUTSTAT*
  50.                  * 4 - *S_PARTIAL_FLUSH
  51.                  * 5 - TS events
  52.                  */
  53. #define EVENT_WRITE_INV_L2                   0x100000
  54.  
  55.  
  56. #define PREDICATION_OP_CLEAR 0x0
  57. #define PREDICATION_OP_ZPASS 0x1
  58. #define PREDICATION_OP_PRIMCOUNT 0x2
  59.  
  60. #define PRED_OP(x) ((x) << 16)
  61.  
  62. #define PREDICATION_CONTINUE (1 << 31)
  63.  
  64. #define PREDICATION_HINT_WAIT (0 << 12)
  65. #define PREDICATION_HINT_NOWAIT_DRAW (1 << 12)
  66.  
  67. #define PREDICATION_DRAW_NOT_VISIBLE (0 << 8)
  68. #define PREDICATION_DRAW_VISIBLE (1 << 8)
  69.  
  70. #define R600_TEXEL_PITCH_ALIGNMENT_MASK        0x7
  71.  
  72. #define PKT3_NOP                               0x10
  73. #define PKT3_DISPATCH_DIRECT                   0x15
  74. #define PKT3_DISPATCH_INDIRECT                 0x16
  75. #define PKT3_OCCLUSION_QUERY                   0x1F /* new for CIK */
  76. #define PKT3_SET_PREDICATION                   0x20
  77. #define PKT3_COND_EXEC                         0x22
  78. #define PKT3_PRED_EXEC                         0x23
  79. #define PKT3_DRAW_INDEX_2                      0x27
  80. #define PKT3_CONTEXT_CONTROL                   0x28
  81. #define PKT3_INDEX_TYPE                        0x2A
  82. #define PKT3_DRAW_INDEX_AUTO                   0x2D
  83. #define PKT3_DRAW_INDEX_IMMD                   0x2E /* not on CIK */
  84. #define PKT3_NUM_INSTANCES                     0x2F
  85. #define PKT3_STRMOUT_BUFFER_UPDATE             0x34
  86. #define PKT3_WRITE_DATA                        0x37
  87. #define     PKT3_WRITE_DATA_DST_SEL(x)             ((x) << 8)
  88. #define     PKT3_WRITE_DATA_DST_SEL_REG            0
  89. #define     PKT3_WRITE_DATA_DST_SEL_MEM_SYNC       1
  90. #define     PKT3_WRITE_DATA_DST_SEL_TC_OR_L2       2
  91. #define     PKT3_WRITE_DATA_DST_SEL_GDS            3
  92. #define     PKT3_WRITE_DATA_DST_SEL_RESERVED_4     4
  93. #define     PKT3_WRITE_DATA_DST_SEL_MEM_ASYNC      5
  94. #define     PKT3_WR_ONE_ADDR                       (1 << 16)
  95. #define PKT3_WRITE_DATA_WR_CONFIRM                 (1 << 20)
  96. #define PKT3_WRITE_DATA_ENGINE_SEL(x)              ((x) << 30)
  97. #define PKT3_WRITE_DATA_ENGINE_SEL_ME              0
  98. #define PKT3_WRITE_DATA_ENGINE_SEL_PFP             1
  99. #define PKT3_WRITE_DATA_ENGINE_SEL_CE              2
  100. #define PKT3_MEM_SEMAPHORE                     0x39
  101. #define PKT3_MPEG_INDEX                        0x3A /* not on CIK */
  102. #define PKT3_WAIT_REG_MEM                      0x3C
  103. #define         WAIT_REG_MEM_EQUAL              3
  104. #define PKT3_MEM_WRITE                         0x3D /* not on CIK */
  105. #define PKT3_INDIRECT_BUFFER                   0x32
  106. #define PKT3_SURFACE_SYNC                      0x43 /* deprecated on CIK, use ACQUIRE_MEM */
  107. #define PKT3_ME_INITIALIZE                     0x44 /* not on CIK */
  108. #define PKT3_COND_WRITE                        0x45
  109. #define PKT3_EVENT_WRITE                       0x46
  110. #define PKT3_EVENT_WRITE_EOP                   0x47
  111. #define PKT3_EVENT_WRITE_EOS                   0x48
  112. #define PKT3_ONE_REG_WRITE                     0x57 /* not on CIK */
  113. #define PKT3_ACQUIRE_MEM                       0x58 /* new for CIK */
  114. #define PKT3_SET_CONFIG_REG                    0x68
  115. #define PKT3_SET_CONTEXT_REG                   0x69
  116. #define PKT3_SET_SH_REG                        0x76
  117. #define PKT3_SET_SH_REG_OFFSET                 0x77
  118. #define PKT3_SET_UCONFIG_REG                   0x79 /* new for CIK */
  119.  
  120. #define PKT_TYPE_S(x)                   (((x) & 0x3) << 30)
  121. #define PKT_TYPE_G(x)                   (((x) >> 30) & 0x3)
  122. #define PKT_TYPE_C                      0x3FFFFFFF
  123. #define PKT_COUNT_S(x)                  (((x) & 0x3FFF) << 16)
  124. #define PKT_COUNT_G(x)                  (((x) >> 16) & 0x3FFF)
  125. #define PKT_COUNT_C                     0xC000FFFF
  126. #define PKT0_BASE_INDEX_S(x)            (((x) & 0xFFFF) << 0)
  127. #define PKT0_BASE_INDEX_G(x)            (((x) >> 0) & 0xFFFF)
  128. #define PKT0_BASE_INDEX_C               0xFFFF0000
  129. #define PKT3_IT_OPCODE_S(x)             (((x) & 0xFF) << 8)
  130. #define PKT3_IT_OPCODE_G(x)             (((x) >> 8) & 0xFF)
  131. #define PKT3_IT_OPCODE_C                0xFFFF00FF
  132. #define PKT3_PREDICATE(x)               (((x) >> 0) & 0x1)
  133. #define PKT3_SHADER_TYPE_S(x)           (((x) & 0x1) << 1)
  134. #define PKT0(index, count) (PKT_TYPE_S(0) | PKT0_BASE_INDEX_S(index) | PKT_COUNT_S(count))
  135. #define PKT3(op, count, predicate) (PKT_TYPE_S(3) | PKT3_IT_OPCODE_S(op) | PKT_COUNT_S(count) | PKT3_PREDICATE(predicate))
  136.  
  137. #define R_0084FC_CP_STRMOUT_CNTL                                        0x0084FC
  138. #define   S_0084FC_OFFSET_UPDATE_DONE(x)                              (((x) & 0x1) << 0)
  139. #define R_0085F0_CP_COHER_CNTL                                          0x0085F0
  140. #define   S_0085F0_DEST_BASE_0_ENA(x)                                 (((x) & 0x1) << 0)
  141. #define   G_0085F0_DEST_BASE_0_ENA(x)                                 (((x) >> 0) & 0x1)
  142. #define   C_0085F0_DEST_BASE_0_ENA                                    0xFFFFFFFE
  143. #define   S_0085F0_DEST_BASE_1_ENA(x)                                 (((x) & 0x1) << 1)
  144. #define   G_0085F0_DEST_BASE_1_ENA(x)                                 (((x) >> 1) & 0x1)
  145. #define   C_0085F0_DEST_BASE_1_ENA                                    0xFFFFFFFD
  146. #define   S_0085F0_CB0_DEST_BASE_ENA_SHIFT                            6
  147. #define   S_0085F0_CB0_DEST_BASE_ENA(x)                               (((x) & 0x1) << 6)
  148. #define   G_0085F0_CB0_DEST_BASE_ENA(x)                               (((x) >> 6) & 0x1)
  149. #define   C_0085F0_CB0_DEST_BASE_ENA                                  0xFFFFFFBF
  150. #define   S_0085F0_CB1_DEST_BASE_ENA(x)                               (((x) & 0x1) << 7)
  151. #define   G_0085F0_CB1_DEST_BASE_ENA(x)                               (((x) >> 7) & 0x1)
  152. #define   C_0085F0_CB1_DEST_BASE_ENA                                  0xFFFFFF7F
  153. #define   S_0085F0_CB2_DEST_BASE_ENA(x)                               (((x) & 0x1) << 8)
  154. #define   G_0085F0_CB2_DEST_BASE_ENA(x)                               (((x) >> 8) & 0x1)
  155. #define   C_0085F0_CB2_DEST_BASE_ENA                                  0xFFFFFEFF
  156. #define   S_0085F0_CB3_DEST_BASE_ENA(x)                               (((x) & 0x1) << 9)
  157. #define   G_0085F0_CB3_DEST_BASE_ENA(x)                               (((x) >> 9) & 0x1)
  158. #define   C_0085F0_CB3_DEST_BASE_ENA                                  0xFFFFFDFF
  159. #define   S_0085F0_CB4_DEST_BASE_ENA(x)                               (((x) & 0x1) << 10)
  160. #define   G_0085F0_CB4_DEST_BASE_ENA(x)                               (((x) >> 10) & 0x1)
  161. #define   C_0085F0_CB4_DEST_BASE_ENA                                  0xFFFFFBFF
  162. #define   S_0085F0_CB5_DEST_BASE_ENA(x)                               (((x) & 0x1) << 11)
  163. #define   G_0085F0_CB5_DEST_BASE_ENA(x)                               (((x) >> 11) & 0x1)
  164. #define   C_0085F0_CB5_DEST_BASE_ENA                                  0xFFFFF7FF
  165. #define   S_0085F0_CB6_DEST_BASE_ENA(x)                               (((x) & 0x1) << 12)
  166. #define   G_0085F0_CB6_DEST_BASE_ENA(x)                               (((x) >> 12) & 0x1)
  167. #define   C_0085F0_CB6_DEST_BASE_ENA                                  0xFFFFEFFF
  168. #define   S_0085F0_CB7_DEST_BASE_ENA(x)                               (((x) & 0x1) << 13)
  169. #define   G_0085F0_CB7_DEST_BASE_ENA(x)                               (((x) >> 13) & 0x1)
  170. #define   C_0085F0_CB7_DEST_BASE_ENA                                  0xFFFFDFFF
  171. #define   S_0085F0_DB_DEST_BASE_ENA(x)                                (((x) & 0x1) << 14)
  172. #define   G_0085F0_DB_DEST_BASE_ENA(x)                                (((x) >> 14) & 0x1)
  173. #define   C_0085F0_DB_DEST_BASE_ENA                                   0xFFFFBFFF
  174. #define   S_0085F0_DEST_BASE_2_ENA(x)                                 (((x) & 0x1) << 19)
  175. #define   G_0085F0_DEST_BASE_2_ENA(x)                                 (((x) >> 19) & 0x1)
  176. #define   C_0085F0_DEST_BASE_2_ENA                                    0xFFF7FFFF
  177. #define   S_0085F0_DEST_BASE_3_ENA(x)                                 (((x) & 0x1) << 21)
  178. #define   G_0085F0_DEST_BASE_3_ENA(x)                                 (((x) >> 21) & 0x1)
  179. #define   C_0085F0_DEST_BASE_3_ENA                                    0xFFDFFFFF
  180. #define   S_0085F0_TCL1_ACTION_ENA(x)                                 (((x) & 0x1) << 22)
  181. #define   G_0085F0_TCL1_ACTION_ENA(x)                                 (((x) >> 22) & 0x1)
  182. #define   C_0085F0_TCL1_ACTION_ENA                                    0xFFBFFFFF
  183. #define   S_0085F0_TC_ACTION_ENA(x)                                   (((x) & 0x1) << 23)
  184. #define   G_0085F0_TC_ACTION_ENA(x)                                   (((x) >> 23) & 0x1)
  185. #define   C_0085F0_TC_ACTION_ENA                                      0xFF7FFFFF
  186. #define   S_0085F0_CB_ACTION_ENA(x)                                   (((x) & 0x1) << 25)
  187. #define   G_0085F0_CB_ACTION_ENA(x)                                   (((x) >> 25) & 0x1)
  188. #define   C_0085F0_CB_ACTION_ENA                                      0xFDFFFFFF
  189. #define   S_0085F0_DB_ACTION_ENA(x)                                   (((x) & 0x1) << 26)
  190. #define   G_0085F0_DB_ACTION_ENA(x)                                   (((x) >> 26) & 0x1)
  191. #define   C_0085F0_DB_ACTION_ENA                                      0xFBFFFFFF
  192. #define   S_0085F0_SH_KCACHE_ACTION_ENA(x)                            (((x) & 0x1) << 27)
  193. #define   G_0085F0_SH_KCACHE_ACTION_ENA(x)                            (((x) >> 27) & 0x1)
  194. #define   C_0085F0_SH_KCACHE_ACTION_ENA                               0xF7FFFFFF
  195. #define   S_0085F0_SH_ICACHE_ACTION_ENA(x)                            (((x) & 0x1) << 29)
  196. #define   G_0085F0_SH_ICACHE_ACTION_ENA(x)                            (((x) >> 29) & 0x1)
  197. #define   C_0085F0_SH_ICACHE_ACTION_ENA                               0xDFFFFFFF
  198. #define R_0085F4_CP_COHER_SIZE                                          0x0085F4
  199. #define R_0085F8_CP_COHER_BASE                                          0x0085F8
  200.  
  201. /* CIK */
  202. #define R_0301E4_CP_COHER_BASE_HI                                       0x0301E4
  203. #define   S_0301E4_COHER_BASE_HI_256B(x)                              (((x) & 0xFF) << 0)
  204. #define   G_0301E4_COHER_BASE_HI_256B(x)                              (((x) >> 0) & 0xFF)
  205. #define   C_0301E4_COHER_BASE_HI_256B                                 0xFFFFFF00
  206. #define R_0301F0_CP_COHER_CNTL                                          0x0301F0
  207. #define   S_0301F0_DEST_BASE_0_ENA(x)                                 (((x) & 0x1) << 0)
  208. #define   G_0301F0_DEST_BASE_0_ENA(x)                                 (((x) >> 0) & 0x1)
  209. #define   C_0301F0_DEST_BASE_0_ENA                                    0xFFFFFFFE
  210. #define   S_0301F0_DEST_BASE_1_ENA(x)                                 (((x) & 0x1) << 1)
  211. #define   G_0301F0_DEST_BASE_1_ENA(x)                                 (((x) >> 1) & 0x1)
  212. #define   C_0301F0_DEST_BASE_1_ENA                                    0xFFFFFFFD
  213. #define   S_0301F0_CB0_DEST_BASE_ENA(x)                               (((x) & 0x1) << 6)
  214. #define   G_0301F0_CB0_DEST_BASE_ENA(x)                               (((x) >> 6) & 0x1)
  215. #define   C_0301F0_CB0_DEST_BASE_ENA                                  0xFFFFFFBF
  216. #define   S_0301F0_CB1_DEST_BASE_ENA(x)                               (((x) & 0x1) << 7)
  217. #define   G_0301F0_CB1_DEST_BASE_ENA(x)                               (((x) >> 7) & 0x1)
  218. #define   C_0301F0_CB1_DEST_BASE_ENA                                  0xFFFFFF7F
  219. #define   S_0301F0_CB2_DEST_BASE_ENA(x)                               (((x) & 0x1) << 8)
  220. #define   G_0301F0_CB2_DEST_BASE_ENA(x)                               (((x) >> 8) & 0x1)
  221. #define   C_0301F0_CB2_DEST_BASE_ENA                                  0xFFFFFEFF
  222. #define   S_0301F0_CB3_DEST_BASE_ENA(x)                               (((x) & 0x1) << 9)
  223. #define   G_0301F0_CB3_DEST_BASE_ENA(x)                               (((x) >> 9) & 0x1)
  224. #define   C_0301F0_CB3_DEST_BASE_ENA                                  0xFFFFFDFF
  225. #define   S_0301F0_CB4_DEST_BASE_ENA(x)                               (((x) & 0x1) << 10)
  226. #define   G_0301F0_CB4_DEST_BASE_ENA(x)                               (((x) >> 10) & 0x1)
  227. #define   C_0301F0_CB4_DEST_BASE_ENA                                  0xFFFFFBFF
  228. #define   S_0301F0_CB5_DEST_BASE_ENA(x)                               (((x) & 0x1) << 11)
  229. #define   G_0301F0_CB5_DEST_BASE_ENA(x)                               (((x) >> 11) & 0x1)
  230. #define   C_0301F0_CB5_DEST_BASE_ENA                                  0xFFFFF7FF
  231. #define   S_0301F0_CB6_DEST_BASE_ENA(x)                               (((x) & 0x1) << 12)
  232. #define   G_0301F0_CB6_DEST_BASE_ENA(x)                               (((x) >> 12) & 0x1)
  233. #define   C_0301F0_CB6_DEST_BASE_ENA                                  0xFFFFEFFF
  234. #define   S_0301F0_CB7_DEST_BASE_ENA(x)                               (((x) & 0x1) << 13)
  235. #define   G_0301F0_CB7_DEST_BASE_ENA(x)                               (((x) >> 13) & 0x1)
  236. #define   C_0301F0_CB7_DEST_BASE_ENA                                  0xFFFFDFFF
  237. #define   S_0301F0_DB_DEST_BASE_ENA(x)                                (((x) & 0x1) << 14)
  238. #define   G_0301F0_DB_DEST_BASE_ENA(x)                                (((x) >> 14) & 0x1)
  239. #define   C_0301F0_DB_DEST_BASE_ENA                                   0xFFFFBFFF
  240. #define   S_0301F0_TCL1_VOL_ACTION_ENA(x)                             (((x) & 0x1) << 15)
  241. #define   G_0301F0_TCL1_VOL_ACTION_ENA(x)                             (((x) >> 15) & 0x1)
  242. #define   C_0301F0_TCL1_VOL_ACTION_ENA                                0xFFFF7FFF
  243. #define   S_0301F0_TC_VOL_ACTION_ENA(x)                               (((x) & 0x1) << 16)
  244. #define   G_0301F0_TC_VOL_ACTION_ENA(x)                               (((x) >> 16) & 0x1)
  245. #define   C_0301F0_TC_VOL_ACTION_ENA                                  0xFFFEFFFF
  246. #define   S_0301F0_TC_WB_ACTION_ENA(x)                                (((x) & 0x1) << 18)
  247. #define   G_0301F0_TC_WB_ACTION_ENA(x)                                (((x) >> 18) & 0x1)
  248. #define   C_0301F0_TC_WB_ACTION_ENA                                   0xFFFBFFFF
  249. #define   S_0301F0_DEST_BASE_2_ENA(x)                                 (((x) & 0x1) << 19)
  250. #define   G_0301F0_DEST_BASE_2_ENA(x)                                 (((x) >> 19) & 0x1)
  251. #define   C_0301F0_DEST_BASE_2_ENA                                    0xFFF7FFFF
  252. #define   S_0301F0_DEST_BASE_3_ENA(x)                                 (((x) & 0x1) << 21)
  253. #define   G_0301F0_DEST_BASE_3_ENA(x)                                 (((x) >> 21) & 0x1)
  254. #define   C_0301F0_DEST_BASE_3_ENA                                    0xFFDFFFFF
  255. #define   S_0301F0_TCL1_ACTION_ENA(x)                                 (((x) & 0x1) << 22)
  256. #define   G_0301F0_TCL1_ACTION_ENA(x)                                 (((x) >> 22) & 0x1)
  257. #define   C_0301F0_TCL1_ACTION_ENA                                    0xFFBFFFFF
  258. #define   S_0301F0_TC_ACTION_ENA(x)                                   (((x) & 0x1) << 23)
  259. #define   G_0301F0_TC_ACTION_ENA(x)                                   (((x) >> 23) & 0x1)
  260. #define   C_0301F0_TC_ACTION_ENA                                      0xFF7FFFFF
  261. #define   S_0301F0_CB_ACTION_ENA(x)                                   (((x) & 0x1) << 25)
  262. #define   G_0301F0_CB_ACTION_ENA(x)                                   (((x) >> 25) & 0x1)
  263. #define   C_0301F0_CB_ACTION_ENA                                      0xFDFFFFFF
  264. #define   S_0301F0_DB_ACTION_ENA(x)                                   (((x) & 0x1) << 26)
  265. #define   G_0301F0_DB_ACTION_ENA(x)                                   (((x) >> 26) & 0x1)
  266. #define   C_0301F0_DB_ACTION_ENA                                      0xFBFFFFFF
  267. #define   S_0301F0_SH_KCACHE_ACTION_ENA(x)                            (((x) & 0x1) << 27)
  268. #define   G_0301F0_SH_KCACHE_ACTION_ENA(x)                            (((x) >> 27) & 0x1)
  269. #define   C_0301F0_SH_KCACHE_ACTION_ENA                               0xF7FFFFFF
  270. #define   S_0301F0_SH_KCACHE_VOL_ACTION_ENA(x)                        (((x) & 0x1) << 28)
  271. #define   G_0301F0_SH_KCACHE_VOL_ACTION_ENA(x)                        (((x) >> 28) & 0x1)
  272. #define   C_0301F0_SH_KCACHE_VOL_ACTION_ENA                           0xEFFFFFFF
  273. #define   S_0301F0_SH_ICACHE_ACTION_ENA(x)                            (((x) & 0x1) << 29)
  274. #define   G_0301F0_SH_ICACHE_ACTION_ENA(x)                            (((x) >> 29) & 0x1)
  275. #define   C_0301F0_SH_ICACHE_ACTION_ENA                               0xDFFFFFFF
  276. #define R_0301F4_CP_COHER_SIZE                                          0x0301F4
  277. #define R_0301F8_CP_COHER_BASE                                          0x0301F8
  278. #define R_030230_CP_COHER_SIZE_HI                                       0x030230
  279. #define   S_030230_COHER_SIZE_HI_256B(x)                              (((x) & 0xFF) << 0)
  280. #define   G_030230_COHER_SIZE_HI_256B(x)                              (((x) >> 0) & 0xFF)
  281. #define   C_030230_COHER_SIZE_HI_256B                                 0xFFFFFF00
  282. /*     */
  283. #define R_0088B0_VGT_VTX_VECT_EJECT_REG                                 0x0088B0
  284. #define   S_0088B0_PRIM_COUNT(x)                                      (((x) & 0x3FF) << 0)
  285. #define   G_0088B0_PRIM_COUNT(x)                                      (((x) >> 0) & 0x3FF)
  286. #define   C_0088B0_PRIM_COUNT                                         0xFFFFFC00
  287. #define R_0088C4_VGT_CACHE_INVALIDATION                                 0x0088C4
  288. #define   S_0088C4_VS_NO_EXTRA_BUFFER(x)                              (((x) & 0x1) << 5)
  289. #define   G_0088C4_VS_NO_EXTRA_BUFFER(x)                              (((x) >> 5) & 0x1)
  290. #define   C_0088C4_VS_NO_EXTRA_BUFFER                                 0xFFFFFFDF
  291. #define   S_0088C4_STREAMOUT_FULL_FLUSH(x)                            (((x) & 0x1) << 13)
  292. #define   G_0088C4_STREAMOUT_FULL_FLUSH(x)                            (((x) >> 13) & 0x1)
  293. #define   C_0088C4_STREAMOUT_FULL_FLUSH                               0xFFFFDFFF
  294. #define   S_0088C4_ES_LIMIT(x)                                        (((x) & 0x1F) << 16)
  295. #define   G_0088C4_ES_LIMIT(x)                                        (((x) >> 16) & 0x1F)
  296. #define   C_0088C4_ES_LIMIT                                           0xFFE0FFFF
  297. #define R_0088C8_VGT_ESGS_RING_SIZE                                     0x0088C8
  298. #define R_0088CC_VGT_GSVS_RING_SIZE                                     0x0088CC
  299. /* CIK */
  300. #define R_030900_VGT_ESGS_RING_SIZE                                     0x030900
  301. #define R_030904_VGT_GSVS_RING_SIZE                                     0x030904
  302. /*     */
  303. #define R_0088D4_VGT_GS_VERTEX_REUSE                                    0x0088D4
  304. #define   S_0088D4_VERT_REUSE(x)                                      (((x) & 0x1F) << 0)
  305. #define   G_0088D4_VERT_REUSE(x)                                      (((x) >> 0) & 0x1F)
  306. #define   C_0088D4_VERT_REUSE                                         0xFFFFFFE0
  307. #define R_008958_VGT_PRIMITIVE_TYPE                                     0x008958
  308. #define   S_008958_PRIM_TYPE(x)                                       (((x) & 0x3F) << 0)
  309. #define   G_008958_PRIM_TYPE(x)                                       (((x) >> 0) & 0x3F)
  310. #define   C_008958_PRIM_TYPE                                          0xFFFFFFC0
  311. #define     V_008958_DI_PT_NONE                                     0x00
  312. #define     V_008958_DI_PT_POINTLIST                                0x01
  313. #define     V_008958_DI_PT_LINELIST                                 0x02
  314. #define     V_008958_DI_PT_LINESTRIP                                0x03
  315. #define     V_008958_DI_PT_TRILIST                                  0x04
  316. #define     V_008958_DI_PT_TRIFAN                                   0x05
  317. #define     V_008958_DI_PT_TRISTRIP                                 0x06
  318. #define     V_008958_DI_PT_UNUSED_0                                 0x07
  319. #define     V_008958_DI_PT_UNUSED_1                                 0x08
  320. #define     V_008958_DI_PT_PATCH                                    0x09
  321. #define     V_008958_DI_PT_LINELIST_ADJ                             0x0A
  322. #define     V_008958_DI_PT_LINESTRIP_ADJ                            0x0B
  323. #define     V_008958_DI_PT_TRILIST_ADJ                              0x0C
  324. #define     V_008958_DI_PT_TRISTRIP_ADJ                             0x0D
  325. #define     V_008958_DI_PT_UNUSED_3                                 0x0E
  326. #define     V_008958_DI_PT_UNUSED_4                                 0x0F
  327. #define     V_008958_DI_PT_TRI_WITH_WFLAGS                          0x10
  328. #define     V_008958_DI_PT_RECTLIST                                 0x11
  329. #define     V_008958_DI_PT_LINELOOP                                 0x12
  330. #define     V_008958_DI_PT_QUADLIST                                 0x13
  331. #define     V_008958_DI_PT_QUADSTRIP                                0x14
  332. #define     V_008958_DI_PT_POLYGON                                  0x15
  333. #define     V_008958_DI_PT_2D_COPY_RECT_LIST_V0                     0x16
  334. #define     V_008958_DI_PT_2D_COPY_RECT_LIST_V1                     0x17
  335. #define     V_008958_DI_PT_2D_COPY_RECT_LIST_V2                     0x18
  336. #define     V_008958_DI_PT_2D_COPY_RECT_LIST_V3                     0x19
  337. #define     V_008958_DI_PT_2D_FILL_RECT_LIST                        0x1A
  338. #define     V_008958_DI_PT_2D_LINE_STRIP                            0x1B
  339. #define     V_008958_DI_PT_2D_TRI_STRIP                             0x1C
  340. #define R_00895C_VGT_INDEX_TYPE                                         0x00895C
  341. #define   S_00895C_INDEX_TYPE(x)                                      (((x) & 0x03) << 0)
  342. #define   G_00895C_INDEX_TYPE(x)                                      (((x) >> 0) & 0x03)
  343. #define   C_00895C_INDEX_TYPE                                         0xFFFFFFFC
  344. #define     V_00895C_DI_INDEX_SIZE_16_BIT                           0x00
  345. #define     V_00895C_DI_INDEX_SIZE_32_BIT                           0x01
  346. #define R_008960_VGT_STRMOUT_BUFFER_FILLED_SIZE_0                       0x008960
  347. #define R_008964_VGT_STRMOUT_BUFFER_FILLED_SIZE_1                       0x008964
  348. #define R_008968_VGT_STRMOUT_BUFFER_FILLED_SIZE_2                       0x008968
  349. #define R_00896C_VGT_STRMOUT_BUFFER_FILLED_SIZE_3                       0x00896C
  350. #define R_008970_VGT_NUM_INDICES                                        0x008970
  351. #define R_008974_VGT_NUM_INSTANCES                                      0x008974
  352. #define R_008988_VGT_TF_RING_SIZE                                       0x008988
  353. #define   S_008988_SIZE(x)                                            (((x) & 0xFFFF) << 0)
  354. #define   G_008988_SIZE(x)                                            (((x) >> 0) & 0xFFFF)
  355. #define   C_008988_SIZE                                               0xFFFF0000
  356. #define R_0089B0_VGT_HS_OFFCHIP_PARAM                                   0x0089B0
  357. #define   S_0089B0_OFFCHIP_BUFFERING(x)                               (((x) & 0x7F) << 0)
  358. #define   G_0089B0_OFFCHIP_BUFFERING(x)                               (((x) >> 0) & 0x7F)
  359. #define   C_0089B0_OFFCHIP_BUFFERING                                  0xFFFFFF80
  360. #define R_0089B8_VGT_TF_MEMORY_BASE                                     0x0089B8
  361. #define R_008A14_PA_CL_ENHANCE                                          0x008A14
  362. #define   S_008A14_CLIP_VTX_REORDER_ENA(x)                            (((x) & 0x1) << 0)
  363. #define   G_008A14_CLIP_VTX_REORDER_ENA(x)                            (((x) >> 0) & 0x1)
  364. #define   C_008A14_CLIP_VTX_REORDER_ENA                               0xFFFFFFFE
  365. #define   S_008A14_NUM_CLIP_SEQ(x)                                    (((x) & 0x03) << 1)
  366. #define   G_008A14_NUM_CLIP_SEQ(x)                                    (((x) >> 1) & 0x03)
  367. #define   C_008A14_NUM_CLIP_SEQ                                       0xFFFFFFF9
  368. #define   S_008A14_CLIPPED_PRIM_SEQ_STALL(x)                          (((x) & 0x1) << 3)
  369. #define   G_008A14_CLIPPED_PRIM_SEQ_STALL(x)                          (((x) >> 3) & 0x1)
  370. #define   C_008A14_CLIPPED_PRIM_SEQ_STALL                             0xFFFFFFF7
  371. #define   S_008A14_VE_NAN_PROC_DISABLE(x)                             (((x) & 0x1) << 4)
  372. #define   G_008A14_VE_NAN_PROC_DISABLE(x)                             (((x) >> 4) & 0x1)
  373. #define   C_008A14_VE_NAN_PROC_DISABLE                                0xFFFFFFEF
  374. #define R_008A60_PA_SU_LINE_STIPPLE_VALUE                               0x008A60
  375. #define   S_008A60_LINE_STIPPLE_VALUE(x)                              (((x) & 0xFFFFFF) << 0)
  376. #define   G_008A60_LINE_STIPPLE_VALUE(x)                              (((x) >> 0) & 0xFFFFFF)
  377. #define   C_008A60_LINE_STIPPLE_VALUE                                 0xFF000000
  378. #define R_008B10_PA_SC_LINE_STIPPLE_STATE                               0x008B10
  379. #define   S_008B10_CURRENT_PTR(x)                                     (((x) & 0x0F) << 0)
  380. #define   G_008B10_CURRENT_PTR(x)                                     (((x) >> 0) & 0x0F)
  381. #define   C_008B10_CURRENT_PTR                                        0xFFFFFFF0
  382. #define   S_008B10_CURRENT_COUNT(x)                                   (((x) & 0xFF) << 8)
  383. #define   G_008B10_CURRENT_COUNT(x)                                   (((x) >> 8) & 0xFF)
  384. #define   C_008B10_CURRENT_COUNT                                      0xFFFF00FF
  385. /* CIK */
  386. #define R_030908_VGT_PRIMITIVE_TYPE                                     0x030908
  387. #define   S_030908_PRIM_TYPE(x)                                       (((x) & 0x3F) << 0)
  388. #define   G_030908_PRIM_TYPE(x)                                       (((x) >> 0) & 0x3F)
  389. #define   C_030908_PRIM_TYPE                                          0xFFFFFFC0
  390. #define     V_030908_DI_PT_NONE                                     0x00
  391. #define     V_030908_DI_PT_POINTLIST                                0x01
  392. #define     V_030908_DI_PT_LINELIST                                 0x02
  393. #define     V_030908_DI_PT_LINESTRIP                                0x03
  394. #define     V_030908_DI_PT_TRILIST                                  0x04
  395. #define     V_030908_DI_PT_TRIFAN                                   0x05
  396. #define     V_030908_DI_PT_TRISTRIP                                 0x06
  397. #define     V_030908_DI_PT_PATCH                                    0x09
  398. #define     V_030908_DI_PT_LINELIST_ADJ                             0x0A
  399. #define     V_030908_DI_PT_LINESTRIP_ADJ                            0x0B
  400. #define     V_030908_DI_PT_TRILIST_ADJ                              0x0C
  401. #define     V_030908_DI_PT_TRISTRIP_ADJ                             0x0D
  402. #define     V_030908_DI_PT_TRI_WITH_WFLAGS                          0x10
  403. #define     V_030908_DI_PT_RECTLIST                                 0x11
  404. #define     V_030908_DI_PT_LINELOOP                                 0x12
  405. #define     V_030908_DI_PT_QUADLIST                                 0x13
  406. #define     V_030908_DI_PT_QUADSTRIP                                0x14
  407. #define     V_030908_DI_PT_POLYGON                                  0x15
  408. #define     V_030908_DI_PT_2D_COPY_RECT_LIST_V0                     0x16
  409. #define     V_030908_DI_PT_2D_COPY_RECT_LIST_V1                     0x17
  410. #define     V_030908_DI_PT_2D_COPY_RECT_LIST_V2                     0x18
  411. #define     V_030908_DI_PT_2D_COPY_RECT_LIST_V3                     0x19
  412. #define     V_030908_DI_PT_2D_FILL_RECT_LIST                        0x1A
  413. #define     V_030908_DI_PT_2D_LINE_STRIP                            0x1B
  414. #define     V_030908_DI_PT_2D_TRI_STRIP                             0x1C
  415. #define R_03090C_VGT_INDEX_TYPE                                         0x03090C
  416. #define   S_03090C_INDEX_TYPE(x)                                      (((x) & 0x03) << 0)
  417. #define   G_03090C_INDEX_TYPE(x)                                      (((x) >> 0) & 0x03)
  418. #define   C_03090C_INDEX_TYPE                                         0xFFFFFFFC
  419. #define     V_03090C_DI_INDEX_SIZE_16_BIT                           0x00
  420. #define     V_03090C_DI_INDEX_SIZE_32_BIT                           0x01
  421. #define R_030910_VGT_STRMOUT_BUFFER_FILLED_SIZE_0                       0x030910
  422. #define R_030914_VGT_STRMOUT_BUFFER_FILLED_SIZE_1                       0x030914
  423. #define R_030918_VGT_STRMOUT_BUFFER_FILLED_SIZE_2                       0x030918
  424. #define R_03091C_VGT_STRMOUT_BUFFER_FILLED_SIZE_3                       0x03091C
  425. #define R_030930_VGT_NUM_INDICES                                        0x030930
  426. #define R_030934_VGT_NUM_INSTANCES                                      0x030934
  427. #define R_030938_VGT_TF_RING_SIZE                                       0x030938
  428. #define   S_030938_SIZE(x)                                            (((x) & 0xFFFF) << 0)
  429. #define   G_030938_SIZE(x)                                            (((x) >> 0) & 0xFFFF)
  430. #define   C_030938_SIZE                                               0xFFFF0000
  431. #define R_03093C_VGT_HS_OFFCHIP_PARAM                                   0x03093C
  432. #define   S_03093C_OFFCHIP_BUFFERING(x)                               (((x) & 0x1FF) << 0)
  433. #define   G_03093C_OFFCHIP_BUFFERING(x)                               (((x) >> 0) & 0x1FF)
  434. #define   C_03093C_OFFCHIP_BUFFERING                                  0xFFFFFE00
  435. #define   S_03093C_OFFCHIP_GRANULARITY(x)                             (((x) & 0x03) << 9)
  436. #define   G_03093C_OFFCHIP_GRANULARITY(x)                             (((x) >> 9) & 0x03)
  437. #define   C_03093C_OFFCHIP_GRANULARITY                                0xFFFFF9FF
  438. #define     V_03093C_X_8K_DWORDS                                    0x00
  439. #define     V_03093C_X_4K_DWORDS                                    0x01
  440. #define     V_03093C_X_2K_DWORDS                                    0x02
  441. #define     V_03093C_X_1K_DWORDS                                    0x03
  442. #define R_030940_VGT_TF_MEMORY_BASE                                     0x030940
  443. #define R_030A00_PA_SU_LINE_STIPPLE_VALUE                               0x030A00
  444. #define   S_030A00_LINE_STIPPLE_VALUE(x)                              (((x) & 0xFFFFFF) << 0)
  445. #define   G_030A00_LINE_STIPPLE_VALUE(x)                              (((x) >> 0) & 0xFFFFFF)
  446. #define   C_030A00_LINE_STIPPLE_VALUE                                 0xFF000000
  447. #define R_030A04_PA_SC_LINE_STIPPLE_STATE                               0x030A04
  448. #define   S_030A04_CURRENT_PTR(x)                                     (((x) & 0x0F) << 0)
  449. #define   G_030A04_CURRENT_PTR(x)                                     (((x) >> 0) & 0x0F)
  450. #define   C_030A04_CURRENT_PTR                                        0xFFFFFFF0
  451. #define   S_030A04_CURRENT_COUNT(x)                                   (((x) & 0xFF) << 8)
  452. #define   G_030A04_CURRENT_COUNT(x)                                   (((x) >> 8) & 0xFF)
  453. #define   C_030A04_CURRENT_COUNT                                      0xFFFF00FF
  454. /*     */
  455. #define R_008BF0_PA_SC_ENHANCE                                          0x008BF0
  456. #define   S_008BF0_ENABLE_PA_SC_OUT_OF_ORDER(x)                       (((x) & 0x1) << 0)
  457. #define   G_008BF0_ENABLE_PA_SC_OUT_OF_ORDER(x)                       (((x) >> 0) & 0x1)
  458. #define   C_008BF0_ENABLE_PA_SC_OUT_OF_ORDER                          0xFFFFFFFE
  459. #define   S_008BF0_DISABLE_SC_DB_TILE_FIX(x)                          (((x) & 0x1) << 1)
  460. #define   G_008BF0_DISABLE_SC_DB_TILE_FIX(x)                          (((x) >> 1) & 0x1)
  461. #define   C_008BF0_DISABLE_SC_DB_TILE_FIX                             0xFFFFFFFD
  462. #define   S_008BF0_DISABLE_AA_MASK_FULL_FIX(x)                        (((x) & 0x1) << 2)
  463. #define   G_008BF0_DISABLE_AA_MASK_FULL_FIX(x)                        (((x) >> 2) & 0x1)
  464. #define   C_008BF0_DISABLE_AA_MASK_FULL_FIX                           0xFFFFFFFB
  465. #define   S_008BF0_ENABLE_1XMSAA_SAMPLE_LOCATIONS(x)                  (((x) & 0x1) << 3)
  466. #define   G_008BF0_ENABLE_1XMSAA_SAMPLE_LOCATIONS(x)                  (((x) >> 3) & 0x1)
  467. #define   C_008BF0_ENABLE_1XMSAA_SAMPLE_LOCATIONS                     0xFFFFFFF7
  468. #define   S_008BF0_ENABLE_1XMSAA_SAMPLE_LOC_CENTROID(x)               (((x) & 0x1) << 4)
  469. #define   G_008BF0_ENABLE_1XMSAA_SAMPLE_LOC_CENTROID(x)               (((x) >> 4) & 0x1)
  470. #define   C_008BF0_ENABLE_1XMSAA_SAMPLE_LOC_CENTROID                  0xFFFFFFEF
  471. #define   S_008BF0_DISABLE_SCISSOR_FIX(x)                             (((x) & 0x1) << 5)
  472. #define   G_008BF0_DISABLE_SCISSOR_FIX(x)                             (((x) >> 5) & 0x1)
  473. #define   C_008BF0_DISABLE_SCISSOR_FIX                                0xFFFFFFDF
  474. #define   S_008BF0_DISABLE_PW_BUBBLE_COLLAPSE(x)                      (((x) & 0x03) << 6)
  475. #define   G_008BF0_DISABLE_PW_BUBBLE_COLLAPSE(x)                      (((x) >> 6) & 0x03)
  476. #define   C_008BF0_DISABLE_PW_BUBBLE_COLLAPSE                         0xFFFFFF3F
  477. #define   S_008BF0_SEND_UNLIT_STILES_TO_PACKER(x)                     (((x) & 0x1) << 8)
  478. #define   G_008BF0_SEND_UNLIT_STILES_TO_PACKER(x)                     (((x) >> 8) & 0x1)
  479. #define   C_008BF0_SEND_UNLIT_STILES_TO_PACKER                        0xFFFFFEFF
  480. #define   S_008BF0_DISABLE_DUALGRAD_PERF_OPTIMIZATION(x)              (((x) & 0x1) << 9)
  481. #define   G_008BF0_DISABLE_DUALGRAD_PERF_OPTIMIZATION(x)              (((x) >> 9) & 0x1)
  482. #define   C_008BF0_DISABLE_DUALGRAD_PERF_OPTIMIZATION                 0xFFFFFDFF
  483. #define R_008C08_SQC_CACHES                                             0x008C08
  484. #define   S_008C08_INST_INVALIDATE(x)                                 (((x) & 0x1) << 0)
  485. #define   G_008C08_INST_INVALIDATE(x)                                 (((x) >> 0) & 0x1)
  486. #define   C_008C08_INST_INVALIDATE                                    0xFFFFFFFE
  487. #define   S_008C08_DATA_INVALIDATE(x)                                 (((x) & 0x1) << 1)
  488. #define   G_008C08_DATA_INVALIDATE(x)                                 (((x) >> 1) & 0x1)
  489. #define   C_008C08_DATA_INVALIDATE                                    0xFFFFFFFD
  490. /* CIK */
  491. #define R_030D20_SQC_CACHES                                             0x030D20
  492. #define   S_030D20_INST_INVALIDATE(x)                                 (((x) & 0x1) << 0)
  493. #define   G_030D20_INST_INVALIDATE(x)                                 (((x) >> 0) & 0x1)
  494. #define   C_030D20_INST_INVALIDATE                                    0xFFFFFFFE
  495. #define   S_030D20_DATA_INVALIDATE(x)                                 (((x) & 0x1) << 1)
  496. #define   G_030D20_DATA_INVALIDATE(x)                                 (((x) >> 1) & 0x1)
  497. #define   C_030D20_DATA_INVALIDATE                                    0xFFFFFFFD
  498. #define   S_030D20_INVALIDATE_VOLATILE(x)                             (((x) & 0x1) << 2)
  499. #define   G_030D20_INVALIDATE_VOLATILE(x)                             (((x) >> 2) & 0x1)
  500. #define   C_030D20_INVALIDATE_VOLATILE                                0xFFFFFFFB
  501. /*     */
  502. #define R_008C0C_SQ_RANDOM_WAVE_PRI                                     0x008C0C
  503. #define   S_008C0C_RET(x)                                             (((x) & 0x7F) << 0)
  504. #define   G_008C0C_RET(x)                                             (((x) >> 0) & 0x7F)
  505. #define   C_008C0C_RET                                                0xFFFFFF80
  506. #define   S_008C0C_RUI(x)                                             (((x) & 0x07) << 7)
  507. #define   G_008C0C_RUI(x)                                             (((x) >> 7) & 0x07)
  508. #define   C_008C0C_RUI                                                0xFFFFFC7F
  509. #define   S_008C0C_RNG(x)                                             (((x) & 0x7FF) << 10)
  510. #define   G_008C0C_RNG(x)                                             (((x) >> 10) & 0x7FF)
  511. #define   C_008C0C_RNG                                                0xFFE003FF
  512. #if 0
  513. /* CIK */
  514. #define R_008DFC_SQ_FLAT_1                                              0x008DFC
  515. #define   S_008DFC_ADDR(x)                                            (((x) & 0xFF) << 0)
  516. #define   G_008DFC_ADDR(x)                                            (((x) >> 0) & 0xFF)
  517. #define   C_008DFC_ADDR                                               0xFFFFFF00
  518. #define     V_008DFC_SQ_VGPR                                        0x00
  519. #define   S_008DFC_DATA(x)                                            (((x) & 0xFF) << 8)
  520. #define   G_008DFC_DATA(x)                                            (((x) >> 8) & 0xFF)
  521. #define   C_008DFC_DATA                                               0xFFFF00FF
  522. #define     V_008DFC_SQ_VGPR                                        0x00
  523. #define   S_008DFC_TFE(x)                                             (((x) & 0x1) << 23)
  524. #define   G_008DFC_TFE(x)                                             (((x) >> 23) & 0x1)
  525. #define   C_008DFC_TFE                                                0xFF7FFFFF
  526. #define   S_008DFC_VDST(x)                                            (((x) & 0xFF) << 24)
  527. #define   G_008DFC_VDST(x)                                            (((x) >> 24) & 0xFF)
  528. #define   C_008DFC_VDST                                               0x00FFFFFF
  529. #define     V_008DFC_SQ_VGPR                                        0x00
  530. /*     */
  531. #define R_008DFC_SQ_INST                                                0x008DFC
  532. #define R_008DFC_SQ_VOP1                                                0x008DFC
  533. #define   S_008DFC_SRC0(x)                                            (((x) & 0x1FF) << 0)
  534. #define   G_008DFC_SRC0(x)                                            (((x) >> 0) & 0x1FF)
  535. #define   C_008DFC_SRC0                                               0xFFFFFE00
  536. #define     V_008DFC_SQ_SGPR                                        0x00
  537. /* CIK */
  538. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  539. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  540. /*     */
  541. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  542. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  543. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  544. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  545. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  546. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  547. #define     V_008DFC_SQ_TTMP0                                       0x70
  548. #define     V_008DFC_SQ_TTMP1                                       0x71
  549. #define     V_008DFC_SQ_TTMP2                                       0x72
  550. #define     V_008DFC_SQ_TTMP3                                       0x73
  551. #define     V_008DFC_SQ_TTMP4                                       0x74
  552. #define     V_008DFC_SQ_TTMP5                                       0x75
  553. #define     V_008DFC_SQ_TTMP6                                       0x76
  554. #define     V_008DFC_SQ_TTMP7                                       0x77
  555. #define     V_008DFC_SQ_TTMP8                                       0x78
  556. #define     V_008DFC_SQ_TTMP9                                       0x79
  557. #define     V_008DFC_SQ_TTMP10                                      0x7A
  558. #define     V_008DFC_SQ_TTMP11                                      0x7B
  559. #define     V_008DFC_SQ_M0                                          0x7C
  560. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  561. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  562. #define     V_008DFC_SQ_SRC_0                                       0x80
  563. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  564. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  565. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  566. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  567. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  568. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  569. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  570. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  571. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  572. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  573. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  574. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  575. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  576. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  577. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  578. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  579. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  580. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  581. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  582. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  583. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  584. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  585. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  586. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  587. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  588. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  589. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  590. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  591. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  592. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  593. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  594. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  595. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  596. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  597. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  598. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  599. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  600. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  601. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  602. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  603. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  604. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  605. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  606. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  607. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  608. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  609. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  610. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  611. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  612. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  613. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  614. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  615. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  616. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  617. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  618. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  619. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  620. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  621. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  622. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  623. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  624. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  625. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  626. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  627. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  628. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  629. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  630. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  631. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  632. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  633. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  634. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  635. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  636. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  637. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  638. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  639. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  640. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  641. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  642. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  643. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  644. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  645. #define     V_008DFC_SQ_SRC_1                                       0xF2
  646. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  647. #define     V_008DFC_SQ_SRC_2                                       0xF4
  648. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  649. #define     V_008DFC_SQ_SRC_4                                       0xF6
  650. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  651. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  652. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  653. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  654. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  655. #define     V_008DFC_SQ_SRC_VGPR                                    0x100
  656. #define   S_008DFC_OP(x)                                              (((x) & 0xFF) << 9)
  657. #define   G_008DFC_OP(x)                                              (((x) >> 9) & 0xFF)
  658. #define   C_008DFC_OP                                                 0xFFFE01FF
  659. #define     V_008DFC_SQ_V_NOP                                       0x00
  660. #define     V_008DFC_SQ_V_MOV_B32                                   0x01
  661. #define     V_008DFC_SQ_V_READFIRSTLANE_B32                         0x02
  662. #define     V_008DFC_SQ_V_CVT_I32_F64                               0x03
  663. #define     V_008DFC_SQ_V_CVT_F64_I32                               0x04
  664. #define     V_008DFC_SQ_V_CVT_F32_I32                               0x05
  665. #define     V_008DFC_SQ_V_CVT_F32_U32                               0x06
  666. #define     V_008DFC_SQ_V_CVT_U32_F32                               0x07
  667. #define     V_008DFC_SQ_V_CVT_I32_F32                               0x08
  668. #define     V_008DFC_SQ_V_MOV_FED_B32                               0x09
  669. #define     V_008DFC_SQ_V_CVT_F16_F32                               0x0A
  670. #define     V_008DFC_SQ_V_CVT_F32_F16                               0x0B
  671. #define     V_008DFC_SQ_V_CVT_RPI_I32_F32                           0x0C
  672. #define     V_008DFC_SQ_V_CVT_FLR_I32_F32                           0x0D
  673. #define     V_008DFC_SQ_V_CVT_OFF_F32_I4                            0x0E
  674. #define     V_008DFC_SQ_V_CVT_F32_F64                               0x0F
  675. #define     V_008DFC_SQ_V_CVT_F64_F32                               0x10
  676. #define     V_008DFC_SQ_V_CVT_F32_UBYTE0                            0x11
  677. #define     V_008DFC_SQ_V_CVT_F32_UBYTE1                            0x12
  678. #define     V_008DFC_SQ_V_CVT_F32_UBYTE2                            0x13
  679. #define     V_008DFC_SQ_V_CVT_F32_UBYTE3                            0x14
  680. #define     V_008DFC_SQ_V_CVT_U32_F64                               0x15
  681. #define     V_008DFC_SQ_V_CVT_F64_U32                               0x16
  682. /* CIK */
  683. #define     V_008DFC_SQ_V_TRUNC_F64                                 0x17
  684. #define     V_008DFC_SQ_V_CEIL_F64                                  0x18
  685. #define     V_008DFC_SQ_V_RNDNE_F64                                 0x19
  686. #define     V_008DFC_SQ_V_FLOOR_F64                                 0x1A
  687. /*     */
  688. #define     V_008DFC_SQ_V_FRACT_F32                                 0x20
  689. #define     V_008DFC_SQ_V_TRUNC_F32                                 0x21
  690. #define     V_008DFC_SQ_V_CEIL_F32                                  0x22
  691. #define     V_008DFC_SQ_V_RNDNE_F32                                 0x23
  692. #define     V_008DFC_SQ_V_FLOOR_F32                                 0x24
  693. #define     V_008DFC_SQ_V_EXP_F32                                   0x25
  694. #define     V_008DFC_SQ_V_LOG_CLAMP_F32                             0x26
  695. #define     V_008DFC_SQ_V_LOG_F32                                   0x27
  696. #define     V_008DFC_SQ_V_RCP_CLAMP_F32                             0x28
  697. #define     V_008DFC_SQ_V_RCP_LEGACY_F32                            0x29
  698. #define     V_008DFC_SQ_V_RCP_F32                                   0x2A
  699. #define     V_008DFC_SQ_V_RCP_IFLAG_F32                             0x2B
  700. #define     V_008DFC_SQ_V_RSQ_CLAMP_F32                             0x2C
  701. #define     V_008DFC_SQ_V_RSQ_LEGACY_F32                            0x2D
  702. #define     V_008DFC_SQ_V_RSQ_F32                                   0x2E
  703. #define     V_008DFC_SQ_V_RCP_F64                                   0x2F
  704. #define     V_008DFC_SQ_V_RCP_CLAMP_F64                             0x30
  705. #define     V_008DFC_SQ_V_RSQ_F64                                   0x31
  706. #define     V_008DFC_SQ_V_RSQ_CLAMP_F64                             0x32
  707. #define     V_008DFC_SQ_V_SQRT_F32                                  0x33
  708. #define     V_008DFC_SQ_V_SQRT_F64                                  0x34
  709. #define     V_008DFC_SQ_V_SIN_F32                                   0x35
  710. #define     V_008DFC_SQ_V_COS_F32                                   0x36
  711. #define     V_008DFC_SQ_V_NOT_B32                                   0x37
  712. #define     V_008DFC_SQ_V_BFREV_B32                                 0x38
  713. #define     V_008DFC_SQ_V_FFBH_U32                                  0x39
  714. #define     V_008DFC_SQ_V_FFBL_B32                                  0x3A
  715. #define     V_008DFC_SQ_V_FFBH_I32                                  0x3B
  716. #define     V_008DFC_SQ_V_FREXP_EXP_I32_F64                         0x3C
  717. #define     V_008DFC_SQ_V_FREXP_MANT_F64                            0x3D
  718. #define     V_008DFC_SQ_V_FRACT_F64                                 0x3E
  719. #define     V_008DFC_SQ_V_FREXP_EXP_I32_F32                         0x3F
  720. #define     V_008DFC_SQ_V_FREXP_MANT_F32                            0x40
  721. #define     V_008DFC_SQ_V_CLREXCP                                   0x41
  722. #define     V_008DFC_SQ_V_MOVRELD_B32                               0x42
  723. #define     V_008DFC_SQ_V_MOVRELS_B32                               0x43
  724. #define     V_008DFC_SQ_V_MOVRELSD_B32                              0x44
  725. /* CIK */
  726. #define     V_008DFC_SQ_V_LOG_LEGACY_F32                            0x45
  727. #define     V_008DFC_SQ_V_EXP_LEGACY_F32                            0x46
  728. /*     */
  729. #define   S_008DFC_VDST(x)                                            (((x) & 0xFF) << 17)
  730. #define   G_008DFC_VDST(x)                                            (((x) >> 17) & 0xFF)
  731. #define   C_008DFC_VDST                                               0xFE01FFFF
  732. #define     V_008DFC_SQ_VGPR                                        0x00
  733. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x7F) << 25)
  734. #define   G_008DFC_ENCODING(x)                                        (((x) >> 25) & 0x7F)
  735. #define   C_008DFC_ENCODING                                           0x01FFFFFF
  736. #define     V_008DFC_SQ_ENC_VOP1_FIELD                              0x3F
  737. #define R_008DFC_SQ_MIMG_1                                              0x008DFC
  738. #define   S_008DFC_VADDR(x)                                           (((x) & 0xFF) << 0)
  739. #define   G_008DFC_VADDR(x)                                           (((x) >> 0) & 0xFF)
  740. #define   C_008DFC_VADDR                                              0xFFFFFF00
  741. #define     V_008DFC_SQ_VGPR                                        0x00
  742. #define   S_008DFC_VDATA(x)                                           (((x) & 0xFF) << 8)
  743. #define   G_008DFC_VDATA(x)                                           (((x) >> 8) & 0xFF)
  744. #define   C_008DFC_VDATA                                              0xFFFF00FF
  745. #define     V_008DFC_SQ_VGPR                                        0x00
  746. #define   S_008DFC_SRSRC(x)                                           (((x) & 0x1F) << 16)
  747. #define   G_008DFC_SRSRC(x)                                           (((x) >> 16) & 0x1F)
  748. #define   C_008DFC_SRSRC                                              0xFFE0FFFF
  749. #define   S_008DFC_SSAMP(x)                                           (((x) & 0x1F) << 21)
  750. #define   G_008DFC_SSAMP(x)                                           (((x) >> 21) & 0x1F)
  751. #define   C_008DFC_SSAMP                                              0xFC1FFFFF
  752. #define R_008DFC_SQ_VOP3_1                                              0x008DFC
  753. #define   S_008DFC_SRC0(x)                                            (((x) & 0x1FF) << 0)
  754. #define   G_008DFC_SRC0(x)                                            (((x) >> 0) & 0x1FF)
  755. #define   C_008DFC_SRC0                                               0xFFFFFE00
  756. #define     V_008DFC_SQ_SGPR                                        0x00
  757. /* CIK */
  758. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  759. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  760. /*     */
  761. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  762. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  763. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  764. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  765. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  766. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  767. #define     V_008DFC_SQ_TTMP0                                       0x70
  768. #define     V_008DFC_SQ_TTMP1                                       0x71
  769. #define     V_008DFC_SQ_TTMP2                                       0x72
  770. #define     V_008DFC_SQ_TTMP3                                       0x73
  771. #define     V_008DFC_SQ_TTMP4                                       0x74
  772. #define     V_008DFC_SQ_TTMP5                                       0x75
  773. #define     V_008DFC_SQ_TTMP6                                       0x76
  774. #define     V_008DFC_SQ_TTMP7                                       0x77
  775. #define     V_008DFC_SQ_TTMP8                                       0x78
  776. #define     V_008DFC_SQ_TTMP9                                       0x79
  777. #define     V_008DFC_SQ_TTMP10                                      0x7A
  778. #define     V_008DFC_SQ_TTMP11                                      0x7B
  779. #define     V_008DFC_SQ_M0                                          0x7C
  780. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  781. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  782. #define     V_008DFC_SQ_SRC_0                                       0x80
  783. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  784. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  785. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  786. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  787. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  788. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  789. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  790. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  791. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  792. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  793. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  794. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  795. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  796. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  797. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  798. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  799. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  800. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  801. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  802. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  803. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  804. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  805. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  806. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  807. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  808. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  809. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  810. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  811. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  812. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  813. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  814. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  815. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  816. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  817. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  818. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  819. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  820. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  821. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  822. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  823. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  824. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  825. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  826. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  827. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  828. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  829. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  830. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  831. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  832. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  833. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  834. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  835. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  836. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  837. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  838. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  839. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  840. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  841. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  842. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  843. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  844. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  845. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  846. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  847. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  848. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  849. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  850. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  851. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  852. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  853. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  854. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  855. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  856. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  857. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  858. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  859. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  860. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  861. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  862. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  863. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  864. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  865. #define     V_008DFC_SQ_SRC_1                                       0xF2
  866. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  867. #define     V_008DFC_SQ_SRC_2                                       0xF4
  868. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  869. #define     V_008DFC_SQ_SRC_4                                       0xF6
  870. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  871. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  872. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  873. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  874. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  875. #define     V_008DFC_SQ_SRC_VGPR                                    0x100
  876. #define   S_008DFC_SRC1(x)                                            (((x) & 0x1FF) << 9)
  877. #define   G_008DFC_SRC1(x)                                            (((x) >> 9) & 0x1FF)
  878. #define   C_008DFC_SRC1                                               0xFFFC01FF
  879. #define     V_008DFC_SQ_SGPR                                        0x00
  880. /* CIK */
  881. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  882. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  883. /*     */
  884. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  885. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  886. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  887. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  888. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  889. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  890. #define     V_008DFC_SQ_TTMP0                                       0x70
  891. #define     V_008DFC_SQ_TTMP1                                       0x71
  892. #define     V_008DFC_SQ_TTMP2                                       0x72
  893. #define     V_008DFC_SQ_TTMP3                                       0x73
  894. #define     V_008DFC_SQ_TTMP4                                       0x74
  895. #define     V_008DFC_SQ_TTMP5                                       0x75
  896. #define     V_008DFC_SQ_TTMP6                                       0x76
  897. #define     V_008DFC_SQ_TTMP7                                       0x77
  898. #define     V_008DFC_SQ_TTMP8                                       0x78
  899. #define     V_008DFC_SQ_TTMP9                                       0x79
  900. #define     V_008DFC_SQ_TTMP10                                      0x7A
  901. #define     V_008DFC_SQ_TTMP11                                      0x7B
  902. #define     V_008DFC_SQ_M0                                          0x7C
  903. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  904. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  905. #define     V_008DFC_SQ_SRC_0                                       0x80
  906. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  907. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  908. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  909. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  910. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  911. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  912. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  913. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  914. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  915. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  916. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  917. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  918. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  919. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  920. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  921. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  922. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  923. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  924. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  925. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  926. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  927. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  928. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  929. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  930. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  931. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  932. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  933. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  934. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  935. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  936. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  937. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  938. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  939. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  940. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  941. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  942. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  943. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  944. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  945. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  946. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  947. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  948. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  949. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  950. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  951. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  952. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  953. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  954. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  955. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  956. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  957. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  958. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  959. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  960. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  961. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  962. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  963. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  964. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  965. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  966. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  967. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  968. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  969. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  970. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  971. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  972. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  973. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  974. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  975. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  976. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  977. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  978. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  979. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  980. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  981. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  982. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  983. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  984. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  985. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  986. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  987. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  988. #define     V_008DFC_SQ_SRC_1                                       0xF2
  989. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  990. #define     V_008DFC_SQ_SRC_2                                       0xF4
  991. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  992. #define     V_008DFC_SQ_SRC_4                                       0xF6
  993. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  994. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  995. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  996. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  997. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  998. #define     V_008DFC_SQ_SRC_VGPR                                    0x100
  999. #define   S_008DFC_SRC2(x)                                            (((x) & 0x1FF) << 18)
  1000. #define   G_008DFC_SRC2(x)                                            (((x) >> 18) & 0x1FF)
  1001. #define   C_008DFC_SRC2                                               0xF803FFFF
  1002. #define     V_008DFC_SQ_SGPR                                        0x00
  1003. /* CIK */
  1004. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  1005. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  1006. /*     */
  1007. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  1008. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  1009. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  1010. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  1011. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  1012. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  1013. #define     V_008DFC_SQ_TTMP0                                       0x70
  1014. #define     V_008DFC_SQ_TTMP1                                       0x71
  1015. #define     V_008DFC_SQ_TTMP2                                       0x72
  1016. #define     V_008DFC_SQ_TTMP3                                       0x73
  1017. #define     V_008DFC_SQ_TTMP4                                       0x74
  1018. #define     V_008DFC_SQ_TTMP5                                       0x75
  1019. #define     V_008DFC_SQ_TTMP6                                       0x76
  1020. #define     V_008DFC_SQ_TTMP7                                       0x77
  1021. #define     V_008DFC_SQ_TTMP8                                       0x78
  1022. #define     V_008DFC_SQ_TTMP9                                       0x79
  1023. #define     V_008DFC_SQ_TTMP10                                      0x7A
  1024. #define     V_008DFC_SQ_TTMP11                                      0x7B
  1025. #define     V_008DFC_SQ_M0                                          0x7C
  1026. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  1027. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  1028. #define     V_008DFC_SQ_SRC_0                                       0x80
  1029. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  1030. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  1031. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  1032. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  1033. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  1034. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  1035. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  1036. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  1037. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  1038. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  1039. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  1040. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  1041. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  1042. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  1043. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  1044. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  1045. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  1046. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  1047. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  1048. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  1049. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  1050. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  1051. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  1052. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  1053. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  1054. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  1055. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  1056. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  1057. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  1058. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  1059. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  1060. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  1061. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  1062. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  1063. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  1064. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  1065. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  1066. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  1067. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  1068. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  1069. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  1070. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  1071. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  1072. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  1073. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  1074. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  1075. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  1076. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  1077. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  1078. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  1079. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  1080. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  1081. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  1082. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  1083. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  1084. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  1085. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  1086. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  1087. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  1088. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  1089. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  1090. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  1091. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  1092. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  1093. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  1094. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  1095. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  1096. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  1097. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  1098. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  1099. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  1100. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  1101. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  1102. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  1103. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  1104. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  1105. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  1106. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  1107. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  1108. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  1109. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  1110. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  1111. #define     V_008DFC_SQ_SRC_1                                       0xF2
  1112. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  1113. #define     V_008DFC_SQ_SRC_2                                       0xF4
  1114. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  1115. #define     V_008DFC_SQ_SRC_4                                       0xF6
  1116. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  1117. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  1118. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  1119. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  1120. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  1121. #define     V_008DFC_SQ_SRC_VGPR                                    0x100
  1122. #define   S_008DFC_OMOD(x)                                            (((x) & 0x03) << 27)
  1123. #define   G_008DFC_OMOD(x)                                            (((x) >> 27) & 0x03)
  1124. #define   C_008DFC_OMOD                                               0xE7FFFFFF
  1125. #define     V_008DFC_SQ_OMOD_OFF                                    0x00
  1126. #define     V_008DFC_SQ_OMOD_M2                                     0x01
  1127. #define     V_008DFC_SQ_OMOD_M4                                     0x02
  1128. #define     V_008DFC_SQ_OMOD_D2                                     0x03
  1129. #define   S_008DFC_NEG(x)                                             (((x) & 0x07) << 29)
  1130. #define   G_008DFC_NEG(x)                                             (((x) >> 29) & 0x07)
  1131. #define   C_008DFC_NEG                                                0x1FFFFFFF
  1132. #define R_008DFC_SQ_MUBUF_1                                             0x008DFC
  1133. #define   S_008DFC_VADDR(x)                                           (((x) & 0xFF) << 0)
  1134. #define   G_008DFC_VADDR(x)                                           (((x) >> 0) & 0xFF)
  1135. #define   C_008DFC_VADDR                                              0xFFFFFF00
  1136. #define     V_008DFC_SQ_VGPR                                        0x00
  1137. #define   S_008DFC_VDATA(x)                                           (((x) & 0xFF) << 8)
  1138. #define   G_008DFC_VDATA(x)                                           (((x) >> 8) & 0xFF)
  1139. #define   C_008DFC_VDATA                                              0xFFFF00FF
  1140. #define     V_008DFC_SQ_VGPR                                        0x00
  1141. #define   S_008DFC_SRSRC(x)                                           (((x) & 0x1F) << 16)
  1142. #define   G_008DFC_SRSRC(x)                                           (((x) >> 16) & 0x1F)
  1143. #define   C_008DFC_SRSRC                                              0xFFE0FFFF
  1144. #define   S_008DFC_SLC(x)                                             (((x) & 0x1) << 22)
  1145. #define   G_008DFC_SLC(x)                                             (((x) >> 22) & 0x1)
  1146. #define   C_008DFC_SLC                                                0xFFBFFFFF
  1147. #define   S_008DFC_TFE(x)                                             (((x) & 0x1) << 23)
  1148. #define   G_008DFC_TFE(x)                                             (((x) >> 23) & 0x1)
  1149. #define   C_008DFC_TFE                                                0xFF7FFFFF
  1150. #define   S_008DFC_SOFFSET(x)                                         (((x) & 0xFF) << 24)
  1151. #define   G_008DFC_SOFFSET(x)                                         (((x) >> 24) & 0xFF)
  1152. #define   C_008DFC_SOFFSET                                            0x00FFFFFF
  1153. #define     V_008DFC_SQ_SGPR                                        0x00
  1154. /* CIK */
  1155. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  1156. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  1157. /*     */
  1158. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  1159. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  1160. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  1161. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  1162. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  1163. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  1164. #define     V_008DFC_SQ_TTMP0                                       0x70
  1165. #define     V_008DFC_SQ_TTMP1                                       0x71
  1166. #define     V_008DFC_SQ_TTMP2                                       0x72
  1167. #define     V_008DFC_SQ_TTMP3                                       0x73
  1168. #define     V_008DFC_SQ_TTMP4                                       0x74
  1169. #define     V_008DFC_SQ_TTMP5                                       0x75
  1170. #define     V_008DFC_SQ_TTMP6                                       0x76
  1171. #define     V_008DFC_SQ_TTMP7                                       0x77
  1172. #define     V_008DFC_SQ_TTMP8                                       0x78
  1173. #define     V_008DFC_SQ_TTMP9                                       0x79
  1174. #define     V_008DFC_SQ_TTMP10                                      0x7A
  1175. #define     V_008DFC_SQ_TTMP11                                      0x7B
  1176. #define     V_008DFC_SQ_M0                                          0x7C
  1177. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  1178. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  1179. #define     V_008DFC_SQ_SRC_0                                       0x80
  1180. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  1181. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  1182. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  1183. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  1184. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  1185. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  1186. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  1187. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  1188. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  1189. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  1190. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  1191. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  1192. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  1193. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  1194. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  1195. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  1196. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  1197. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  1198. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  1199. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  1200. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  1201. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  1202. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  1203. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  1204. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  1205. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  1206. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  1207. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  1208. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  1209. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  1210. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  1211. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  1212. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  1213. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  1214. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  1215. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  1216. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  1217. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  1218. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  1219. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  1220. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  1221. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  1222. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  1223. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  1224. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  1225. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  1226. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  1227. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  1228. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  1229. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  1230. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  1231. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  1232. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  1233. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  1234. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  1235. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  1236. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  1237. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  1238. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  1239. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  1240. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  1241. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  1242. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  1243. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  1244. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  1245. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  1246. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  1247. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  1248. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  1249. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  1250. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  1251. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  1252. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  1253. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  1254. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  1255. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  1256. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  1257. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  1258. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  1259. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  1260. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  1261. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  1262. #define     V_008DFC_SQ_SRC_1                                       0xF2
  1263. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  1264. #define     V_008DFC_SQ_SRC_2                                       0xF4
  1265. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  1266. #define     V_008DFC_SQ_SRC_4                                       0xF6
  1267. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  1268. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  1269. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  1270. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  1271. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  1272. #define R_008DFC_SQ_DS_0                                                0x008DFC
  1273. #define   S_008DFC_OFFSET0(x)                                         (((x) & 0xFF) << 0)
  1274. #define   G_008DFC_OFFSET0(x)                                         (((x) >> 0) & 0xFF)
  1275. #define   C_008DFC_OFFSET0                                            0xFFFFFF00
  1276. #define   S_008DFC_OFFSET1(x)                                         (((x) & 0xFF) << 8)
  1277. #define   G_008DFC_OFFSET1(x)                                         (((x) >> 8) & 0xFF)
  1278. #define   C_008DFC_OFFSET1                                            0xFFFF00FF
  1279. #define   S_008DFC_GDS(x)                                             (((x) & 0x1) << 17)
  1280. #define   G_008DFC_GDS(x)                                             (((x) >> 17) & 0x1)
  1281. #define   C_008DFC_GDS                                                0xFFFDFFFF
  1282. #define   S_008DFC_OP(x)                                              (((x) & 0xFF) << 18)
  1283. #define   G_008DFC_OP(x)                                              (((x) >> 18) & 0xFF)
  1284. #define   C_008DFC_OP                                                 0xFC03FFFF
  1285. #define     V_008DFC_SQ_DS_ADD_U32                                  0x00
  1286. #define     V_008DFC_SQ_DS_SUB_U32                                  0x01
  1287. #define     V_008DFC_SQ_DS_RSUB_U32                                 0x02
  1288. #define     V_008DFC_SQ_DS_INC_U32                                  0x03
  1289. #define     V_008DFC_SQ_DS_DEC_U32                                  0x04
  1290. #define     V_008DFC_SQ_DS_MIN_I32                                  0x05
  1291. #define     V_008DFC_SQ_DS_MAX_I32                                  0x06
  1292. #define     V_008DFC_SQ_DS_MIN_U32                                  0x07
  1293. #define     V_008DFC_SQ_DS_MAX_U32                                  0x08
  1294. #define     V_008DFC_SQ_DS_AND_B32                                  0x09
  1295. #define     V_008DFC_SQ_DS_OR_B32                                   0x0A
  1296. #define     V_008DFC_SQ_DS_XOR_B32                                  0x0B
  1297. #define     V_008DFC_SQ_DS_MSKOR_B32                                0x0C
  1298. #define     V_008DFC_SQ_DS_WRITE_B32                                0x0D
  1299. #define     V_008DFC_SQ_DS_WRITE2_B32                               0x0E
  1300. #define     V_008DFC_SQ_DS_WRITE2ST64_B32                           0x0F
  1301. #define     V_008DFC_SQ_DS_CMPST_B32                                0x10
  1302. #define     V_008DFC_SQ_DS_CMPST_F32                                0x11
  1303. #define     V_008DFC_SQ_DS_MIN_F32                                  0x12
  1304. #define     V_008DFC_SQ_DS_MAX_F32                                  0x13
  1305. /* CIK */
  1306. #define     V_008DFC_SQ_DS_NOP                                      0x14
  1307. /*     */
  1308. #define     V_008DFC_SQ_DS_GWS_INIT                                 0x19
  1309. #define     V_008DFC_SQ_DS_GWS_SEMA_V                               0x1A
  1310. #define     V_008DFC_SQ_DS_GWS_SEMA_BR                              0x1B
  1311. #define     V_008DFC_SQ_DS_GWS_SEMA_P                               0x1C
  1312. #define     V_008DFC_SQ_DS_GWS_BARRIER                              0x1D
  1313. #define     V_008DFC_SQ_DS_WRITE_B8                                 0x1E
  1314. #define     V_008DFC_SQ_DS_WRITE_B16                                0x1F
  1315. #define     V_008DFC_SQ_DS_ADD_RTN_U32                              0x20
  1316. #define     V_008DFC_SQ_DS_SUB_RTN_U32                              0x21
  1317. #define     V_008DFC_SQ_DS_RSUB_RTN_U32                             0x22
  1318. #define     V_008DFC_SQ_DS_INC_RTN_U32                              0x23
  1319. #define     V_008DFC_SQ_DS_DEC_RTN_U32                              0x24
  1320. #define     V_008DFC_SQ_DS_MIN_RTN_I32                              0x25
  1321. #define     V_008DFC_SQ_DS_MAX_RTN_I32                              0x26
  1322. #define     V_008DFC_SQ_DS_MIN_RTN_U32                              0x27
  1323. #define     V_008DFC_SQ_DS_MAX_RTN_U32                              0x28
  1324. #define     V_008DFC_SQ_DS_AND_RTN_B32                              0x29
  1325. #define     V_008DFC_SQ_DS_OR_RTN_B32                               0x2A
  1326. #define     V_008DFC_SQ_DS_XOR_RTN_B32                              0x2B
  1327. #define     V_008DFC_SQ_DS_MSKOR_RTN_B32                            0x2C
  1328. #define     V_008DFC_SQ_DS_WRXCHG_RTN_B32                           0x2D
  1329. #define     V_008DFC_SQ_DS_WRXCHG2_RTN_B32                          0x2E
  1330. #define     V_008DFC_SQ_DS_WRXCHG2ST64_RTN_B32                      0x2F
  1331. #define     V_008DFC_SQ_DS_CMPST_RTN_B32                            0x30
  1332. #define     V_008DFC_SQ_DS_CMPST_RTN_F32                            0x31
  1333. #define     V_008DFC_SQ_DS_MIN_RTN_F32                              0x32
  1334. #define     V_008DFC_SQ_DS_MAX_RTN_F32                              0x33
  1335. #define     V_008DFC_SQ_DS_SWIZZLE_B32                              0x35
  1336. #define     V_008DFC_SQ_DS_READ_B32                                 0x36
  1337. #define     V_008DFC_SQ_DS_READ2_B32                                0x37
  1338. #define     V_008DFC_SQ_DS_READ2ST64_B32                            0x38
  1339. #define     V_008DFC_SQ_DS_READ_I8                                  0x39
  1340. #define     V_008DFC_SQ_DS_READ_U8                                  0x3A
  1341. #define     V_008DFC_SQ_DS_READ_I16                                 0x3B
  1342. #define     V_008DFC_SQ_DS_READ_U16                                 0x3C
  1343. #define     V_008DFC_SQ_DS_CONSUME                                  0x3D
  1344. #define     V_008DFC_SQ_DS_APPEND                                   0x3E
  1345. #define     V_008DFC_SQ_DS_ORDERED_COUNT                            0x3F
  1346. #define     V_008DFC_SQ_DS_ADD_U64                                  0x40
  1347. #define     V_008DFC_SQ_DS_SUB_U64                                  0x41
  1348. #define     V_008DFC_SQ_DS_RSUB_U64                                 0x42
  1349. #define     V_008DFC_SQ_DS_INC_U64                                  0x43
  1350. #define     V_008DFC_SQ_DS_DEC_U64                                  0x44
  1351. #define     V_008DFC_SQ_DS_MIN_I64                                  0x45
  1352. #define     V_008DFC_SQ_DS_MAX_I64                                  0x46
  1353. #define     V_008DFC_SQ_DS_MIN_U64                                  0x47
  1354. #define     V_008DFC_SQ_DS_MAX_U64                                  0x48
  1355. #define     V_008DFC_SQ_DS_AND_B64                                  0x49
  1356. #define     V_008DFC_SQ_DS_OR_B64                                   0x4A
  1357. #define     V_008DFC_SQ_DS_XOR_B64                                  0x4B
  1358. #define     V_008DFC_SQ_DS_MSKOR_B64                                0x4C
  1359. #define     V_008DFC_SQ_DS_WRITE_B64                                0x4D
  1360. #define     V_008DFC_SQ_DS_WRITE2_B64                               0x4E
  1361. #define     V_008DFC_SQ_DS_WRITE2ST64_B64                           0x4F
  1362. #define     V_008DFC_SQ_DS_CMPST_B64                                0x50
  1363. #define     V_008DFC_SQ_DS_CMPST_F64                                0x51
  1364. #define     V_008DFC_SQ_DS_MIN_F64                                  0x52
  1365. #define     V_008DFC_SQ_DS_MAX_F64                                  0x53
  1366. #define     V_008DFC_SQ_DS_ADD_RTN_U64                              0x60
  1367. #define     V_008DFC_SQ_DS_SUB_RTN_U64                              0x61
  1368. #define     V_008DFC_SQ_DS_RSUB_RTN_U64                             0x62
  1369. #define     V_008DFC_SQ_DS_INC_RTN_U64                              0x63
  1370. #define     V_008DFC_SQ_DS_DEC_RTN_U64                              0x64
  1371. #define     V_008DFC_SQ_DS_MIN_RTN_I64                              0x65
  1372. #define     V_008DFC_SQ_DS_MAX_RTN_I64                              0x66
  1373. #define     V_008DFC_SQ_DS_MIN_RTN_U64                              0x67
  1374. #define     V_008DFC_SQ_DS_MAX_RTN_U64                              0x68
  1375. #define     V_008DFC_SQ_DS_AND_RTN_B64                              0x69
  1376. #define     V_008DFC_SQ_DS_OR_RTN_B64                               0x6A
  1377. #define     V_008DFC_SQ_DS_XOR_RTN_B64                              0x6B
  1378. #define     V_008DFC_SQ_DS_MSKOR_RTN_B64                            0x6C
  1379. #define     V_008DFC_SQ_DS_WRXCHG_RTN_B64                           0x6D
  1380. #define     V_008DFC_SQ_DS_WRXCHG2_RTN_B64                          0x6E
  1381. #define     V_008DFC_SQ_DS_WRXCHG2ST64_RTN_B64                      0x6F
  1382. #define     V_008DFC_SQ_DS_CMPST_RTN_B64                            0x70
  1383. #define     V_008DFC_SQ_DS_CMPST_RTN_F64                            0x71
  1384. #define     V_008DFC_SQ_DS_MIN_RTN_F64                              0x72
  1385. #define     V_008DFC_SQ_DS_MAX_RTN_F64                              0x73
  1386. #define     V_008DFC_SQ_DS_READ_B64                                 0x76
  1387. #define     V_008DFC_SQ_DS_READ2_B64                                0x77
  1388. #define     V_008DFC_SQ_DS_READ2ST64_B64                            0x78
  1389. /* CIK */
  1390. #define     V_008DFC_SQ_DS_CONDXCHG32_RTN_B64                       0x7E
  1391. /*     */
  1392. #define     V_008DFC_SQ_DS_ADD_SRC2_U32                             0x80
  1393. #define     V_008DFC_SQ_DS_SUB_SRC2_U32                             0x81
  1394. #define     V_008DFC_SQ_DS_RSUB_SRC2_U32                            0x82
  1395. #define     V_008DFC_SQ_DS_INC_SRC2_U32                             0x83
  1396. #define     V_008DFC_SQ_DS_DEC_SRC2_U32                             0x84
  1397. #define     V_008DFC_SQ_DS_MIN_SRC2_I32                             0x85
  1398. #define     V_008DFC_SQ_DS_MAX_SRC2_I32                             0x86
  1399. #define     V_008DFC_SQ_DS_MIN_SRC2_U32                             0x87
  1400. #define     V_008DFC_SQ_DS_MAX_SRC2_U32                             0x88
  1401. #define     V_008DFC_SQ_DS_AND_SRC2_B32                             0x89
  1402. #define     V_008DFC_SQ_DS_OR_SRC2_B32                              0x8A
  1403. #define     V_008DFC_SQ_DS_XOR_SRC2_B32                             0x8B
  1404. #define     V_008DFC_SQ_DS_WRITE_SRC2_B32                           0x8D
  1405. #define     V_008DFC_SQ_DS_MIN_SRC2_F32                             0x92
  1406. #define     V_008DFC_SQ_DS_MAX_SRC2_F32                             0x93
  1407. #define     V_008DFC_SQ_DS_ADD_SRC2_U64                             0xC0
  1408. #define     V_008DFC_SQ_DS_SUB_SRC2_U64                             0xC1
  1409. #define     V_008DFC_SQ_DS_RSUB_SRC2_U64                            0xC2
  1410. #define     V_008DFC_SQ_DS_INC_SRC2_U64                             0xC3
  1411. #define     V_008DFC_SQ_DS_DEC_SRC2_U64                             0xC4
  1412. #define     V_008DFC_SQ_DS_MIN_SRC2_I64                             0xC5
  1413. #define     V_008DFC_SQ_DS_MAX_SRC2_I64                             0xC6
  1414. #define     V_008DFC_SQ_DS_MIN_SRC2_U64                             0xC7
  1415. #define     V_008DFC_SQ_DS_MAX_SRC2_U64                             0xC8
  1416. #define     V_008DFC_SQ_DS_AND_SRC2_B64                             0xC9
  1417. #define     V_008DFC_SQ_DS_OR_SRC2_B64                              0xCA
  1418. #define     V_008DFC_SQ_DS_XOR_SRC2_B64                             0xCB
  1419. #define     V_008DFC_SQ_DS_WRITE_SRC2_B64                           0xCD
  1420. #define     V_008DFC_SQ_DS_MIN_SRC2_F64                             0xD2
  1421. #define     V_008DFC_SQ_DS_MAX_SRC2_F64                             0xD3
  1422. /* CIK */
  1423. #define     V_008DFC_SQ_DS_WRITE_B96                                0xDE
  1424. #define     V_008DFC_SQ_DS_WRITE_B128                               0xDF
  1425. #define     V_008DFC_SQ_DS_CONDXCHG32_RTN_B128                      0xFD
  1426. #define     V_008DFC_SQ_DS_READ_B96                                 0xFE
  1427. #define     V_008DFC_SQ_DS_READ_B128                                0xFF
  1428. /*     */
  1429. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  1430. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  1431. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  1432. #define     V_008DFC_SQ_ENC_DS_FIELD                                0x36
  1433. #define R_008DFC_SQ_SOPC                                                0x008DFC
  1434. #define   S_008DFC_SSRC0(x)                                           (((x) & 0xFF) << 0)
  1435. #define   G_008DFC_SSRC0(x)                                           (((x) >> 0) & 0xFF)
  1436. #define   C_008DFC_SSRC0                                              0xFFFFFF00
  1437. #define     V_008DFC_SQ_SGPR                                        0x00
  1438. /* CIK */
  1439. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  1440. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  1441. /*     */
  1442. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  1443. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  1444. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  1445. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  1446. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  1447. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  1448. #define     V_008DFC_SQ_TTMP0                                       0x70
  1449. #define     V_008DFC_SQ_TTMP1                                       0x71
  1450. #define     V_008DFC_SQ_TTMP2                                       0x72
  1451. #define     V_008DFC_SQ_TTMP3                                       0x73
  1452. #define     V_008DFC_SQ_TTMP4                                       0x74
  1453. #define     V_008DFC_SQ_TTMP5                                       0x75
  1454. #define     V_008DFC_SQ_TTMP6                                       0x76
  1455. #define     V_008DFC_SQ_TTMP7                                       0x77
  1456. #define     V_008DFC_SQ_TTMP8                                       0x78
  1457. #define     V_008DFC_SQ_TTMP9                                       0x79
  1458. #define     V_008DFC_SQ_TTMP10                                      0x7A
  1459. #define     V_008DFC_SQ_TTMP11                                      0x7B
  1460. #define     V_008DFC_SQ_M0                                          0x7C
  1461. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  1462. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  1463. #define     V_008DFC_SQ_SRC_0                                       0x80
  1464. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  1465. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  1466. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  1467. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  1468. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  1469. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  1470. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  1471. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  1472. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  1473. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  1474. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  1475. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  1476. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  1477. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  1478. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  1479. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  1480. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  1481. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  1482. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  1483. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  1484. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  1485. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  1486. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  1487. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  1488. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  1489. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  1490. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  1491. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  1492. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  1493. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  1494. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  1495. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  1496. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  1497. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  1498. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  1499. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  1500. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  1501. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  1502. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  1503. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  1504. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  1505. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  1506. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  1507. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  1508. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  1509. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  1510. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  1511. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  1512. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  1513. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  1514. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  1515. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  1516. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  1517. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  1518. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  1519. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  1520. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  1521. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  1522. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  1523. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  1524. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  1525. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  1526. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  1527. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  1528. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  1529. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  1530. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  1531. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  1532. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  1533. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  1534. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  1535. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  1536. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  1537. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  1538. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  1539. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  1540. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  1541. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  1542. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  1543. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  1544. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  1545. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  1546. #define     V_008DFC_SQ_SRC_1                                       0xF2
  1547. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  1548. #define     V_008DFC_SQ_SRC_2                                       0xF4
  1549. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  1550. #define     V_008DFC_SQ_SRC_4                                       0xF6
  1551. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  1552. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  1553. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  1554. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  1555. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  1556. #define   S_008DFC_SSRC1(x)                                           (((x) & 0xFF) << 8)
  1557. #define   G_008DFC_SSRC1(x)                                           (((x) >> 8) & 0xFF)
  1558. #define   C_008DFC_SSRC1                                              0xFFFF00FF
  1559. #define     V_008DFC_SQ_SGPR                                        0x00
  1560. /* CIK */
  1561. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  1562. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  1563. /*     */
  1564. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  1565. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  1566. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  1567. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  1568. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  1569. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  1570. #define     V_008DFC_SQ_TTMP0                                       0x70
  1571. #define     V_008DFC_SQ_TTMP1                                       0x71
  1572. #define     V_008DFC_SQ_TTMP2                                       0x72
  1573. #define     V_008DFC_SQ_TTMP3                                       0x73
  1574. #define     V_008DFC_SQ_TTMP4                                       0x74
  1575. #define     V_008DFC_SQ_TTMP5                                       0x75
  1576. #define     V_008DFC_SQ_TTMP6                                       0x76
  1577. #define     V_008DFC_SQ_TTMP7                                       0x77
  1578. #define     V_008DFC_SQ_TTMP8                                       0x78
  1579. #define     V_008DFC_SQ_TTMP9                                       0x79
  1580. #define     V_008DFC_SQ_TTMP10                                      0x7A
  1581. #define     V_008DFC_SQ_TTMP11                                      0x7B
  1582. #define     V_008DFC_SQ_M0                                          0x7C
  1583. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  1584. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  1585. #define     V_008DFC_SQ_SRC_0                                       0x80
  1586. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  1587. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  1588. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  1589. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  1590. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  1591. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  1592. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  1593. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  1594. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  1595. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  1596. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  1597. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  1598. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  1599. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  1600. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  1601. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  1602. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  1603. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  1604. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  1605. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  1606. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  1607. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  1608. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  1609. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  1610. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  1611. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  1612. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  1613. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  1614. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  1615. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  1616. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  1617. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  1618. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  1619. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  1620. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  1621. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  1622. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  1623. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  1624. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  1625. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  1626. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  1627. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  1628. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  1629. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  1630. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  1631. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  1632. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  1633. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  1634. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  1635. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  1636. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  1637. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  1638. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  1639. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  1640. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  1641. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  1642. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  1643. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  1644. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  1645. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  1646. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  1647. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  1648. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  1649. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  1650. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  1651. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  1652. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  1653. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  1654. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  1655. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  1656. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  1657. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  1658. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  1659. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  1660. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  1661. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  1662. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  1663. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  1664. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  1665. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  1666. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  1667. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  1668. #define     V_008DFC_SQ_SRC_1                                       0xF2
  1669. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  1670. #define     V_008DFC_SQ_SRC_2                                       0xF4
  1671. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  1672. #define     V_008DFC_SQ_SRC_4                                       0xF6
  1673. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  1674. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  1675. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  1676. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  1677. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  1678. #define   S_008DFC_OP(x)                                              (((x) & 0x7F) << 16)
  1679. #define   G_008DFC_OP(x)                                              (((x) >> 16) & 0x7F)
  1680. #define   C_008DFC_OP                                                 0xFF80FFFF
  1681. #define     V_008DFC_SQ_S_CMP_EQ_I32                                0x00
  1682. #define     V_008DFC_SQ_S_CMP_LG_I32                                0x01
  1683. #define     V_008DFC_SQ_S_CMP_GT_I32                                0x02
  1684. #define     V_008DFC_SQ_S_CMP_GE_I32                                0x03
  1685. #define     V_008DFC_SQ_S_CMP_LT_I32                                0x04
  1686. #define     V_008DFC_SQ_S_CMP_LE_I32                                0x05
  1687. #define     V_008DFC_SQ_S_CMP_EQ_U32                                0x06
  1688. #define     V_008DFC_SQ_S_CMP_LG_U32                                0x07
  1689. #define     V_008DFC_SQ_S_CMP_GT_U32                                0x08
  1690. #define     V_008DFC_SQ_S_CMP_GE_U32                                0x09
  1691. #define     V_008DFC_SQ_S_CMP_LT_U32                                0x0A
  1692. #define     V_008DFC_SQ_S_CMP_LE_U32                                0x0B
  1693. #define     V_008DFC_SQ_S_BITCMP0_B32                               0x0C
  1694. #define     V_008DFC_SQ_S_BITCMP1_B32                               0x0D
  1695. #define     V_008DFC_SQ_S_BITCMP0_B64                               0x0E
  1696. #define     V_008DFC_SQ_S_BITCMP1_B64                               0x0F
  1697. #define     V_008DFC_SQ_S_SETVSKIP                                  0x10
  1698. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x1FF) << 23)
  1699. #define   G_008DFC_ENCODING(x)                                        (((x) >> 23) & 0x1FF)
  1700. #define   C_008DFC_ENCODING                                           0x007FFFFF
  1701. #define     V_008DFC_SQ_ENC_SOPC_FIELD                              0x17E
  1702. #endif
  1703. #define R_008DFC_SQ_EXP_0                                               0x008DFC
  1704. #define   S_008DFC_EN(x)                                              (((x) & 0x0F) << 0)
  1705. #define   G_008DFC_EN(x)                                              (((x) >> 0) & 0x0F)
  1706. #define   C_008DFC_EN                                                 0xFFFFFFF0
  1707. #define   S_008DFC_TGT(x)                                             (((x) & 0x3F) << 4)
  1708. #define   G_008DFC_TGT(x)                                             (((x) >> 4) & 0x3F)
  1709. #define   C_008DFC_TGT                                                0xFFFFFC0F
  1710. #define     V_008DFC_SQ_EXP_MRT                                     0x00
  1711. #define     V_008DFC_SQ_EXP_MRTZ                                    0x08
  1712. #define     V_008DFC_SQ_EXP_NULL                                    0x09
  1713. #define     V_008DFC_SQ_EXP_POS                                     0x0C
  1714. #define     V_008DFC_SQ_EXP_PARAM                                   0x20
  1715. #define   S_008DFC_COMPR(x)                                           (((x) & 0x1) << 10)
  1716. #define   G_008DFC_COMPR(x)                                           (((x) >> 10) & 0x1)
  1717. #define   C_008DFC_COMPR                                              0xFFFFFBFF
  1718. #define   S_008DFC_DONE(x)                                            (((x) & 0x1) << 11)
  1719. #define   G_008DFC_DONE(x)                                            (((x) >> 11) & 0x1)
  1720. #define   C_008DFC_DONE                                               0xFFFFF7FF
  1721. #define   S_008DFC_VM(x)                                              (((x) & 0x1) << 12)
  1722. #define   G_008DFC_VM(x)                                              (((x) >> 12) & 0x1)
  1723. #define   C_008DFC_VM                                                 0xFFFFEFFF
  1724. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  1725. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  1726. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  1727. #define     V_008DFC_SQ_ENC_EXP_FIELD                               0x3E
  1728. #if 0
  1729. #define R_008DFC_SQ_MIMG_0                                              0x008DFC
  1730. #define   S_008DFC_DMASK(x)                                           (((x) & 0x0F) << 8)
  1731. #define   G_008DFC_DMASK(x)                                           (((x) >> 8) & 0x0F)
  1732. #define   C_008DFC_DMASK                                              0xFFFFF0FF
  1733. #define   S_008DFC_UNORM(x)                                           (((x) & 0x1) << 12)
  1734. #define   G_008DFC_UNORM(x)                                           (((x) >> 12) & 0x1)
  1735. #define   C_008DFC_UNORM                                              0xFFFFEFFF
  1736. #define   S_008DFC_GLC(x)                                             (((x) & 0x1) << 13)
  1737. #define   G_008DFC_GLC(x)                                             (((x) >> 13) & 0x1)
  1738. #define   C_008DFC_GLC                                                0xFFFFDFFF
  1739. #define   S_008DFC_DA(x)                                              (((x) & 0x1) << 14)
  1740. #define   G_008DFC_DA(x)                                              (((x) >> 14) & 0x1)
  1741. #define   C_008DFC_DA                                                 0xFFFFBFFF
  1742. #define   S_008DFC_R128(x)                                            (((x) & 0x1) << 15)
  1743. #define   G_008DFC_R128(x)                                            (((x) >> 15) & 0x1)
  1744. #define   C_008DFC_R128                                               0xFFFF7FFF
  1745. #define   S_008DFC_TFE(x)                                             (((x) & 0x1) << 16)
  1746. #define   G_008DFC_TFE(x)                                             (((x) >> 16) & 0x1)
  1747. #define   C_008DFC_TFE                                                0xFFFEFFFF
  1748. #define   S_008DFC_LWE(x)                                             (((x) & 0x1) << 17)
  1749. #define   G_008DFC_LWE(x)                                             (((x) >> 17) & 0x1)
  1750. #define   C_008DFC_LWE                                                0xFFFDFFFF
  1751. #define   S_008DFC_OP(x)                                              (((x) & 0x7F) << 18)
  1752. #define   G_008DFC_OP(x)                                              (((x) >> 18) & 0x7F)
  1753. #define   C_008DFC_OP                                                 0xFE03FFFF
  1754. #define     V_008DFC_SQ_IMAGE_LOAD                                  0x00
  1755. #define     V_008DFC_SQ_IMAGE_LOAD_MIP                              0x01
  1756. #define     V_008DFC_SQ_IMAGE_LOAD_PCK                              0x02
  1757. #define     V_008DFC_SQ_IMAGE_LOAD_PCK_SGN                          0x03
  1758. #define     V_008DFC_SQ_IMAGE_LOAD_MIP_PCK                          0x04
  1759. #define     V_008DFC_SQ_IMAGE_LOAD_MIP_PCK_SGN                      0x05
  1760. #define     V_008DFC_SQ_IMAGE_STORE                                 0x08
  1761. #define     V_008DFC_SQ_IMAGE_STORE_MIP                             0x09
  1762. #define     V_008DFC_SQ_IMAGE_STORE_PCK                             0x0A
  1763. #define     V_008DFC_SQ_IMAGE_STORE_MIP_PCK                         0x0B
  1764. #define     V_008DFC_SQ_IMAGE_GET_RESINFO                           0x0E
  1765. #define     V_008DFC_SQ_IMAGE_ATOMIC_SWAP                           0x0F
  1766. #define     V_008DFC_SQ_IMAGE_ATOMIC_CMPSWAP                        0x10
  1767. #define     V_008DFC_SQ_IMAGE_ATOMIC_ADD                            0x11
  1768. #define     V_008DFC_SQ_IMAGE_ATOMIC_SUB                            0x12
  1769. #define     V_008DFC_SQ_IMAGE_ATOMIC_RSUB                           0x13 /* not on CIK */
  1770. #define     V_008DFC_SQ_IMAGE_ATOMIC_SMIN                           0x14
  1771. #define     V_008DFC_SQ_IMAGE_ATOMIC_UMIN                           0x15
  1772. #define     V_008DFC_SQ_IMAGE_ATOMIC_SMAX                           0x16
  1773. #define     V_008DFC_SQ_IMAGE_ATOMIC_UMAX                           0x17
  1774. #define     V_008DFC_SQ_IMAGE_ATOMIC_AND                            0x18
  1775. #define     V_008DFC_SQ_IMAGE_ATOMIC_OR                             0x19
  1776. #define     V_008DFC_SQ_IMAGE_ATOMIC_XOR                            0x1A
  1777. #define     V_008DFC_SQ_IMAGE_ATOMIC_INC                            0x1B
  1778. #define     V_008DFC_SQ_IMAGE_ATOMIC_DEC                            0x1C
  1779. #define     V_008DFC_SQ_IMAGE_ATOMIC_FCMPSWAP                       0x1D
  1780. #define     V_008DFC_SQ_IMAGE_ATOMIC_FMIN                           0x1E
  1781. #define     V_008DFC_SQ_IMAGE_ATOMIC_FMAX                           0x1F
  1782. #define     V_008DFC_SQ_IMAGE_SAMPLE                                0x20
  1783. #define     V_008DFC_SQ_IMAGE_SAMPLE_CL                             0x21
  1784. #define     V_008DFC_SQ_IMAGE_SAMPLE_D                              0x22
  1785. #define     V_008DFC_SQ_IMAGE_SAMPLE_D_CL                           0x23
  1786. #define     V_008DFC_SQ_IMAGE_SAMPLE_L                              0x24
  1787. #define     V_008DFC_SQ_IMAGE_SAMPLE_B                              0x25
  1788. #define     V_008DFC_SQ_IMAGE_SAMPLE_B_CL                           0x26
  1789. #define     V_008DFC_SQ_IMAGE_SAMPLE_LZ                             0x27
  1790. #define     V_008DFC_SQ_IMAGE_SAMPLE_C                              0x28
  1791. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_CL                           0x29
  1792. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_D                            0x2A
  1793. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_D_CL                         0x2B
  1794. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_L                            0x2C
  1795. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_B                            0x2D
  1796. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_B_CL                         0x2E
  1797. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_LZ                           0x2F
  1798. #define     V_008DFC_SQ_IMAGE_SAMPLE_O                              0x30
  1799. #define     V_008DFC_SQ_IMAGE_SAMPLE_CL_O                           0x31
  1800. #define     V_008DFC_SQ_IMAGE_SAMPLE_D_O                            0x32
  1801. #define     V_008DFC_SQ_IMAGE_SAMPLE_D_CL_O                         0x33
  1802. #define     V_008DFC_SQ_IMAGE_SAMPLE_L_O                            0x34
  1803. #define     V_008DFC_SQ_IMAGE_SAMPLE_B_O                            0x35
  1804. #define     V_008DFC_SQ_IMAGE_SAMPLE_B_CL_O                         0x36
  1805. #define     V_008DFC_SQ_IMAGE_SAMPLE_LZ_O                           0x37
  1806. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_O                            0x38
  1807. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_CL_O                         0x39
  1808. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_D_O                          0x3A
  1809. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_D_CL_O                       0x3B
  1810. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_L_O                          0x3C
  1811. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_B_O                          0x3D
  1812. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_B_CL_O                       0x3E
  1813. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_LZ_O                         0x3F
  1814. #define     V_008DFC_SQ_IMAGE_GATHER4                               0x40
  1815. #define     V_008DFC_SQ_IMAGE_GATHER4_CL                            0x41
  1816. #define     V_008DFC_SQ_IMAGE_GATHER4_L                             0x44
  1817. #define     V_008DFC_SQ_IMAGE_GATHER4_B                             0x45
  1818. #define     V_008DFC_SQ_IMAGE_GATHER4_B_CL                          0x46
  1819. #define     V_008DFC_SQ_IMAGE_GATHER4_LZ                            0x47
  1820. #define     V_008DFC_SQ_IMAGE_GATHER4_C                             0x48
  1821. #define     V_008DFC_SQ_IMAGE_GATHER4_C_CL                          0x49
  1822. #define     V_008DFC_SQ_IMAGE_GATHER4_C_L                           0x4C
  1823. #define     V_008DFC_SQ_IMAGE_GATHER4_C_B                           0x4D
  1824. #define     V_008DFC_SQ_IMAGE_GATHER4_C_B_CL                        0x4E
  1825. #define     V_008DFC_SQ_IMAGE_GATHER4_C_LZ                          0x4F
  1826. #define     V_008DFC_SQ_IMAGE_GATHER4_O                             0x50
  1827. #define     V_008DFC_SQ_IMAGE_GATHER4_CL_O                          0x51
  1828. #define     V_008DFC_SQ_IMAGE_GATHER4_L_O                           0x54
  1829. #define     V_008DFC_SQ_IMAGE_GATHER4_B_O                           0x55
  1830. #define     V_008DFC_SQ_IMAGE_GATHER4_B_CL_O                        0x56
  1831. #define     V_008DFC_SQ_IMAGE_GATHER4_LZ_O                          0x57
  1832. #define     V_008DFC_SQ_IMAGE_GATHER4_C_O                           0x58
  1833. #define     V_008DFC_SQ_IMAGE_GATHER4_C_CL_O                        0x59
  1834. #define     V_008DFC_SQ_IMAGE_GATHER4_C_L_O                         0x5C
  1835. #define     V_008DFC_SQ_IMAGE_GATHER4_C_B_O                         0x5D
  1836. #define     V_008DFC_SQ_IMAGE_GATHER4_C_B_CL_O                      0x5E
  1837. #define     V_008DFC_SQ_IMAGE_GATHER4_C_LZ_O                        0x5F
  1838. #define     V_008DFC_SQ_IMAGE_GET_LOD                               0x60
  1839. #define     V_008DFC_SQ_IMAGE_SAMPLE_CD                             0x68
  1840. #define     V_008DFC_SQ_IMAGE_SAMPLE_CD_CL                          0x69
  1841. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_CD                           0x6A
  1842. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_CD_CL                        0x6B
  1843. #define     V_008DFC_SQ_IMAGE_SAMPLE_CD_O                           0x6C
  1844. #define     V_008DFC_SQ_IMAGE_SAMPLE_CD_CL_O                        0x6D
  1845. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_CD_O                         0x6E
  1846. #define     V_008DFC_SQ_IMAGE_SAMPLE_C_CD_CL_O                      0x6F
  1847. #define   S_008DFC_SLC(x)                                             (((x) & 0x1) << 25)
  1848. #define   G_008DFC_SLC(x)                                             (((x) >> 25) & 0x1)
  1849. #define   C_008DFC_SLC                                                0xFDFFFFFF
  1850. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  1851. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  1852. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  1853. #define     V_008DFC_SQ_ENC_MIMG_FIELD                              0x3C
  1854. #define R_008DFC_SQ_SOPP                                                0x008DFC
  1855. #define   S_008DFC_SIMM16(x)                                          (((x) & 0xFFFF) << 0)
  1856. #define   G_008DFC_SIMM16(x)                                          (((x) >> 0) & 0xFFFF)
  1857. #define   C_008DFC_SIMM16                                             0xFFFF0000
  1858. #define   S_008DFC_OP(x)                                              (((x) & 0x7F) << 16)
  1859. #define   G_008DFC_OP(x)                                              (((x) >> 16) & 0x7F)
  1860. #define   C_008DFC_OP                                                 0xFF80FFFF
  1861. #define     V_008DFC_SQ_S_NOP                                       0x00
  1862. #define     V_008DFC_SQ_S_ENDPGM                                    0x01
  1863. #define     V_008DFC_SQ_S_BRANCH                                    0x02
  1864. #define     V_008DFC_SQ_S_CBRANCH_SCC0                              0x04
  1865. #define     V_008DFC_SQ_S_CBRANCH_SCC1                              0x05
  1866. #define     V_008DFC_SQ_S_CBRANCH_VCCZ                              0x06
  1867. #define     V_008DFC_SQ_S_CBRANCH_VCCNZ                             0x07
  1868. #define     V_008DFC_SQ_S_CBRANCH_EXECZ                             0x08
  1869. #define     V_008DFC_SQ_S_CBRANCH_EXECNZ                            0x09
  1870. #define     V_008DFC_SQ_S_BARRIER                                   0x0A
  1871. /* CIK */
  1872. #define     V_008DFC_SQ_S_SETKILL                                   0x0B
  1873. /*     */
  1874. #define     V_008DFC_SQ_S_WAITCNT                                   0x0C
  1875. #define     V_008DFC_SQ_S_SETHALT                                   0x0D
  1876. #define     V_008DFC_SQ_S_SLEEP                                     0x0E
  1877. #define     V_008DFC_SQ_S_SETPRIO                                   0x0F
  1878. #define     V_008DFC_SQ_S_SENDMSG                                   0x10
  1879. #define     V_008DFC_SQ_S_SENDMSGHALT                               0x11
  1880. #define     V_008DFC_SQ_S_TRAP                                      0x12
  1881. #define     V_008DFC_SQ_S_ICACHE_INV                                0x13
  1882. #define     V_008DFC_SQ_S_INCPERFLEVEL                              0x14
  1883. #define     V_008DFC_SQ_S_DECPERFLEVEL                              0x15
  1884. #define     V_008DFC_SQ_S_TTRACEDATA                                0x16
  1885. /* CIK */
  1886. #define     V_008DFC_SQ_S_CBRANCH_CDBGSYS                           0x17
  1887. #define     V_008DFC_SQ_S_CBRANCH_CDBGUSER                          0x18
  1888. #define     V_008DFC_SQ_S_CBRANCH_CDBGSYS_OR_USER                   0x19
  1889. #define     V_008DFC_SQ_S_CBRANCH_CDBGSYS_AND_USER                  0x1A
  1890. /*     */
  1891. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x1FF) << 23)
  1892. #define   G_008DFC_ENCODING(x)                                        (((x) >> 23) & 0x1FF)
  1893. #define   C_008DFC_ENCODING                                           0x007FFFFF
  1894. #define     V_008DFC_SQ_ENC_SOPP_FIELD                              0x17F
  1895. #define R_008DFC_SQ_VINTRP                                              0x008DFC
  1896. #define   S_008DFC_VSRC(x)                                            (((x) & 0xFF) << 0)
  1897. #define   G_008DFC_VSRC(x)                                            (((x) >> 0) & 0xFF)
  1898. #define   C_008DFC_VSRC                                               0xFFFFFF00
  1899. #define     V_008DFC_SQ_VGPR                                        0x00
  1900. #define   S_008DFC_ATTRCHAN(x)                                        (((x) & 0x03) << 8)
  1901. #define   G_008DFC_ATTRCHAN(x)                                        (((x) >> 8) & 0x03)
  1902. #define   C_008DFC_ATTRCHAN                                           0xFFFFFCFF
  1903. #define     V_008DFC_SQ_CHAN_X                                      0x00
  1904. #define     V_008DFC_SQ_CHAN_Y                                      0x01
  1905. #define     V_008DFC_SQ_CHAN_Z                                      0x02
  1906. #define     V_008DFC_SQ_CHAN_W                                      0x03
  1907. #define   S_008DFC_ATTR(x)                                            (((x) & 0x3F) << 10)
  1908. #define   G_008DFC_ATTR(x)                                            (((x) >> 10) & 0x3F)
  1909. #define   C_008DFC_ATTR                                               0xFFFF03FF
  1910. #define     V_008DFC_SQ_ATTR                                        0x00
  1911. #define   S_008DFC_OP(x)                                              (((x) & 0x03) << 16)
  1912. #define   G_008DFC_OP(x)                                              (((x) >> 16) & 0x03)
  1913. #define   C_008DFC_OP                                                 0xFFFCFFFF
  1914. #define     V_008DFC_SQ_V_INTERP_P1_F32                             0x00
  1915. #define     V_008DFC_SQ_V_INTERP_P2_F32                             0x01
  1916. #define     V_008DFC_SQ_V_INTERP_MOV_F32                            0x02
  1917. #define   S_008DFC_VDST(x)                                            (((x) & 0xFF) << 18)
  1918. #define   G_008DFC_VDST(x)                                            (((x) >> 18) & 0xFF)
  1919. #define   C_008DFC_VDST                                               0xFC03FFFF
  1920. #define     V_008DFC_SQ_VGPR                                        0x00
  1921. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  1922. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  1923. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  1924. #define     V_008DFC_SQ_ENC_VINTRP_FIELD                            0x32
  1925. #define R_008DFC_SQ_MTBUF_0                                             0x008DFC
  1926. #define   S_008DFC_OFFSET(x)                                          (((x) & 0xFFF) << 0)
  1927. #define   G_008DFC_OFFSET(x)                                          (((x) >> 0) & 0xFFF)
  1928. #define   C_008DFC_OFFSET                                             0xFFFFF000
  1929. #define   S_008DFC_OFFEN(x)                                           (((x) & 0x1) << 12)
  1930. #define   G_008DFC_OFFEN(x)                                           (((x) >> 12) & 0x1)
  1931. #define   C_008DFC_OFFEN                                              0xFFFFEFFF
  1932. #define   S_008DFC_IDXEN(x)                                           (((x) & 0x1) << 13)
  1933. #define   G_008DFC_IDXEN(x)                                           (((x) >> 13) & 0x1)
  1934. #define   C_008DFC_IDXEN                                              0xFFFFDFFF
  1935. #define   S_008DFC_GLC(x)                                             (((x) & 0x1) << 14)
  1936. #define   G_008DFC_GLC(x)                                             (((x) >> 14) & 0x1)
  1937. #define   C_008DFC_GLC                                                0xFFFFBFFF
  1938. #define   S_008DFC_ADDR64(x)                                          (((x) & 0x1) << 15)
  1939. #define   G_008DFC_ADDR64(x)                                          (((x) >> 15) & 0x1)
  1940. #define   C_008DFC_ADDR64                                             0xFFFF7FFF
  1941. #define   S_008DFC_OP(x)                                              (((x) & 0x07) << 16)
  1942. #define   G_008DFC_OP(x)                                              (((x) >> 16) & 0x07)
  1943. #define   C_008DFC_OP                                                 0xFFF8FFFF
  1944. #define     V_008DFC_SQ_TBUFFER_LOAD_FORMAT_X                       0x00
  1945. #define     V_008DFC_SQ_TBUFFER_LOAD_FORMAT_XY                      0x01
  1946. #define     V_008DFC_SQ_TBUFFER_LOAD_FORMAT_XYZ                     0x02
  1947. #define     V_008DFC_SQ_TBUFFER_LOAD_FORMAT_XYZW                    0x03
  1948. #define     V_008DFC_SQ_TBUFFER_STORE_FORMAT_X                      0x04
  1949. #define     V_008DFC_SQ_TBUFFER_STORE_FORMAT_XY                     0x05
  1950. #define     V_008DFC_SQ_TBUFFER_STORE_FORMAT_XYZ                    0x06
  1951. #define     V_008DFC_SQ_TBUFFER_STORE_FORMAT_XYZW                   0x07
  1952. #define   S_008DFC_DFMT(x)                                            (((x) & 0x0F) << 19)
  1953. #define   G_008DFC_DFMT(x)                                            (((x) >> 19) & 0x0F)
  1954. #define   C_008DFC_DFMT                                               0xFF87FFFF
  1955. #define   S_008DFC_NFMT(x)                                            (((x) & 0x07) << 23)
  1956. #define   G_008DFC_NFMT(x)                                            (((x) >> 23) & 0x07)
  1957. #define   C_008DFC_NFMT                                               0xFC7FFFFF
  1958. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  1959. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  1960. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  1961. #define     V_008DFC_SQ_ENC_MTBUF_FIELD                             0x3A
  1962. #define R_008DFC_SQ_SMRD                                                0x008DFC
  1963. #define   S_008DFC_OFFSET(x)                                          (((x) & 0xFF) << 0)
  1964. #define   G_008DFC_OFFSET(x)                                          (((x) >> 0) & 0xFF)
  1965. #define   C_008DFC_OFFSET                                             0xFFFFFF00
  1966. #define     V_008DFC_SQ_SGPR                                        0x00
  1967. /* CIK */
  1968. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  1969. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  1970. /*     */
  1971. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  1972. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  1973. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  1974. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  1975. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  1976. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  1977. #define     V_008DFC_SQ_TTMP0                                       0x70
  1978. #define     V_008DFC_SQ_TTMP1                                       0x71
  1979. #define     V_008DFC_SQ_TTMP2                                       0x72
  1980. #define     V_008DFC_SQ_TTMP3                                       0x73
  1981. #define     V_008DFC_SQ_TTMP4                                       0x74
  1982. #define     V_008DFC_SQ_TTMP5                                       0x75
  1983. #define     V_008DFC_SQ_TTMP6                                       0x76
  1984. #define     V_008DFC_SQ_TTMP7                                       0x77
  1985. #define     V_008DFC_SQ_TTMP8                                       0x78
  1986. #define     V_008DFC_SQ_TTMP9                                       0x79
  1987. #define     V_008DFC_SQ_TTMP10                                      0x7A
  1988. #define     V_008DFC_SQ_TTMP11                                      0x7B
  1989. /* CIK */
  1990. #define     V_008DFC_SQ_SRC_LITERAL                                 0xFF
  1991. /*     */
  1992. #define   S_008DFC_IMM(x)                                             (((x) & 0x1) << 8)
  1993. #define   G_008DFC_IMM(x)                                             (((x) >> 8) & 0x1)
  1994. #define   C_008DFC_IMM                                                0xFFFFFEFF
  1995. #define   S_008DFC_SBASE(x)                                           (((x) & 0x3F) << 9)
  1996. #define   G_008DFC_SBASE(x)                                           (((x) >> 9) & 0x3F)
  1997. #define   C_008DFC_SBASE                                              0xFFFF81FF
  1998. #define   S_008DFC_SDST(x)                                            (((x) & 0x7F) << 15)
  1999. #define   G_008DFC_SDST(x)                                            (((x) >> 15) & 0x7F)
  2000. #define   C_008DFC_SDST                                               0xFFC07FFF
  2001. #define     V_008DFC_SQ_SGPR                                        0x00
  2002. /* CIK */
  2003. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  2004. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  2005. /*     */
  2006. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  2007. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  2008. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  2009. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  2010. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  2011. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  2012. #define     V_008DFC_SQ_TTMP0                                       0x70
  2013. #define     V_008DFC_SQ_TTMP1                                       0x71
  2014. #define     V_008DFC_SQ_TTMP2                                       0x72
  2015. #define     V_008DFC_SQ_TTMP3                                       0x73
  2016. #define     V_008DFC_SQ_TTMP4                                       0x74
  2017. #define     V_008DFC_SQ_TTMP5                                       0x75
  2018. #define     V_008DFC_SQ_TTMP6                                       0x76
  2019. #define     V_008DFC_SQ_TTMP7                                       0x77
  2020. #define     V_008DFC_SQ_TTMP8                                       0x78
  2021. #define     V_008DFC_SQ_TTMP9                                       0x79
  2022. #define     V_008DFC_SQ_TTMP10                                      0x7A
  2023. #define     V_008DFC_SQ_TTMP11                                      0x7B
  2024. #define     V_008DFC_SQ_M0                                          0x7C
  2025. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  2026. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  2027. #define   S_008DFC_OP(x)                                              (((x) & 0x1F) << 22)
  2028. #define   G_008DFC_OP(x)                                              (((x) >> 22) & 0x1F)
  2029. #define   C_008DFC_OP                                                 0xF83FFFFF
  2030. #define     V_008DFC_SQ_S_LOAD_DWORD                                0x00
  2031. #define     V_008DFC_SQ_S_LOAD_DWORDX2                              0x01
  2032. #define     V_008DFC_SQ_S_LOAD_DWORDX4                              0x02
  2033. #define     V_008DFC_SQ_S_LOAD_DWORDX8                              0x03
  2034. #define     V_008DFC_SQ_S_LOAD_DWORDX16                             0x04
  2035. #define     V_008DFC_SQ_S_BUFFER_LOAD_DWORD                         0x08
  2036. #define     V_008DFC_SQ_S_BUFFER_LOAD_DWORDX2                       0x09
  2037. #define     V_008DFC_SQ_S_BUFFER_LOAD_DWORDX4                       0x0A
  2038. #define     V_008DFC_SQ_S_BUFFER_LOAD_DWORDX8                       0x0B
  2039. #define     V_008DFC_SQ_S_BUFFER_LOAD_DWORDX16                      0x0C
  2040. /* CIK */
  2041. #define     V_008DFC_SQ_S_DCACHE_INV_VOL                            0x1D
  2042. /*     */
  2043. #define     V_008DFC_SQ_S_MEMTIME                                   0x1E
  2044. #define     V_008DFC_SQ_S_DCACHE_INV                                0x1F
  2045. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x1F) << 27)
  2046. #define   G_008DFC_ENCODING(x)                                        (((x) >> 27) & 0x1F)
  2047. #define   C_008DFC_ENCODING                                           0x07FFFFFF
  2048. #define     V_008DFC_SQ_ENC_SMRD_FIELD                              0x18
  2049. /* CIK */
  2050. #define R_008DFC_SQ_FLAT_0                                              0x008DFC
  2051. #define   S_008DFC_GLC(x)                                             (((x) & 0x1) << 16)
  2052. #define   G_008DFC_GLC(x)                                             (((x) >> 16) & 0x1)
  2053. #define   C_008DFC_GLC                                                0xFFFEFFFF
  2054. #define   S_008DFC_SLC(x)                                             (((x) & 0x1) << 17)
  2055. #define   G_008DFC_SLC(x)                                             (((x) >> 17) & 0x1)
  2056. #define   C_008DFC_SLC                                                0xFFFDFFFF
  2057. #define   S_008DFC_OP(x)                                              (((x) & 0x7F) << 18)
  2058. #define   G_008DFC_OP(x)                                              (((x) >> 18) & 0x7F)
  2059. #define   C_008DFC_OP                                                 0xFE03FFFF
  2060. #define     V_008DFC_SQ_FLAT_LOAD_UBYTE                             0x08
  2061. #define     V_008DFC_SQ_FLAT_LOAD_SBYTE                             0x09
  2062. #define     V_008DFC_SQ_FLAT_LOAD_USHORT                            0x0A
  2063. #define     V_008DFC_SQ_FLAT_LOAD_SSHORT                            0x0B
  2064. #define     V_008DFC_SQ_FLAT_LOAD_DWORD                             0x0C
  2065. #define     V_008DFC_SQ_FLAT_LOAD_DWORDX2                           0x0D
  2066. #define     V_008DFC_SQ_FLAT_LOAD_DWORDX4                           0x0E
  2067. #define     V_008DFC_SQ_FLAT_LOAD_DWORDX3                           0x0F
  2068. #define     V_008DFC_SQ_FLAT_STORE_BYTE                             0x18
  2069. #define     V_008DFC_SQ_FLAT_STORE_SHORT                            0x1A
  2070. #define     V_008DFC_SQ_FLAT_STORE_DWORD                            0x1C
  2071. #define     V_008DFC_SQ_FLAT_STORE_DWORDX2                          0x1D
  2072. #define     V_008DFC_SQ_FLAT_STORE_DWORDX4                          0x1E
  2073. #define     V_008DFC_SQ_FLAT_STORE_DWORDX3                          0x1F
  2074. #define     V_008DFC_SQ_FLAT_ATOMIC_SWAP                            0x30
  2075. #define     V_008DFC_SQ_FLAT_ATOMIC_CMPSWAP                         0x31
  2076. #define     V_008DFC_SQ_FLAT_ATOMIC_ADD                             0x32
  2077. #define     V_008DFC_SQ_FLAT_ATOMIC_SUB                             0x33
  2078. #define     V_008DFC_SQ_FLAT_ATOMIC_SMIN                            0x35
  2079. #define     V_008DFC_SQ_FLAT_ATOMIC_UMIN                            0x36
  2080. #define     V_008DFC_SQ_FLAT_ATOMIC_SMAX                            0x37
  2081. #define     V_008DFC_SQ_FLAT_ATOMIC_UMAX                            0x38
  2082. #define     V_008DFC_SQ_FLAT_ATOMIC_AND                             0x39
  2083. #define     V_008DFC_SQ_FLAT_ATOMIC_OR                              0x3A
  2084. #define     V_008DFC_SQ_FLAT_ATOMIC_XOR                             0x3B
  2085. #define     V_008DFC_SQ_FLAT_ATOMIC_INC                             0x3C
  2086. #define     V_008DFC_SQ_FLAT_ATOMIC_DEC                             0x3D
  2087. #define     V_008DFC_SQ_FLAT_ATOMIC_FCMPSWAP                        0x3E
  2088. #define     V_008DFC_SQ_FLAT_ATOMIC_FMIN                            0x3F
  2089. #define     V_008DFC_SQ_FLAT_ATOMIC_FMAX                            0x40
  2090. #define     V_008DFC_SQ_FLAT_ATOMIC_SWAP_X2                         0x50
  2091. #define     V_008DFC_SQ_FLAT_ATOMIC_CMPSWAP_X2                      0x51
  2092. #define     V_008DFC_SQ_FLAT_ATOMIC_ADD_X2                          0x52
  2093. #define     V_008DFC_SQ_FLAT_ATOMIC_SUB_X2                          0x53
  2094. #define     V_008DFC_SQ_FLAT_ATOMIC_SMIN_X2                         0x55
  2095. #define     V_008DFC_SQ_FLAT_ATOMIC_UMIN_X2                         0x56
  2096. #define     V_008DFC_SQ_FLAT_ATOMIC_SMAX_X2                         0x57
  2097. #define     V_008DFC_SQ_FLAT_ATOMIC_UMAX_X2                         0x58
  2098. #define     V_008DFC_SQ_FLAT_ATOMIC_AND_X2                          0x59
  2099. #define     V_008DFC_SQ_FLAT_ATOMIC_OR_X2                           0x5A
  2100. #define     V_008DFC_SQ_FLAT_ATOMIC_XOR_X2                          0x5B
  2101. #define     V_008DFC_SQ_FLAT_ATOMIC_INC_X2                          0x5C
  2102. #define     V_008DFC_SQ_FLAT_ATOMIC_DEC_X2                          0x5D
  2103. #define     V_008DFC_SQ_FLAT_ATOMIC_FCMPSWAP_X2                     0x5E
  2104. #define     V_008DFC_SQ_FLAT_ATOMIC_FMIN_X2                         0x5F
  2105. #define     V_008DFC_SQ_FLAT_ATOMIC_FMAX_X2                         0x60
  2106. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  2107. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  2108. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  2109. #define     V_008DFC_SQ_ENC_FLAT_FIELD                              0x37
  2110. /*     */
  2111. #define R_008DFC_SQ_EXP_1                                               0x008DFC
  2112. #define   S_008DFC_VSRC0(x)                                           (((x) & 0xFF) << 0)
  2113. #define   G_008DFC_VSRC0(x)                                           (((x) >> 0) & 0xFF)
  2114. #define   C_008DFC_VSRC0                                              0xFFFFFF00
  2115. #define     V_008DFC_SQ_VGPR                                        0x00
  2116. #define   S_008DFC_VSRC1(x)                                           (((x) & 0xFF) << 8)
  2117. #define   G_008DFC_VSRC1(x)                                           (((x) >> 8) & 0xFF)
  2118. #define   C_008DFC_VSRC1                                              0xFFFF00FF
  2119. #define     V_008DFC_SQ_VGPR                                        0x00
  2120. #define   S_008DFC_VSRC2(x)                                           (((x) & 0xFF) << 16)
  2121. #define   G_008DFC_VSRC2(x)                                           (((x) >> 16) & 0xFF)
  2122. #define   C_008DFC_VSRC2                                              0xFF00FFFF
  2123. #define     V_008DFC_SQ_VGPR                                        0x00
  2124. #define   S_008DFC_VSRC3(x)                                           (((x) & 0xFF) << 24)
  2125. #define   G_008DFC_VSRC3(x)                                           (((x) >> 24) & 0xFF)
  2126. #define   C_008DFC_VSRC3                                              0x00FFFFFF
  2127. #define     V_008DFC_SQ_VGPR                                        0x00
  2128. #define R_008DFC_SQ_DS_1                                                0x008DFC
  2129. #define   S_008DFC_ADDR(x)                                            (((x) & 0xFF) << 0)
  2130. #define   G_008DFC_ADDR(x)                                            (((x) >> 0) & 0xFF)
  2131. #define   C_008DFC_ADDR                                               0xFFFFFF00
  2132. #define     V_008DFC_SQ_VGPR                                        0x00
  2133. #define   S_008DFC_DATA0(x)                                           (((x) & 0xFF) << 8)
  2134. #define   G_008DFC_DATA0(x)                                           (((x) >> 8) & 0xFF)
  2135. #define   C_008DFC_DATA0                                              0xFFFF00FF
  2136. #define     V_008DFC_SQ_VGPR                                        0x00
  2137. #define   S_008DFC_DATA1(x)                                           (((x) & 0xFF) << 16)
  2138. #define   G_008DFC_DATA1(x)                                           (((x) >> 16) & 0xFF)
  2139. #define   C_008DFC_DATA1                                              0xFF00FFFF
  2140. #define     V_008DFC_SQ_VGPR                                        0x00
  2141. #define   S_008DFC_VDST(x)                                            (((x) & 0xFF) << 24)
  2142. #define   G_008DFC_VDST(x)                                            (((x) >> 24) & 0xFF)
  2143. #define   C_008DFC_VDST                                               0x00FFFFFF
  2144. #define     V_008DFC_SQ_VGPR                                        0x00
  2145. #define R_008DFC_SQ_VOPC                                                0x008DFC
  2146. #define   S_008DFC_SRC0(x)                                            (((x) & 0x1FF) << 0)
  2147. #define   G_008DFC_SRC0(x)                                            (((x) >> 0) & 0x1FF)
  2148. #define   C_008DFC_SRC0                                               0xFFFFFE00
  2149. #define     V_008DFC_SQ_SGPR                                        0x00
  2150. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  2151. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  2152. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  2153. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  2154. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  2155. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  2156. #define     V_008DFC_SQ_TTMP0                                       0x70
  2157. #define     V_008DFC_SQ_TTMP1                                       0x71
  2158. #define     V_008DFC_SQ_TTMP2                                       0x72
  2159. #define     V_008DFC_SQ_TTMP3                                       0x73
  2160. #define     V_008DFC_SQ_TTMP4                                       0x74
  2161. #define     V_008DFC_SQ_TTMP5                                       0x75
  2162. #define     V_008DFC_SQ_TTMP6                                       0x76
  2163. #define     V_008DFC_SQ_TTMP7                                       0x77
  2164. #define     V_008DFC_SQ_TTMP8                                       0x78
  2165. #define     V_008DFC_SQ_TTMP9                                       0x79
  2166. #define     V_008DFC_SQ_TTMP10                                      0x7A
  2167. #define     V_008DFC_SQ_TTMP11                                      0x7B
  2168. #define     V_008DFC_SQ_M0                                          0x7C
  2169. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  2170. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  2171. #define     V_008DFC_SQ_SRC_0                                       0x80
  2172. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  2173. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  2174. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  2175. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  2176. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  2177. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  2178. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  2179. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  2180. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  2181. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  2182. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  2183. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  2184. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  2185. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  2186. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  2187. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  2188. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  2189. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  2190. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  2191. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  2192. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  2193. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  2194. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  2195. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  2196. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  2197. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  2198. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  2199. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  2200. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  2201. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  2202. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  2203. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  2204. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  2205. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  2206. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  2207. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  2208. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  2209. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  2210. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  2211. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  2212. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  2213. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  2214. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  2215. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  2216. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  2217. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  2218. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  2219. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  2220. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  2221. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  2222. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  2223. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  2224. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  2225. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  2226. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  2227. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  2228. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  2229. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  2230. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  2231. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  2232. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  2233. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  2234. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  2235. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  2236. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  2237. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  2238. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  2239. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  2240. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  2241. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  2242. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  2243. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  2244. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  2245. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  2246. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  2247. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  2248. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  2249. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  2250. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  2251. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  2252. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  2253. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  2254. #define     V_008DFC_SQ_SRC_1                                       0xF2
  2255. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  2256. #define     V_008DFC_SQ_SRC_2                                       0xF4
  2257. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  2258. #define     V_008DFC_SQ_SRC_4                                       0xF6
  2259. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  2260. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  2261. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  2262. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  2263. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  2264. #define     V_008DFC_SQ_SRC_VGPR                                    0x100
  2265. #define   S_008DFC_VSRC1(x)                                           (((x) & 0xFF) << 9)
  2266. #define   G_008DFC_VSRC1(x)                                           (((x) >> 9) & 0xFF)
  2267. #define   C_008DFC_VSRC1                                              0xFFFE01FF
  2268. #define     V_008DFC_SQ_VGPR                                        0x00
  2269. #define   S_008DFC_OP(x)                                              (((x) & 0xFF) << 17)
  2270. #define   G_008DFC_OP(x)                                              (((x) >> 17) & 0xFF)
  2271. #define   C_008DFC_OP                                                 0xFE01FFFF
  2272. #define     V_008DFC_SQ_V_CMP_F_F32                                 0x00
  2273. #define     V_008DFC_SQ_V_CMP_LT_F32                                0x01
  2274. #define     V_008DFC_SQ_V_CMP_EQ_F32                                0x02
  2275. #define     V_008DFC_SQ_V_CMP_LE_F32                                0x03
  2276. #define     V_008DFC_SQ_V_CMP_GT_F32                                0x04
  2277. #define     V_008DFC_SQ_V_CMP_LG_F32                                0x05
  2278. #define     V_008DFC_SQ_V_CMP_GE_F32                                0x06
  2279. #define     V_008DFC_SQ_V_CMP_O_F32                                 0x07
  2280. #define     V_008DFC_SQ_V_CMP_U_F32                                 0x08
  2281. #define     V_008DFC_SQ_V_CMP_NGE_F32                               0x09
  2282. #define     V_008DFC_SQ_V_CMP_NLG_F32                               0x0A
  2283. #define     V_008DFC_SQ_V_CMP_NGT_F32                               0x0B
  2284. #define     V_008DFC_SQ_V_CMP_NLE_F32                               0x0C
  2285. #define     V_008DFC_SQ_V_CMP_NEQ_F32                               0x0D
  2286. #define     V_008DFC_SQ_V_CMP_NLT_F32                               0x0E
  2287. #define     V_008DFC_SQ_V_CMP_TRU_F32                               0x0F
  2288. #define     V_008DFC_SQ_V_CMPX_F_F32                                0x10
  2289. #define     V_008DFC_SQ_V_CMPX_LT_F32                               0x11
  2290. #define     V_008DFC_SQ_V_CMPX_EQ_F32                               0x12
  2291. #define     V_008DFC_SQ_V_CMPX_LE_F32                               0x13
  2292. #define     V_008DFC_SQ_V_CMPX_GT_F32                               0x14
  2293. #define     V_008DFC_SQ_V_CMPX_LG_F32                               0x15
  2294. #define     V_008DFC_SQ_V_CMPX_GE_F32                               0x16
  2295. #define     V_008DFC_SQ_V_CMPX_O_F32                                0x17
  2296. #define     V_008DFC_SQ_V_CMPX_U_F32                                0x18
  2297. #define     V_008DFC_SQ_V_CMPX_NGE_F32                              0x19
  2298. #define     V_008DFC_SQ_V_CMPX_NLG_F32                              0x1A
  2299. #define     V_008DFC_SQ_V_CMPX_NGT_F32                              0x1B
  2300. #define     V_008DFC_SQ_V_CMPX_NLE_F32                              0x1C
  2301. #define     V_008DFC_SQ_V_CMPX_NEQ_F32                              0x1D
  2302. #define     V_008DFC_SQ_V_CMPX_NLT_F32                              0x1E
  2303. #define     V_008DFC_SQ_V_CMPX_TRU_F32                              0x1F
  2304. #define     V_008DFC_SQ_V_CMP_F_F64                                 0x20
  2305. #define     V_008DFC_SQ_V_CMP_LT_F64                                0x21
  2306. #define     V_008DFC_SQ_V_CMP_EQ_F64                                0x22
  2307. #define     V_008DFC_SQ_V_CMP_LE_F64                                0x23
  2308. #define     V_008DFC_SQ_V_CMP_GT_F64                                0x24
  2309. #define     V_008DFC_SQ_V_CMP_LG_F64                                0x25
  2310. #define     V_008DFC_SQ_V_CMP_GE_F64                                0x26
  2311. #define     V_008DFC_SQ_V_CMP_O_F64                                 0x27
  2312. #define     V_008DFC_SQ_V_CMP_U_F64                                 0x28
  2313. #define     V_008DFC_SQ_V_CMP_NGE_F64                               0x29
  2314. #define     V_008DFC_SQ_V_CMP_NLG_F64                               0x2A
  2315. #define     V_008DFC_SQ_V_CMP_NGT_F64                               0x2B
  2316. #define     V_008DFC_SQ_V_CMP_NLE_F64                               0x2C
  2317. #define     V_008DFC_SQ_V_CMP_NEQ_F64                               0x2D
  2318. #define     V_008DFC_SQ_V_CMP_NLT_F64                               0x2E
  2319. #define     V_008DFC_SQ_V_CMP_TRU_F64                               0x2F
  2320. #define     V_008DFC_SQ_V_CMPX_F_F64                                0x30
  2321. #define     V_008DFC_SQ_V_CMPX_LT_F64                               0x31
  2322. #define     V_008DFC_SQ_V_CMPX_EQ_F64                               0x32
  2323. #define     V_008DFC_SQ_V_CMPX_LE_F64                               0x33
  2324. #define     V_008DFC_SQ_V_CMPX_GT_F64                               0x34
  2325. #define     V_008DFC_SQ_V_CMPX_LG_F64                               0x35
  2326. #define     V_008DFC_SQ_V_CMPX_GE_F64                               0x36
  2327. #define     V_008DFC_SQ_V_CMPX_O_F64                                0x37
  2328. #define     V_008DFC_SQ_V_CMPX_U_F64                                0x38
  2329. #define     V_008DFC_SQ_V_CMPX_NGE_F64                              0x39
  2330. #define     V_008DFC_SQ_V_CMPX_NLG_F64                              0x3A
  2331. #define     V_008DFC_SQ_V_CMPX_NGT_F64                              0x3B
  2332. #define     V_008DFC_SQ_V_CMPX_NLE_F64                              0x3C
  2333. #define     V_008DFC_SQ_V_CMPX_NEQ_F64                              0x3D
  2334. #define     V_008DFC_SQ_V_CMPX_NLT_F64                              0x3E
  2335. #define     V_008DFC_SQ_V_CMPX_TRU_F64                              0x3F
  2336. #define     V_008DFC_SQ_V_CMPS_F_F32                                0x40
  2337. #define     V_008DFC_SQ_V_CMPS_LT_F32                               0x41
  2338. #define     V_008DFC_SQ_V_CMPS_EQ_F32                               0x42
  2339. #define     V_008DFC_SQ_V_CMPS_LE_F32                               0x43
  2340. #define     V_008DFC_SQ_V_CMPS_GT_F32                               0x44
  2341. #define     V_008DFC_SQ_V_CMPS_LG_F32                               0x45
  2342. #define     V_008DFC_SQ_V_CMPS_GE_F32                               0x46
  2343. #define     V_008DFC_SQ_V_CMPS_O_F32                                0x47
  2344. #define     V_008DFC_SQ_V_CMPS_U_F32                                0x48
  2345. #define     V_008DFC_SQ_V_CMPS_NGE_F32                              0x49
  2346. #define     V_008DFC_SQ_V_CMPS_NLG_F32                              0x4A
  2347. #define     V_008DFC_SQ_V_CMPS_NGT_F32                              0x4B
  2348. #define     V_008DFC_SQ_V_CMPS_NLE_F32                              0x4C
  2349. #define     V_008DFC_SQ_V_CMPS_NEQ_F32                              0x4D
  2350. #define     V_008DFC_SQ_V_CMPS_NLT_F32                              0x4E
  2351. #define     V_008DFC_SQ_V_CMPS_TRU_F32                              0x4F
  2352. #define     V_008DFC_SQ_V_CMPSX_F_F32                               0x50
  2353. #define     V_008DFC_SQ_V_CMPSX_LT_F32                              0x51
  2354. #define     V_008DFC_SQ_V_CMPSX_EQ_F32                              0x52
  2355. #define     V_008DFC_SQ_V_CMPSX_LE_F32                              0x53
  2356. #define     V_008DFC_SQ_V_CMPSX_GT_F32                              0x54
  2357. #define     V_008DFC_SQ_V_CMPSX_LG_F32                              0x55
  2358. #define     V_008DFC_SQ_V_CMPSX_GE_F32                              0x56
  2359. #define     V_008DFC_SQ_V_CMPSX_O_F32                               0x57
  2360. #define     V_008DFC_SQ_V_CMPSX_U_F32                               0x58
  2361. #define     V_008DFC_SQ_V_CMPSX_NGE_F32                             0x59
  2362. #define     V_008DFC_SQ_V_CMPSX_NLG_F32                             0x5A
  2363. #define     V_008DFC_SQ_V_CMPSX_NGT_F32                             0x5B
  2364. #define     V_008DFC_SQ_V_CMPSX_NLE_F32                             0x5C
  2365. #define     V_008DFC_SQ_V_CMPSX_NEQ_F32                             0x5D
  2366. #define     V_008DFC_SQ_V_CMPSX_NLT_F32                             0x5E
  2367. #define     V_008DFC_SQ_V_CMPSX_TRU_F32                             0x5F
  2368. #define     V_008DFC_SQ_V_CMPS_F_F64                                0x60
  2369. #define     V_008DFC_SQ_V_CMPS_LT_F64                               0x61
  2370. #define     V_008DFC_SQ_V_CMPS_EQ_F64                               0x62
  2371. #define     V_008DFC_SQ_V_CMPS_LE_F64                               0x63
  2372. #define     V_008DFC_SQ_V_CMPS_GT_F64                               0x64
  2373. #define     V_008DFC_SQ_V_CMPS_LG_F64                               0x65
  2374. #define     V_008DFC_SQ_V_CMPS_GE_F64                               0x66
  2375. #define     V_008DFC_SQ_V_CMPS_O_F64                                0x67
  2376. #define     V_008DFC_SQ_V_CMPS_U_F64                                0x68
  2377. #define     V_008DFC_SQ_V_CMPS_NGE_F64                              0x69
  2378. #define     V_008DFC_SQ_V_CMPS_NLG_F64                              0x6A
  2379. #define     V_008DFC_SQ_V_CMPS_NGT_F64                              0x6B
  2380. #define     V_008DFC_SQ_V_CMPS_NLE_F64                              0x6C
  2381. #define     V_008DFC_SQ_V_CMPS_NEQ_F64                              0x6D
  2382. #define     V_008DFC_SQ_V_CMPS_NLT_F64                              0x6E
  2383. #define     V_008DFC_SQ_V_CMPS_TRU_F64                              0x6F
  2384. #define     V_008DFC_SQ_V_CMPSX_F_F64                               0x70
  2385. #define     V_008DFC_SQ_V_CMPSX_LT_F64                              0x71
  2386. #define     V_008DFC_SQ_V_CMPSX_EQ_F64                              0x72
  2387. #define     V_008DFC_SQ_V_CMPSX_LE_F64                              0x73
  2388. #define     V_008DFC_SQ_V_CMPSX_GT_F64                              0x74
  2389. #define     V_008DFC_SQ_V_CMPSX_LG_F64                              0x75
  2390. #define     V_008DFC_SQ_V_CMPSX_GE_F64                              0x76
  2391. #define     V_008DFC_SQ_V_CMPSX_O_F64                               0x77
  2392. #define     V_008DFC_SQ_V_CMPSX_U_F64                               0x78
  2393. #define     V_008DFC_SQ_V_CMPSX_NGE_F64                             0x79
  2394. #define     V_008DFC_SQ_V_CMPSX_NLG_F64                             0x7A
  2395. #define     V_008DFC_SQ_V_CMPSX_NGT_F64                             0x7B
  2396. #define     V_008DFC_SQ_V_CMPSX_NLE_F64                             0x7C
  2397. #define     V_008DFC_SQ_V_CMPSX_NEQ_F64                             0x7D
  2398. #define     V_008DFC_SQ_V_CMPSX_NLT_F64                             0x7E
  2399. #define     V_008DFC_SQ_V_CMPSX_TRU_F64                             0x7F
  2400. #define     V_008DFC_SQ_V_CMP_F_I32                                 0x80
  2401. #define     V_008DFC_SQ_V_CMP_LT_I32                                0x81
  2402. #define     V_008DFC_SQ_V_CMP_EQ_I32                                0x82
  2403. #define     V_008DFC_SQ_V_CMP_LE_I32                                0x83
  2404. #define     V_008DFC_SQ_V_CMP_GT_I32                                0x84
  2405. #define     V_008DFC_SQ_V_CMP_NE_I32                                0x85
  2406. #define     V_008DFC_SQ_V_CMP_GE_I32                                0x86
  2407. #define     V_008DFC_SQ_V_CMP_T_I32                                 0x87
  2408. #define     V_008DFC_SQ_V_CMP_CLASS_F32                             0x88
  2409. #define     V_008DFC_SQ_V_CMPX_F_I32                                0x90
  2410. #define     V_008DFC_SQ_V_CMPX_LT_I32                               0x91
  2411. #define     V_008DFC_SQ_V_CMPX_EQ_I32                               0x92
  2412. #define     V_008DFC_SQ_V_CMPX_LE_I32                               0x93
  2413. #define     V_008DFC_SQ_V_CMPX_GT_I32                               0x94
  2414. #define     V_008DFC_SQ_V_CMPX_NE_I32                               0x95
  2415. #define     V_008DFC_SQ_V_CMPX_GE_I32                               0x96
  2416. #define     V_008DFC_SQ_V_CMPX_T_I32                                0x97
  2417. #define     V_008DFC_SQ_V_CMPX_CLASS_F32                            0x98
  2418. #define     V_008DFC_SQ_V_CMP_F_I64                                 0xA0
  2419. #define     V_008DFC_SQ_V_CMP_LT_I64                                0xA1
  2420. #define     V_008DFC_SQ_V_CMP_EQ_I64                                0xA2
  2421. #define     V_008DFC_SQ_V_CMP_LE_I64                                0xA3
  2422. #define     V_008DFC_SQ_V_CMP_GT_I64                                0xA4
  2423. #define     V_008DFC_SQ_V_CMP_NE_I64                                0xA5
  2424. #define     V_008DFC_SQ_V_CMP_GE_I64                                0xA6
  2425. #define     V_008DFC_SQ_V_CMP_T_I64                                 0xA7
  2426. #define     V_008DFC_SQ_V_CMP_CLASS_F64                             0xA8
  2427. #define     V_008DFC_SQ_V_CMPX_F_I64                                0xB0
  2428. #define     V_008DFC_SQ_V_CMPX_LT_I64                               0xB1
  2429. #define     V_008DFC_SQ_V_CMPX_EQ_I64                               0xB2
  2430. #define     V_008DFC_SQ_V_CMPX_LE_I64                               0xB3
  2431. #define     V_008DFC_SQ_V_CMPX_GT_I64                               0xB4
  2432. #define     V_008DFC_SQ_V_CMPX_NE_I64                               0xB5
  2433. #define     V_008DFC_SQ_V_CMPX_GE_I64                               0xB6
  2434. #define     V_008DFC_SQ_V_CMPX_T_I64                                0xB7
  2435. #define     V_008DFC_SQ_V_CMPX_CLASS_F64                            0xB8
  2436. #define     V_008DFC_SQ_V_CMP_F_U32                                 0xC0
  2437. #define     V_008DFC_SQ_V_CMP_LT_U32                                0xC1
  2438. #define     V_008DFC_SQ_V_CMP_EQ_U32                                0xC2
  2439. #define     V_008DFC_SQ_V_CMP_LE_U32                                0xC3
  2440. #define     V_008DFC_SQ_V_CMP_GT_U32                                0xC4
  2441. #define     V_008DFC_SQ_V_CMP_NE_U32                                0xC5
  2442. #define     V_008DFC_SQ_V_CMP_GE_U32                                0xC6
  2443. #define     V_008DFC_SQ_V_CMP_T_U32                                 0xC7
  2444. #define     V_008DFC_SQ_V_CMPX_F_U32                                0xD0
  2445. #define     V_008DFC_SQ_V_CMPX_LT_U32                               0xD1
  2446. #define     V_008DFC_SQ_V_CMPX_EQ_U32                               0xD2
  2447. #define     V_008DFC_SQ_V_CMPX_LE_U32                               0xD3
  2448. #define     V_008DFC_SQ_V_CMPX_GT_U32                               0xD4
  2449. #define     V_008DFC_SQ_V_CMPX_NE_U32                               0xD5
  2450. #define     V_008DFC_SQ_V_CMPX_GE_U32                               0xD6
  2451. #define     V_008DFC_SQ_V_CMPX_T_U32                                0xD7
  2452. #define     V_008DFC_SQ_V_CMP_F_U64                                 0xE0
  2453. #define     V_008DFC_SQ_V_CMP_LT_U64                                0xE1
  2454. #define     V_008DFC_SQ_V_CMP_EQ_U64                                0xE2
  2455. #define     V_008DFC_SQ_V_CMP_LE_U64                                0xE3
  2456. #define     V_008DFC_SQ_V_CMP_GT_U64                                0xE4
  2457. #define     V_008DFC_SQ_V_CMP_NE_U64                                0xE5
  2458. #define     V_008DFC_SQ_V_CMP_GE_U64                                0xE6
  2459. #define     V_008DFC_SQ_V_CMP_T_U64                                 0xE7
  2460. #define     V_008DFC_SQ_V_CMPX_F_U64                                0xF0
  2461. #define     V_008DFC_SQ_V_CMPX_LT_U64                               0xF1
  2462. #define     V_008DFC_SQ_V_CMPX_EQ_U64                               0xF2
  2463. #define     V_008DFC_SQ_V_CMPX_LE_U64                               0xF3
  2464. #define     V_008DFC_SQ_V_CMPX_GT_U64                               0xF4
  2465. #define     V_008DFC_SQ_V_CMPX_NE_U64                               0xF5
  2466. #define     V_008DFC_SQ_V_CMPX_GE_U64                               0xF6
  2467. #define     V_008DFC_SQ_V_CMPX_T_U64                                0xF7
  2468. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x7F) << 25)
  2469. #define   G_008DFC_ENCODING(x)                                        (((x) >> 25) & 0x7F)
  2470. #define   C_008DFC_ENCODING                                           0x01FFFFFF
  2471. #define     V_008DFC_SQ_ENC_VOPC_FIELD                              0x3E
  2472. #define R_008DFC_SQ_SOP1                                                0x008DFC
  2473. #define   S_008DFC_SSRC0(x)                                           (((x) & 0xFF) << 0)
  2474. #define   G_008DFC_SSRC0(x)                                           (((x) >> 0) & 0xFF)
  2475. #define   C_008DFC_SSRC0                                              0xFFFFFF00
  2476. #define     V_008DFC_SQ_SGPR                                        0x00
  2477. /* CIK */
  2478. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  2479. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  2480. /*     */
  2481. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  2482. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  2483. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  2484. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  2485. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  2486. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  2487. #define     V_008DFC_SQ_TTMP0                                       0x70
  2488. #define     V_008DFC_SQ_TTMP1                                       0x71
  2489. #define     V_008DFC_SQ_TTMP2                                       0x72
  2490. #define     V_008DFC_SQ_TTMP3                                       0x73
  2491. #define     V_008DFC_SQ_TTMP4                                       0x74
  2492. #define     V_008DFC_SQ_TTMP5                                       0x75
  2493. #define     V_008DFC_SQ_TTMP6                                       0x76
  2494. #define     V_008DFC_SQ_TTMP7                                       0x77
  2495. #define     V_008DFC_SQ_TTMP8                                       0x78
  2496. #define     V_008DFC_SQ_TTMP9                                       0x79
  2497. #define     V_008DFC_SQ_TTMP10                                      0x7A
  2498. #define     V_008DFC_SQ_TTMP11                                      0x7B
  2499. #define     V_008DFC_SQ_M0                                          0x7C
  2500. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  2501. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  2502. #define     V_008DFC_SQ_SRC_0                                       0x80
  2503. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  2504. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  2505. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  2506. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  2507. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  2508. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  2509. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  2510. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  2511. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  2512. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  2513. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  2514. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  2515. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  2516. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  2517. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  2518. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  2519. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  2520. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  2521. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  2522. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  2523. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  2524. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  2525. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  2526. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  2527. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  2528. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  2529. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  2530. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  2531. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  2532. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  2533. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  2534. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  2535. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  2536. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  2537. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  2538. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  2539. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  2540. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  2541. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  2542. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  2543. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  2544. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  2545. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  2546. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  2547. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  2548. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  2549. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  2550. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  2551. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  2552. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  2553. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  2554. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  2555. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  2556. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  2557. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  2558. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  2559. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  2560. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  2561. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  2562. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  2563. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  2564. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  2565. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  2566. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  2567. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  2568. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  2569. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  2570. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  2571. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  2572. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  2573. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  2574. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  2575. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  2576. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  2577. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  2578. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  2579. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  2580. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  2581. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  2582. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  2583. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  2584. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  2585. #define     V_008DFC_SQ_SRC_1                                       0xF2
  2586. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  2587. #define     V_008DFC_SQ_SRC_2                                       0xF4
  2588. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  2589. #define     V_008DFC_SQ_SRC_4                                       0xF6
  2590. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  2591. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  2592. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  2593. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  2594. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  2595. #define   S_008DFC_OP(x)                                              (((x) & 0xFF) << 8)
  2596. #define   G_008DFC_OP(x)                                              (((x) >> 8) & 0xFF)
  2597. #define   C_008DFC_OP                                                 0xFFFF00FF
  2598. #define     V_008DFC_SQ_S_MOV_B32                                   0x03
  2599. #define     V_008DFC_SQ_S_MOV_B64                                   0x04
  2600. #define     V_008DFC_SQ_S_CMOV_B32                                  0x05
  2601. #define     V_008DFC_SQ_S_CMOV_B64                                  0x06
  2602. #define     V_008DFC_SQ_S_NOT_B32                                   0x07
  2603. #define     V_008DFC_SQ_S_NOT_B64                                   0x08
  2604. #define     V_008DFC_SQ_S_WQM_B32                                   0x09
  2605. #define     V_008DFC_SQ_S_WQM_B64                                   0x0A
  2606. #define     V_008DFC_SQ_S_BREV_B32                                  0x0B
  2607. #define     V_008DFC_SQ_S_BREV_B64                                  0x0C
  2608. #define     V_008DFC_SQ_S_BCNT0_I32_B32                             0x0D
  2609. #define     V_008DFC_SQ_S_BCNT0_I32_B64                             0x0E
  2610. #define     V_008DFC_SQ_S_BCNT1_I32_B32                             0x0F
  2611. #define     V_008DFC_SQ_S_BCNT1_I32_B64                             0x10
  2612. #define     V_008DFC_SQ_S_FF0_I32_B32                               0x11
  2613. #define     V_008DFC_SQ_S_FF0_I32_B64                               0x12
  2614. #define     V_008DFC_SQ_S_FF1_I32_B32                               0x13
  2615. #define     V_008DFC_SQ_S_FF1_I32_B64                               0x14
  2616. #define     V_008DFC_SQ_S_FLBIT_I32_B32                             0x15
  2617. #define     V_008DFC_SQ_S_FLBIT_I32_B64                             0x16
  2618. #define     V_008DFC_SQ_S_FLBIT_I32                                 0x17
  2619. #define     V_008DFC_SQ_S_FLBIT_I32_I64                             0x18
  2620. #define     V_008DFC_SQ_S_SEXT_I32_I8                               0x19
  2621. #define     V_008DFC_SQ_S_SEXT_I32_I16                              0x1A
  2622. #define     V_008DFC_SQ_S_BITSET0_B32                               0x1B
  2623. #define     V_008DFC_SQ_S_BITSET0_B64                               0x1C
  2624. #define     V_008DFC_SQ_S_BITSET1_B32                               0x1D
  2625. #define     V_008DFC_SQ_S_BITSET1_B64                               0x1E
  2626. #define     V_008DFC_SQ_S_GETPC_B64                                 0x1F
  2627. #define     V_008DFC_SQ_S_SETPC_B64                                 0x20
  2628. #define     V_008DFC_SQ_S_SWAPPC_B64                                0x21
  2629. #define     V_008DFC_SQ_S_RFE_B64                                   0x22
  2630. #define     V_008DFC_SQ_S_AND_SAVEEXEC_B64                          0x24
  2631. #define     V_008DFC_SQ_S_OR_SAVEEXEC_B64                           0x25
  2632. #define     V_008DFC_SQ_S_XOR_SAVEEXEC_B64                          0x26
  2633. #define     V_008DFC_SQ_S_ANDN2_SAVEEXEC_B64                        0x27
  2634. #define     V_008DFC_SQ_S_ORN2_SAVEEXEC_B64                         0x28
  2635. #define     V_008DFC_SQ_S_NAND_SAVEEXEC_B64                         0x29
  2636. #define     V_008DFC_SQ_S_NOR_SAVEEXEC_B64                          0x2A
  2637. #define     V_008DFC_SQ_S_XNOR_SAVEEXEC_B64                         0x2B
  2638. #define     V_008DFC_SQ_S_QUADMASK_B32                              0x2C
  2639. #define     V_008DFC_SQ_S_QUADMASK_B64                              0x2D
  2640. #define     V_008DFC_SQ_S_MOVRELS_B32                               0x2E
  2641. #define     V_008DFC_SQ_S_MOVRELS_B64                               0x2F
  2642. #define     V_008DFC_SQ_S_MOVRELD_B32                               0x30
  2643. #define     V_008DFC_SQ_S_MOVRELD_B64                               0x31
  2644. #define     V_008DFC_SQ_S_CBRANCH_JOIN                              0x32
  2645. #define     V_008DFC_SQ_S_MOV_REGRD_B32                             0x33
  2646. #define     V_008DFC_SQ_S_ABS_I32                                   0x34
  2647. #define     V_008DFC_SQ_S_MOV_FED_B32                               0x35
  2648. #define   S_008DFC_SDST(x)                                            (((x) & 0x7F) << 16)
  2649. #define   G_008DFC_SDST(x)                                            (((x) >> 16) & 0x7F)
  2650. #define   C_008DFC_SDST                                               0xFF80FFFF
  2651. #define     V_008DFC_SQ_SGPR                                        0x00
  2652. /* CIK */
  2653. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  2654. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  2655. /*     */
  2656. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  2657. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  2658. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  2659. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  2660. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  2661. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  2662. #define     V_008DFC_SQ_TTMP0                                       0x70
  2663. #define     V_008DFC_SQ_TTMP1                                       0x71
  2664. #define     V_008DFC_SQ_TTMP2                                       0x72
  2665. #define     V_008DFC_SQ_TTMP3                                       0x73
  2666. #define     V_008DFC_SQ_TTMP4                                       0x74
  2667. #define     V_008DFC_SQ_TTMP5                                       0x75
  2668. #define     V_008DFC_SQ_TTMP6                                       0x76
  2669. #define     V_008DFC_SQ_TTMP7                                       0x77
  2670. #define     V_008DFC_SQ_TTMP8                                       0x78
  2671. #define     V_008DFC_SQ_TTMP9                                       0x79
  2672. #define     V_008DFC_SQ_TTMP10                                      0x7A
  2673. #define     V_008DFC_SQ_TTMP11                                      0x7B
  2674. #define     V_008DFC_SQ_M0                                          0x7C
  2675. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  2676. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  2677. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x1FF) << 23)
  2678. #define   G_008DFC_ENCODING(x)                                        (((x) >> 23) & 0x1FF)
  2679. #define   C_008DFC_ENCODING                                           0x007FFFFF
  2680. #define     V_008DFC_SQ_ENC_SOP1_FIELD                              0x17D
  2681. #define R_008DFC_SQ_MTBUF_1                                             0x008DFC
  2682. #define   S_008DFC_VADDR(x)                                           (((x) & 0xFF) << 0)
  2683. #define   G_008DFC_VADDR(x)                                           (((x) >> 0) & 0xFF)
  2684. #define   C_008DFC_VADDR                                              0xFFFFFF00
  2685. #define     V_008DFC_SQ_VGPR                                        0x00
  2686. #define   S_008DFC_VDATA(x)                                           (((x) & 0xFF) << 8)
  2687. #define   G_008DFC_VDATA(x)                                           (((x) >> 8) & 0xFF)
  2688. #define   C_008DFC_VDATA                                              0xFFFF00FF
  2689. #define     V_008DFC_SQ_VGPR                                        0x00
  2690. #define   S_008DFC_SRSRC(x)                                           (((x) & 0x1F) << 16)
  2691. #define   G_008DFC_SRSRC(x)                                           (((x) >> 16) & 0x1F)
  2692. #define   C_008DFC_SRSRC                                              0xFFE0FFFF
  2693. #define   S_008DFC_SLC(x)                                             (((x) & 0x1) << 22)
  2694. #define   G_008DFC_SLC(x)                                             (((x) >> 22) & 0x1)
  2695. #define   C_008DFC_SLC                                                0xFFBFFFFF
  2696. #define   S_008DFC_TFE(x)                                             (((x) & 0x1) << 23)
  2697. #define   G_008DFC_TFE(x)                                             (((x) >> 23) & 0x1)
  2698. #define   C_008DFC_TFE                                                0xFF7FFFFF
  2699. #define   S_008DFC_SOFFSET(x)                                         (((x) & 0xFF) << 24)
  2700. #define   G_008DFC_SOFFSET(x)                                         (((x) >> 24) & 0xFF)
  2701. #define   C_008DFC_SOFFSET                                            0x00FFFFFF
  2702. #define     V_008DFC_SQ_SGPR                                        0x00
  2703. /* CIK */
  2704. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  2705. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  2706. /*     */
  2707. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  2708. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  2709. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  2710. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  2711. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  2712. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  2713. #define     V_008DFC_SQ_TTMP0                                       0x70
  2714. #define     V_008DFC_SQ_TTMP1                                       0x71
  2715. #define     V_008DFC_SQ_TTMP2                                       0x72
  2716. #define     V_008DFC_SQ_TTMP3                                       0x73
  2717. #define     V_008DFC_SQ_TTMP4                                       0x74
  2718. #define     V_008DFC_SQ_TTMP5                                       0x75
  2719. #define     V_008DFC_SQ_TTMP6                                       0x76
  2720. #define     V_008DFC_SQ_TTMP7                                       0x77
  2721. #define     V_008DFC_SQ_TTMP8                                       0x78
  2722. #define     V_008DFC_SQ_TTMP9                                       0x79
  2723. #define     V_008DFC_SQ_TTMP10                                      0x7A
  2724. #define     V_008DFC_SQ_TTMP11                                      0x7B
  2725. #define     V_008DFC_SQ_M0                                          0x7C
  2726. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  2727. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  2728. #define     V_008DFC_SQ_SRC_0                                       0x80
  2729. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  2730. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  2731. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  2732. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  2733. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  2734. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  2735. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  2736. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  2737. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  2738. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  2739. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  2740. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  2741. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  2742. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  2743. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  2744. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  2745. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  2746. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  2747. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  2748. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  2749. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  2750. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  2751. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  2752. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  2753. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  2754. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  2755. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  2756. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  2757. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  2758. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  2759. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  2760. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  2761. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  2762. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  2763. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  2764. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  2765. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  2766. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  2767. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  2768. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  2769. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  2770. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  2771. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  2772. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  2773. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  2774. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  2775. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  2776. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  2777. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  2778. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  2779. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  2780. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  2781. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  2782. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  2783. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  2784. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  2785. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  2786. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  2787. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  2788. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  2789. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  2790. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  2791. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  2792. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  2793. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  2794. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  2795. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  2796. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  2797. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  2798. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  2799. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  2800. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  2801. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  2802. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  2803. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  2804. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  2805. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  2806. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  2807. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  2808. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  2809. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  2810. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  2811. #define     V_008DFC_SQ_SRC_1                                       0xF2
  2812. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  2813. #define     V_008DFC_SQ_SRC_2                                       0xF4
  2814. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  2815. #define     V_008DFC_SQ_SRC_4                                       0xF6
  2816. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  2817. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  2818. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  2819. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  2820. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  2821. #define R_008DFC_SQ_SOP2                                                0x008DFC
  2822. #define   S_008DFC_SSRC0(x)                                           (((x) & 0xFF) << 0)
  2823. #define   G_008DFC_SSRC0(x)                                           (((x) >> 0) & 0xFF)
  2824. #define   C_008DFC_SSRC0                                              0xFFFFFF00
  2825. #define     V_008DFC_SQ_SGPR                                        0x00
  2826. /* CIK */
  2827. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  2828. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  2829. /*     */
  2830. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  2831. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  2832. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  2833. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  2834. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  2835. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  2836. #define     V_008DFC_SQ_TTMP0                                       0x70
  2837. #define     V_008DFC_SQ_TTMP1                                       0x71
  2838. #define     V_008DFC_SQ_TTMP2                                       0x72
  2839. #define     V_008DFC_SQ_TTMP3                                       0x73
  2840. #define     V_008DFC_SQ_TTMP4                                       0x74
  2841. #define     V_008DFC_SQ_TTMP5                                       0x75
  2842. #define     V_008DFC_SQ_TTMP6                                       0x76
  2843. #define     V_008DFC_SQ_TTMP7                                       0x77
  2844. #define     V_008DFC_SQ_TTMP8                                       0x78
  2845. #define     V_008DFC_SQ_TTMP9                                       0x79
  2846. #define     V_008DFC_SQ_TTMP10                                      0x7A
  2847. #define     V_008DFC_SQ_TTMP11                                      0x7B
  2848. #define     V_008DFC_SQ_M0                                          0x7C
  2849. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  2850. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  2851. #define     V_008DFC_SQ_SRC_0                                       0x80
  2852. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  2853. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  2854. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  2855. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  2856. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  2857. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  2858. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  2859. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  2860. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  2861. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  2862. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  2863. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  2864. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  2865. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  2866. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  2867. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  2868. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  2869. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  2870. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  2871. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  2872. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  2873. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  2874. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  2875. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  2876. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  2877. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  2878. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  2879. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  2880. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  2881. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  2882. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  2883. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  2884. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  2885. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  2886. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  2887. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  2888. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  2889. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  2890. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  2891. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  2892. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  2893. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  2894. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  2895. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  2896. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  2897. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  2898. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  2899. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  2900. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  2901. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  2902. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  2903. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  2904. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  2905. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  2906. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  2907. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  2908. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  2909. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  2910. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  2911. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  2912. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  2913. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  2914. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  2915. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  2916. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  2917. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  2918. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  2919. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  2920. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  2921. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  2922. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  2923. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  2924. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  2925. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  2926. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  2927. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  2928. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  2929. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  2930. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  2931. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  2932. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  2933. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  2934. #define     V_008DFC_SQ_SRC_1                                       0xF2
  2935. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  2936. #define     V_008DFC_SQ_SRC_2                                       0xF4
  2937. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  2938. #define     V_008DFC_SQ_SRC_4                                       0xF6
  2939. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  2940. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  2941. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  2942. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  2943. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  2944. #define   S_008DFC_SSRC1(x)                                           (((x) & 0xFF) << 8)
  2945. #define   G_008DFC_SSRC1(x)                                           (((x) >> 8) & 0xFF)
  2946. #define   C_008DFC_SSRC1                                              0xFFFF00FF
  2947. #define     V_008DFC_SQ_SGPR                                        0x00
  2948. /* CIK */
  2949. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  2950. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  2951. /*     */
  2952. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  2953. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  2954. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  2955. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  2956. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  2957. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  2958. #define     V_008DFC_SQ_TTMP0                                       0x70
  2959. #define     V_008DFC_SQ_TTMP1                                       0x71
  2960. #define     V_008DFC_SQ_TTMP2                                       0x72
  2961. #define     V_008DFC_SQ_TTMP3                                       0x73
  2962. #define     V_008DFC_SQ_TTMP4                                       0x74
  2963. #define     V_008DFC_SQ_TTMP5                                       0x75
  2964. #define     V_008DFC_SQ_TTMP6                                       0x76
  2965. #define     V_008DFC_SQ_TTMP7                                       0x77
  2966. #define     V_008DFC_SQ_TTMP8                                       0x78
  2967. #define     V_008DFC_SQ_TTMP9                                       0x79
  2968. #define     V_008DFC_SQ_TTMP10                                      0x7A
  2969. #define     V_008DFC_SQ_TTMP11                                      0x7B
  2970. #define     V_008DFC_SQ_M0                                          0x7C
  2971. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  2972. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  2973. #define     V_008DFC_SQ_SRC_0                                       0x80
  2974. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  2975. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  2976. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  2977. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  2978. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  2979. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  2980. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  2981. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  2982. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  2983. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  2984. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  2985. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  2986. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  2987. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  2988. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  2989. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  2990. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  2991. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  2992. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  2993. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  2994. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  2995. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  2996. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  2997. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  2998. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  2999. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  3000. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  3001. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  3002. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  3003. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  3004. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  3005. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  3006. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  3007. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  3008. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  3009. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  3010. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  3011. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  3012. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  3013. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  3014. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  3015. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  3016. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  3017. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  3018. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  3019. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  3020. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  3021. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  3022. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  3023. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  3024. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  3025. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  3026. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  3027. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  3028. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  3029. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  3030. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  3031. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  3032. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  3033. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  3034. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  3035. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  3036. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  3037. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  3038. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  3039. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  3040. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  3041. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  3042. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  3043. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  3044. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  3045. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  3046. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  3047. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  3048. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  3049. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  3050. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  3051. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  3052. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  3053. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  3054. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  3055. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  3056. #define     V_008DFC_SQ_SRC_1                                       0xF2
  3057. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  3058. #define     V_008DFC_SQ_SRC_2                                       0xF4
  3059. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  3060. #define     V_008DFC_SQ_SRC_4                                       0xF6
  3061. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  3062. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  3063. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  3064. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  3065. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  3066. #define   S_008DFC_SDST(x)                                            (((x) & 0x7F) << 16)
  3067. #define   G_008DFC_SDST(x)                                            (((x) >> 16) & 0x7F)
  3068. #define   C_008DFC_SDST                                               0xFF80FFFF
  3069. #define     V_008DFC_SQ_SGPR                                        0x00
  3070. /* CIK */
  3071. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  3072. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  3073. /*     */
  3074. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  3075. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  3076. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  3077. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  3078. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  3079. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  3080. #define     V_008DFC_SQ_TTMP0                                       0x70
  3081. #define     V_008DFC_SQ_TTMP1                                       0x71
  3082. #define     V_008DFC_SQ_TTMP2                                       0x72
  3083. #define     V_008DFC_SQ_TTMP3                                       0x73
  3084. #define     V_008DFC_SQ_TTMP4                                       0x74
  3085. #define     V_008DFC_SQ_TTMP5                                       0x75
  3086. #define     V_008DFC_SQ_TTMP6                                       0x76
  3087. #define     V_008DFC_SQ_TTMP7                                       0x77
  3088. #define     V_008DFC_SQ_TTMP8                                       0x78
  3089. #define     V_008DFC_SQ_TTMP9                                       0x79
  3090. #define     V_008DFC_SQ_TTMP10                                      0x7A
  3091. #define     V_008DFC_SQ_TTMP11                                      0x7B
  3092. #define     V_008DFC_SQ_M0                                          0x7C
  3093. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  3094. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  3095. #define   S_008DFC_OP(x)                                              (((x) & 0x7F) << 23)
  3096. #define   G_008DFC_OP(x)                                              (((x) >> 23) & 0x7F)
  3097. #define   C_008DFC_OP                                                 0xC07FFFFF
  3098. #define     V_008DFC_SQ_S_ADD_U32                                   0x00
  3099. #define     V_008DFC_SQ_S_SUB_U32                                   0x01
  3100. #define     V_008DFC_SQ_S_ADD_I32                                   0x02
  3101. #define     V_008DFC_SQ_S_SUB_I32                                   0x03
  3102. #define     V_008DFC_SQ_S_ADDC_U32                                  0x04
  3103. #define     V_008DFC_SQ_S_SUBB_U32                                  0x05
  3104. #define     V_008DFC_SQ_S_MIN_I32                                   0x06
  3105. #define     V_008DFC_SQ_S_MIN_U32                                   0x07
  3106. #define     V_008DFC_SQ_S_MAX_I32                                   0x08
  3107. #define     V_008DFC_SQ_S_MAX_U32                                   0x09
  3108. #define     V_008DFC_SQ_S_CSELECT_B32                               0x0A
  3109. #define     V_008DFC_SQ_S_CSELECT_B64                               0x0B
  3110. #define     V_008DFC_SQ_S_AND_B32                                   0x0E
  3111. #define     V_008DFC_SQ_S_AND_B64                                   0x0F
  3112. #define     V_008DFC_SQ_S_OR_B32                                    0x10
  3113. #define     V_008DFC_SQ_S_OR_B64                                    0x11
  3114. #define     V_008DFC_SQ_S_XOR_B32                                   0x12
  3115. #define     V_008DFC_SQ_S_XOR_B64                                   0x13
  3116. #define     V_008DFC_SQ_S_ANDN2_B32                                 0x14
  3117. #define     V_008DFC_SQ_S_ANDN2_B64                                 0x15
  3118. #define     V_008DFC_SQ_S_ORN2_B32                                  0x16
  3119. #define     V_008DFC_SQ_S_ORN2_B64                                  0x17
  3120. #define     V_008DFC_SQ_S_NAND_B32                                  0x18
  3121. #define     V_008DFC_SQ_S_NAND_B64                                  0x19
  3122. #define     V_008DFC_SQ_S_NOR_B32                                   0x1A
  3123. #define     V_008DFC_SQ_S_NOR_B64                                   0x1B
  3124. #define     V_008DFC_SQ_S_XNOR_B32                                  0x1C
  3125. #define     V_008DFC_SQ_S_XNOR_B64                                  0x1D
  3126. #define     V_008DFC_SQ_S_LSHL_B32                                  0x1E
  3127. #define     V_008DFC_SQ_S_LSHL_B64                                  0x1F
  3128. #define     V_008DFC_SQ_S_LSHR_B32                                  0x20
  3129. #define     V_008DFC_SQ_S_LSHR_B64                                  0x21
  3130. #define     V_008DFC_SQ_S_ASHR_I32                                  0x22
  3131. #define     V_008DFC_SQ_S_ASHR_I64                                  0x23
  3132. #define     V_008DFC_SQ_S_BFM_B32                                   0x24
  3133. #define     V_008DFC_SQ_S_BFM_B64                                   0x25
  3134. #define     V_008DFC_SQ_S_MUL_I32                                   0x26
  3135. #define     V_008DFC_SQ_S_BFE_U32                                   0x27
  3136. #define     V_008DFC_SQ_S_BFE_I32                                   0x28
  3137. #define     V_008DFC_SQ_S_BFE_U64                                   0x29
  3138. #define     V_008DFC_SQ_S_BFE_I64                                   0x2A
  3139. #define     V_008DFC_SQ_S_CBRANCH_G_FORK                            0x2B
  3140. #define     V_008DFC_SQ_S_ABSDIFF_I32                               0x2C
  3141. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x03) << 30)
  3142. #define   G_008DFC_ENCODING(x)                                        (((x) >> 30) & 0x03)
  3143. #define   C_008DFC_ENCODING                                           0x3FFFFFFF
  3144. #define     V_008DFC_SQ_ENC_SOP2_FIELD                              0x02
  3145. #define R_008DFC_SQ_SOPK                                                0x008DFC
  3146. #define   S_008DFC_SIMM16(x)                                          (((x) & 0xFFFF) << 0)
  3147. #define   G_008DFC_SIMM16(x)                                          (((x) >> 0) & 0xFFFF)
  3148. #define   C_008DFC_SIMM16                                             0xFFFF0000
  3149. #define   S_008DFC_SDST(x)                                            (((x) & 0x7F) << 16)
  3150. #define   G_008DFC_SDST(x)                                            (((x) >> 16) & 0x7F)
  3151. #define   C_008DFC_SDST                                               0xFF80FFFF
  3152. #define     V_008DFC_SQ_SGPR                                        0x00
  3153. /* CIK */
  3154. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  3155. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  3156. /*     */
  3157. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  3158. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  3159. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  3160. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  3161. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  3162. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  3163. #define     V_008DFC_SQ_TTMP0                                       0x70
  3164. #define     V_008DFC_SQ_TTMP1                                       0x71
  3165. #define     V_008DFC_SQ_TTMP2                                       0x72
  3166. #define     V_008DFC_SQ_TTMP3                                       0x73
  3167. #define     V_008DFC_SQ_TTMP4                                       0x74
  3168. #define     V_008DFC_SQ_TTMP5                                       0x75
  3169. #define     V_008DFC_SQ_TTMP6                                       0x76
  3170. #define     V_008DFC_SQ_TTMP7                                       0x77
  3171. #define     V_008DFC_SQ_TTMP8                                       0x78
  3172. #define     V_008DFC_SQ_TTMP9                                       0x79
  3173. #define     V_008DFC_SQ_TTMP10                                      0x7A
  3174. #define     V_008DFC_SQ_TTMP11                                      0x7B
  3175. #define     V_008DFC_SQ_M0                                          0x7C
  3176. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  3177. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  3178. #define   S_008DFC_OP(x)                                              (((x) & 0x1F) << 23)
  3179. #define   G_008DFC_OP(x)                                              (((x) >> 23) & 0x1F)
  3180. #define   C_008DFC_OP                                                 0xF07FFFFF
  3181. #define     V_008DFC_SQ_S_MOVK_I32                                  0x00
  3182. #define     V_008DFC_SQ_S_CMOVK_I32                                 0x02
  3183. #define     V_008DFC_SQ_S_CMPK_EQ_I32                               0x03
  3184. #define     V_008DFC_SQ_S_CMPK_LG_I32                               0x04
  3185. #define     V_008DFC_SQ_S_CMPK_GT_I32                               0x05
  3186. #define     V_008DFC_SQ_S_CMPK_GE_I32                               0x06
  3187. #define     V_008DFC_SQ_S_CMPK_LT_I32                               0x07
  3188. #define     V_008DFC_SQ_S_CMPK_LE_I32                               0x08
  3189. #define     V_008DFC_SQ_S_CMPK_EQ_U32                               0x09
  3190. #define     V_008DFC_SQ_S_CMPK_LG_U32                               0x0A
  3191. #define     V_008DFC_SQ_S_CMPK_GT_U32                               0x0B
  3192. #define     V_008DFC_SQ_S_CMPK_GE_U32                               0x0C
  3193. #define     V_008DFC_SQ_S_CMPK_LT_U32                               0x0D
  3194. #define     V_008DFC_SQ_S_CMPK_LE_U32                               0x0E
  3195. #define     V_008DFC_SQ_S_ADDK_I32                                  0x0F
  3196. #define     V_008DFC_SQ_S_MULK_I32                                  0x10
  3197. #define     V_008DFC_SQ_S_CBRANCH_I_FORK                            0x11
  3198. #define     V_008DFC_SQ_S_GETREG_B32                                0x12
  3199. #define     V_008DFC_SQ_S_SETREG_B32                                0x13
  3200. #define     V_008DFC_SQ_S_GETREG_REGRD_B32                          0x14
  3201. #define     V_008DFC_SQ_S_SETREG_IMM32_B32                          0x15
  3202. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x0F) << 28)
  3203. #define   G_008DFC_ENCODING(x)                                        (((x) >> 28) & 0x0F)
  3204. #define   C_008DFC_ENCODING                                           0x0FFFFFFF
  3205. #define     V_008DFC_SQ_ENC_SOPK_FIELD                              0x0B
  3206. #define R_008DFC_SQ_VOP3_0                                              0x008DFC
  3207. #define   S_008DFC_VDST(x)                                            (((x) & 0xFF) << 0)
  3208. #define   G_008DFC_VDST(x)                                            (((x) >> 0) & 0xFF)
  3209. #define   C_008DFC_VDST                                               0xFFFFFF00
  3210. #define     V_008DFC_SQ_VGPR                                        0x00
  3211. #define   S_008DFC_ABS(x)                                             (((x) & 0x07) << 8)
  3212. #define   G_008DFC_ABS(x)                                             (((x) >> 8) & 0x07)
  3213. #define   C_008DFC_ABS                                                0xFFFFF8FF
  3214. #define   S_008DFC_CLAMP(x)                                           (((x) & 0x1) << 11)
  3215. #define   G_008DFC_CLAMP(x)                                           (((x) >> 11) & 0x1)
  3216. #define   C_008DFC_CLAMP                                              0xFFFFF7FF
  3217. #define   S_008DFC_OP(x)                                              (((x) & 0x1FF) << 17)
  3218. #define   G_008DFC_OP(x)                                              (((x) >> 17) & 0x1FF)
  3219. #define   C_008DFC_OP                                                 0xFC01FFFF
  3220. #define     V_008DFC_SQ_V_OPC_OFFSET                                0x00
  3221. #define     V_008DFC_SQ_V_OP2_OFFSET                                0x100
  3222. #define     V_008DFC_SQ_V_MAD_LEGACY_F32                            0x140
  3223. #define     V_008DFC_SQ_V_MAD_F32                                   0x141
  3224. #define     V_008DFC_SQ_V_MAD_I32_I24                               0x142
  3225. #define     V_008DFC_SQ_V_MAD_U32_U24                               0x143
  3226. #define     V_008DFC_SQ_V_CUBEID_F32                                0x144
  3227. #define     V_008DFC_SQ_V_CUBESC_F32                                0x145
  3228. #define     V_008DFC_SQ_V_CUBETC_F32                                0x146
  3229. #define     V_008DFC_SQ_V_CUBEMA_F32                                0x147
  3230. #define     V_008DFC_SQ_V_BFE_U32                                   0x148
  3231. #define     V_008DFC_SQ_V_BFE_I32                                   0x149
  3232. #define     V_008DFC_SQ_V_BFI_B32                                   0x14A
  3233. #define     V_008DFC_SQ_V_FMA_F32                                   0x14B
  3234. #define     V_008DFC_SQ_V_FMA_F64                                   0x14C
  3235. #define     V_008DFC_SQ_V_LERP_U8                                   0x14D
  3236. #define     V_008DFC_SQ_V_ALIGNBIT_B32                              0x14E
  3237. #define     V_008DFC_SQ_V_ALIGNBYTE_B32                             0x14F
  3238. #define     V_008DFC_SQ_V_MULLIT_F32                                0x150
  3239. #define     V_008DFC_SQ_V_MIN3_F32                                  0x151
  3240. #define     V_008DFC_SQ_V_MIN3_I32                                  0x152
  3241. #define     V_008DFC_SQ_V_MIN3_U32                                  0x153
  3242. #define     V_008DFC_SQ_V_MAX3_F32                                  0x154
  3243. #define     V_008DFC_SQ_V_MAX3_I32                                  0x155
  3244. #define     V_008DFC_SQ_V_MAX3_U32                                  0x156
  3245. #define     V_008DFC_SQ_V_MED3_F32                                  0x157
  3246. #define     V_008DFC_SQ_V_MED3_I32                                  0x158
  3247. #define     V_008DFC_SQ_V_MED3_U32                                  0x159
  3248. #define     V_008DFC_SQ_V_SAD_U8                                    0x15A
  3249. #define     V_008DFC_SQ_V_SAD_HI_U8                                 0x15B
  3250. #define     V_008DFC_SQ_V_SAD_U16                                   0x15C
  3251. #define     V_008DFC_SQ_V_SAD_U32                                   0x15D
  3252. #define     V_008DFC_SQ_V_CVT_PK_U8_F32                             0x15E
  3253. #define     V_008DFC_SQ_V_DIV_FIXUP_F32                             0x15F
  3254. #define     V_008DFC_SQ_V_DIV_FIXUP_F64                             0x160
  3255. #define     V_008DFC_SQ_V_LSHL_B64                                  0x161
  3256. #define     V_008DFC_SQ_V_LSHR_B64                                  0x162
  3257. #define     V_008DFC_SQ_V_ASHR_I64                                  0x163
  3258. #define     V_008DFC_SQ_V_ADD_F64                                   0x164
  3259. #define     V_008DFC_SQ_V_MUL_F64                                   0x165
  3260. #define     V_008DFC_SQ_V_MIN_F64                                   0x166
  3261. #define     V_008DFC_SQ_V_MAX_F64                                   0x167
  3262. #define     V_008DFC_SQ_V_LDEXP_F64                                 0x168
  3263. #define     V_008DFC_SQ_V_MUL_LO_U32                                0x169
  3264. #define     V_008DFC_SQ_V_MUL_HI_U32                                0x16A
  3265. #define     V_008DFC_SQ_V_MUL_LO_I32                                0x16B
  3266. #define     V_008DFC_SQ_V_MUL_HI_I32                                0x16C
  3267. #define     V_008DFC_SQ_V_DIV_SCALE_F32                             0x16D
  3268. #define     V_008DFC_SQ_V_DIV_SCALE_F64                             0x16E
  3269. #define     V_008DFC_SQ_V_DIV_FMAS_F32                              0x16F
  3270. #define     V_008DFC_SQ_V_DIV_FMAS_F64                              0x170
  3271. #define     V_008DFC_SQ_V_MSAD_U8                                   0x171
  3272. #define     V_008DFC_SQ_V_QSAD_U8                                   0x172
  3273. #define     V_008DFC_SQ_V_MQSAD_U8                                  0x173
  3274. #define     V_008DFC_SQ_V_TRIG_PREOP_F64                            0x174
  3275. /* CIK */
  3276. #define     V_008DFC_SQ_V_MQSAD_U32_U8                              0x175
  3277. #define     V_008DFC_SQ_V_MAD_U64_U32                               0x176
  3278. #define     V_008DFC_SQ_V_MAD_I64_I32                               0x177
  3279. /*     */
  3280. #define     V_008DFC_SQ_V_OP1_OFFSET                                0x180
  3281. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  3282. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  3283. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  3284. #define     V_008DFC_SQ_ENC_VOP3_FIELD                              0x34
  3285. #define R_008DFC_SQ_VOP2                                                0x008DFC
  3286. #define   S_008DFC_SRC0(x)                                            (((x) & 0x1FF) << 0)
  3287. #define   G_008DFC_SRC0(x)                                            (((x) >> 0) & 0x1FF)
  3288. #define   C_008DFC_SRC0                                               0xFFFFFE00
  3289. #define     V_008DFC_SQ_SGPR                                        0x00
  3290. /* CIK */
  3291. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  3292. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  3293. /*     */
  3294. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  3295. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  3296. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  3297. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  3298. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  3299. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  3300. #define     V_008DFC_SQ_TTMP0                                       0x70
  3301. #define     V_008DFC_SQ_TTMP1                                       0x71
  3302. #define     V_008DFC_SQ_TTMP2                                       0x72
  3303. #define     V_008DFC_SQ_TTMP3                                       0x73
  3304. #define     V_008DFC_SQ_TTMP4                                       0x74
  3305. #define     V_008DFC_SQ_TTMP5                                       0x75
  3306. #define     V_008DFC_SQ_TTMP6                                       0x76
  3307. #define     V_008DFC_SQ_TTMP7                                       0x77
  3308. #define     V_008DFC_SQ_TTMP8                                       0x78
  3309. #define     V_008DFC_SQ_TTMP9                                       0x79
  3310. #define     V_008DFC_SQ_TTMP10                                      0x7A
  3311. #define     V_008DFC_SQ_TTMP11                                      0x7B
  3312. #define     V_008DFC_SQ_M0                                          0x7C
  3313. #define     V_008DFC_SQ_EXEC_LO                                     0x7E
  3314. #define     V_008DFC_SQ_EXEC_HI                                     0x7F
  3315. #define     V_008DFC_SQ_SRC_0                                       0x80
  3316. #define     V_008DFC_SQ_SRC_1_INT                                   0x81
  3317. #define     V_008DFC_SQ_SRC_2_INT                                   0x82
  3318. #define     V_008DFC_SQ_SRC_3_INT                                   0x83
  3319. #define     V_008DFC_SQ_SRC_4_INT                                   0x84
  3320. #define     V_008DFC_SQ_SRC_5_INT                                   0x85
  3321. #define     V_008DFC_SQ_SRC_6_INT                                   0x86
  3322. #define     V_008DFC_SQ_SRC_7_INT                                   0x87
  3323. #define     V_008DFC_SQ_SRC_8_INT                                   0x88
  3324. #define     V_008DFC_SQ_SRC_9_INT                                   0x89
  3325. #define     V_008DFC_SQ_SRC_10_INT                                  0x8A
  3326. #define     V_008DFC_SQ_SRC_11_INT                                  0x8B
  3327. #define     V_008DFC_SQ_SRC_12_INT                                  0x8C
  3328. #define     V_008DFC_SQ_SRC_13_INT                                  0x8D
  3329. #define     V_008DFC_SQ_SRC_14_INT                                  0x8E
  3330. #define     V_008DFC_SQ_SRC_15_INT                                  0x8F
  3331. #define     V_008DFC_SQ_SRC_16_INT                                  0x90
  3332. #define     V_008DFC_SQ_SRC_17_INT                                  0x91
  3333. #define     V_008DFC_SQ_SRC_18_INT                                  0x92
  3334. #define     V_008DFC_SQ_SRC_19_INT                                  0x93
  3335. #define     V_008DFC_SQ_SRC_20_INT                                  0x94
  3336. #define     V_008DFC_SQ_SRC_21_INT                                  0x95
  3337. #define     V_008DFC_SQ_SRC_22_INT                                  0x96
  3338. #define     V_008DFC_SQ_SRC_23_INT                                  0x97
  3339. #define     V_008DFC_SQ_SRC_24_INT                                  0x98
  3340. #define     V_008DFC_SQ_SRC_25_INT                                  0x99
  3341. #define     V_008DFC_SQ_SRC_26_INT                                  0x9A
  3342. #define     V_008DFC_SQ_SRC_27_INT                                  0x9B
  3343. #define     V_008DFC_SQ_SRC_28_INT                                  0x9C
  3344. #define     V_008DFC_SQ_SRC_29_INT                                  0x9D
  3345. #define     V_008DFC_SQ_SRC_30_INT                                  0x9E
  3346. #define     V_008DFC_SQ_SRC_31_INT                                  0x9F
  3347. #define     V_008DFC_SQ_SRC_32_INT                                  0xA0
  3348. #define     V_008DFC_SQ_SRC_33_INT                                  0xA1
  3349. #define     V_008DFC_SQ_SRC_34_INT                                  0xA2
  3350. #define     V_008DFC_SQ_SRC_35_INT                                  0xA3
  3351. #define     V_008DFC_SQ_SRC_36_INT                                  0xA4
  3352. #define     V_008DFC_SQ_SRC_37_INT                                  0xA5
  3353. #define     V_008DFC_SQ_SRC_38_INT                                  0xA6
  3354. #define     V_008DFC_SQ_SRC_39_INT                                  0xA7
  3355. #define     V_008DFC_SQ_SRC_40_INT                                  0xA8
  3356. #define     V_008DFC_SQ_SRC_41_INT                                  0xA9
  3357. #define     V_008DFC_SQ_SRC_42_INT                                  0xAA
  3358. #define     V_008DFC_SQ_SRC_43_INT                                  0xAB
  3359. #define     V_008DFC_SQ_SRC_44_INT                                  0xAC
  3360. #define     V_008DFC_SQ_SRC_45_INT                                  0xAD
  3361. #define     V_008DFC_SQ_SRC_46_INT                                  0xAE
  3362. #define     V_008DFC_SQ_SRC_47_INT                                  0xAF
  3363. #define     V_008DFC_SQ_SRC_48_INT                                  0xB0
  3364. #define     V_008DFC_SQ_SRC_49_INT                                  0xB1
  3365. #define     V_008DFC_SQ_SRC_50_INT                                  0xB2
  3366. #define     V_008DFC_SQ_SRC_51_INT                                  0xB3
  3367. #define     V_008DFC_SQ_SRC_52_INT                                  0xB4
  3368. #define     V_008DFC_SQ_SRC_53_INT                                  0xB5
  3369. #define     V_008DFC_SQ_SRC_54_INT                                  0xB6
  3370. #define     V_008DFC_SQ_SRC_55_INT                                  0xB7
  3371. #define     V_008DFC_SQ_SRC_56_INT                                  0xB8
  3372. #define     V_008DFC_SQ_SRC_57_INT                                  0xB9
  3373. #define     V_008DFC_SQ_SRC_58_INT                                  0xBA
  3374. #define     V_008DFC_SQ_SRC_59_INT                                  0xBB
  3375. #define     V_008DFC_SQ_SRC_60_INT                                  0xBC
  3376. #define     V_008DFC_SQ_SRC_61_INT                                  0xBD
  3377. #define     V_008DFC_SQ_SRC_62_INT                                  0xBE
  3378. #define     V_008DFC_SQ_SRC_63_INT                                  0xBF
  3379. #define     V_008DFC_SQ_SRC_64_INT                                  0xC0
  3380. #define     V_008DFC_SQ_SRC_M_1_INT                                 0xC1
  3381. #define     V_008DFC_SQ_SRC_M_2_INT                                 0xC2
  3382. #define     V_008DFC_SQ_SRC_M_3_INT                                 0xC3
  3383. #define     V_008DFC_SQ_SRC_M_4_INT                                 0xC4
  3384. #define     V_008DFC_SQ_SRC_M_5_INT                                 0xC5
  3385. #define     V_008DFC_SQ_SRC_M_6_INT                                 0xC6
  3386. #define     V_008DFC_SQ_SRC_M_7_INT                                 0xC7
  3387. #define     V_008DFC_SQ_SRC_M_8_INT                                 0xC8
  3388. #define     V_008DFC_SQ_SRC_M_9_INT                                 0xC9
  3389. #define     V_008DFC_SQ_SRC_M_10_INT                                0xCA
  3390. #define     V_008DFC_SQ_SRC_M_11_INT                                0xCB
  3391. #define     V_008DFC_SQ_SRC_M_12_INT                                0xCC
  3392. #define     V_008DFC_SQ_SRC_M_13_INT                                0xCD
  3393. #define     V_008DFC_SQ_SRC_M_14_INT                                0xCE
  3394. #define     V_008DFC_SQ_SRC_M_15_INT                                0xCF
  3395. #define     V_008DFC_SQ_SRC_M_16_INT                                0xD0
  3396. #define     V_008DFC_SQ_SRC_0_5                                     0xF0
  3397. #define     V_008DFC_SQ_SRC_M_0_5                                   0xF1
  3398. #define     V_008DFC_SQ_SRC_1                                       0xF2
  3399. #define     V_008DFC_SQ_SRC_M_1                                     0xF3
  3400. #define     V_008DFC_SQ_SRC_2                                       0xF4
  3401. #define     V_008DFC_SQ_SRC_M_2                                     0xF5
  3402. #define     V_008DFC_SQ_SRC_4                                       0xF6
  3403. #define     V_008DFC_SQ_SRC_M_4                                     0xF7
  3404. #define     V_008DFC_SQ_SRC_VCCZ                                    0xFB
  3405. #define     V_008DFC_SQ_SRC_EXECZ                                   0xFC
  3406. #define     V_008DFC_SQ_SRC_SCC                                     0xFD
  3407. #define     V_008DFC_SQ_SRC_LDS_DIRECT                              0xFE
  3408. #define     V_008DFC_SQ_SRC_VGPR                                    0x100
  3409. #define   S_008DFC_VSRC1(x)                                           (((x) & 0xFF) << 9)
  3410. #define   G_008DFC_VSRC1(x)                                           (((x) >> 9) & 0xFF)
  3411. #define   C_008DFC_VSRC1                                              0xFFFE01FF
  3412. #define     V_008DFC_SQ_VGPR                                        0x00
  3413. #define   S_008DFC_VDST(x)                                            (((x) & 0xFF) << 17)
  3414. #define   G_008DFC_VDST(x)                                            (((x) >> 17) & 0xFF)
  3415. #define   C_008DFC_VDST                                               0xFE01FFFF
  3416. #define     V_008DFC_SQ_VGPR                                        0x00
  3417. #define   S_008DFC_OP(x)                                              (((x) & 0x3F) << 25)
  3418. #define   G_008DFC_OP(x)                                              (((x) >> 25) & 0x3F)
  3419. #define   C_008DFC_OP                                                 0x81FFFFFF
  3420. #define     V_008DFC_SQ_V_CNDMASK_B32                               0x00
  3421. #define     V_008DFC_SQ_V_READLANE_B32                              0x01
  3422. #define     V_008DFC_SQ_V_WRITELANE_B32                             0x02
  3423. #define     V_008DFC_SQ_V_ADD_F32                                   0x03
  3424. #define     V_008DFC_SQ_V_SUB_F32                                   0x04
  3425. #define     V_008DFC_SQ_V_SUBREV_F32                                0x05
  3426. #define     V_008DFC_SQ_V_MAC_LEGACY_F32                            0x06
  3427. #define     V_008DFC_SQ_V_MUL_LEGACY_F32                            0x07
  3428. #define     V_008DFC_SQ_V_MUL_F32                                   0x08
  3429. #define     V_008DFC_SQ_V_MUL_I32_I24                               0x09
  3430. #define     V_008DFC_SQ_V_MUL_HI_I32_I24                            0x0A
  3431. #define     V_008DFC_SQ_V_MUL_U32_U24                               0x0B
  3432. #define     V_008DFC_SQ_V_MUL_HI_U32_U24                            0x0C
  3433. #define     V_008DFC_SQ_V_MIN_LEGACY_F32                            0x0D
  3434. #define     V_008DFC_SQ_V_MAX_LEGACY_F32                            0x0E
  3435. #define     V_008DFC_SQ_V_MIN_F32                                   0x0F
  3436. #define     V_008DFC_SQ_V_MAX_F32                                   0x10
  3437. #define     V_008DFC_SQ_V_MIN_I32                                   0x11
  3438. #define     V_008DFC_SQ_V_MAX_I32                                   0x12
  3439. #define     V_008DFC_SQ_V_MIN_U32                                   0x13
  3440. #define     V_008DFC_SQ_V_MAX_U32                                   0x14
  3441. #define     V_008DFC_SQ_V_LSHR_B32                                  0x15
  3442. #define     V_008DFC_SQ_V_LSHRREV_B32                               0x16
  3443. #define     V_008DFC_SQ_V_ASHR_I32                                  0x17
  3444. #define     V_008DFC_SQ_V_ASHRREV_I32                               0x18
  3445. #define     V_008DFC_SQ_V_LSHL_B32                                  0x19
  3446. #define     V_008DFC_SQ_V_LSHLREV_B32                               0x1A
  3447. #define     V_008DFC_SQ_V_AND_B32                                   0x1B
  3448. #define     V_008DFC_SQ_V_OR_B32                                    0x1C
  3449. #define     V_008DFC_SQ_V_XOR_B32                                   0x1D
  3450. #define     V_008DFC_SQ_V_BFM_B32                                   0x1E
  3451. #define     V_008DFC_SQ_V_MAC_F32                                   0x1F
  3452. #define     V_008DFC_SQ_V_MADMK_F32                                 0x20
  3453. #define     V_008DFC_SQ_V_MADAK_F32                                 0x21
  3454. #define     V_008DFC_SQ_V_BCNT_U32_B32                              0x22
  3455. #define     V_008DFC_SQ_V_MBCNT_LO_U32_B32                          0x23
  3456. #define     V_008DFC_SQ_V_MBCNT_HI_U32_B32                          0x24
  3457. #define     V_008DFC_SQ_V_ADD_I32                                   0x25
  3458. #define     V_008DFC_SQ_V_SUB_I32                                   0x26
  3459. #define     V_008DFC_SQ_V_SUBREV_I32                                0x27
  3460. #define     V_008DFC_SQ_V_ADDC_U32                                  0x28
  3461. #define     V_008DFC_SQ_V_SUBB_U32                                  0x29
  3462. #define     V_008DFC_SQ_V_SUBBREV_U32                               0x2A
  3463. #define     V_008DFC_SQ_V_LDEXP_F32                                 0x2B
  3464. #define     V_008DFC_SQ_V_CVT_PKACCUM_U8_F32                        0x2C
  3465. #define     V_008DFC_SQ_V_CVT_PKNORM_I16_F32                        0x2D
  3466. #define     V_008DFC_SQ_V_CVT_PKNORM_U16_F32                        0x2E
  3467. #define     V_008DFC_SQ_V_CVT_PKRTZ_F16_F32                         0x2F
  3468. #define     V_008DFC_SQ_V_CVT_PK_U16_U32                            0x30
  3469. #define     V_008DFC_SQ_V_CVT_PK_I16_I32                            0x31
  3470. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x1) << 31)
  3471. #define   G_008DFC_ENCODING(x)                                        (((x) >> 31) & 0x1)
  3472. #define   C_008DFC_ENCODING                                           0x7FFFFFFF
  3473. #define R_008DFC_SQ_VOP3_0_SDST_ENC                                     0x008DFC
  3474. #define   S_008DFC_VDST(x)                                            (((x) & 0xFF) << 0)
  3475. #define   G_008DFC_VDST(x)                                            (((x) >> 0) & 0xFF)
  3476. #define   C_008DFC_VDST                                               0xFFFFFF00
  3477. #define     V_008DFC_SQ_VGPR                                        0x00
  3478. #define   S_008DFC_SDST(x)                                            (((x) & 0x7F) << 8)
  3479. #define   G_008DFC_SDST(x)                                            (((x) >> 8) & 0x7F)
  3480. #define   C_008DFC_SDST                                               0xFFFF80FF
  3481. #define     V_008DFC_SQ_SGPR                                        0x00
  3482. /* CIK */
  3483. #define     V_008DFC_SQ_FLAT_SCRATCH_LO                             0x68
  3484. #define     V_008DFC_SQ_FLAT_SCRATCH_HI                             0x69
  3485. /*     */
  3486. #define     V_008DFC_SQ_VCC_LO                                      0x6A
  3487. #define     V_008DFC_SQ_VCC_HI                                      0x6B
  3488. #define     V_008DFC_SQ_TBA_LO                                      0x6C
  3489. #define     V_008DFC_SQ_TBA_HI                                      0x6D
  3490. #define     V_008DFC_SQ_TMA_LO                                      0x6E
  3491. #define     V_008DFC_SQ_TMA_HI                                      0x6F
  3492. #define     V_008DFC_SQ_TTMP0                                       0x70
  3493. #define     V_008DFC_SQ_TTMP1                                       0x71
  3494. #define     V_008DFC_SQ_TTMP2                                       0x72
  3495. #define     V_008DFC_SQ_TTMP3                                       0x73
  3496. #define     V_008DFC_SQ_TTMP4                                       0x74
  3497. #define     V_008DFC_SQ_TTMP5                                       0x75
  3498. #define     V_008DFC_SQ_TTMP6                                       0x76
  3499. #define     V_008DFC_SQ_TTMP7                                       0x77
  3500. #define     V_008DFC_SQ_TTMP8                                       0x78
  3501. #define     V_008DFC_SQ_TTMP9                                       0x79
  3502. #define     V_008DFC_SQ_TTMP10                                      0x7A
  3503. #define     V_008DFC_SQ_TTMP11                                      0x7B
  3504. #define   S_008DFC_OP(x)                                              (((x) & 0x1FF) << 17)
  3505. #define   G_008DFC_OP(x)                                              (((x) >> 17) & 0x1FF)
  3506. #define   C_008DFC_OP                                                 0xFC01FFFF
  3507. #define     V_008DFC_SQ_V_OPC_OFFSET                                0x00
  3508. #define     V_008DFC_SQ_V_OP2_OFFSET                                0x100
  3509. #define     V_008DFC_SQ_V_MAD_LEGACY_F32                            0x140
  3510. #define     V_008DFC_SQ_V_MAD_F32                                   0x141
  3511. #define     V_008DFC_SQ_V_MAD_I32_I24                               0x142
  3512. #define     V_008DFC_SQ_V_MAD_U32_U24                               0x143
  3513. #define     V_008DFC_SQ_V_CUBEID_F32                                0x144
  3514. #define     V_008DFC_SQ_V_CUBESC_F32                                0x145
  3515. #define     V_008DFC_SQ_V_CUBETC_F32                                0x146
  3516. #define     V_008DFC_SQ_V_CUBEMA_F32                                0x147
  3517. #define     V_008DFC_SQ_V_BFE_U32                                   0x148
  3518. #define     V_008DFC_SQ_V_BFE_I32                                   0x149
  3519. #define     V_008DFC_SQ_V_BFI_B32                                   0x14A
  3520. #define     V_008DFC_SQ_V_FMA_F32                                   0x14B
  3521. #define     V_008DFC_SQ_V_FMA_F64                                   0x14C
  3522. #define     V_008DFC_SQ_V_LERP_U8                                   0x14D
  3523. #define     V_008DFC_SQ_V_ALIGNBIT_B32                              0x14E
  3524. #define     V_008DFC_SQ_V_ALIGNBYTE_B32                             0x14F
  3525. #define     V_008DFC_SQ_V_MULLIT_F32                                0x150
  3526. #define     V_008DFC_SQ_V_MIN3_F32                                  0x151
  3527. #define     V_008DFC_SQ_V_MIN3_I32                                  0x152
  3528. #define     V_008DFC_SQ_V_MIN3_U32                                  0x153
  3529. #define     V_008DFC_SQ_V_MAX3_F32                                  0x154
  3530. #define     V_008DFC_SQ_V_MAX3_I32                                  0x155
  3531. #define     V_008DFC_SQ_V_MAX3_U32                                  0x156
  3532. #define     V_008DFC_SQ_V_MED3_F32                                  0x157
  3533. #define     V_008DFC_SQ_V_MED3_I32                                  0x158
  3534. #define     V_008DFC_SQ_V_MED3_U32                                  0x159
  3535. #define     V_008DFC_SQ_V_SAD_U8                                    0x15A
  3536. #define     V_008DFC_SQ_V_SAD_HI_U8                                 0x15B
  3537. #define     V_008DFC_SQ_V_SAD_U16                                   0x15C
  3538. #define     V_008DFC_SQ_V_SAD_U32                                   0x15D
  3539. #define     V_008DFC_SQ_V_CVT_PK_U8_F32                             0x15E
  3540. #define     V_008DFC_SQ_V_DIV_FIXUP_F32                             0x15F
  3541. #define     V_008DFC_SQ_V_DIV_FIXUP_F64                             0x160
  3542. #define     V_008DFC_SQ_V_LSHL_B64                                  0x161
  3543. #define     V_008DFC_SQ_V_LSHR_B64                                  0x162
  3544. #define     V_008DFC_SQ_V_ASHR_I64                                  0x163
  3545. #define     V_008DFC_SQ_V_ADD_F64                                   0x164
  3546. #define     V_008DFC_SQ_V_MUL_F64                                   0x165
  3547. #define     V_008DFC_SQ_V_MIN_F64                                   0x166
  3548. #define     V_008DFC_SQ_V_MAX_F64                                   0x167
  3549. #define     V_008DFC_SQ_V_LDEXP_F64                                 0x168
  3550. #define     V_008DFC_SQ_V_MUL_LO_U32                                0x169
  3551. #define     V_008DFC_SQ_V_MUL_HI_U32                                0x16A
  3552. #define     V_008DFC_SQ_V_MUL_LO_I32                                0x16B
  3553. #define     V_008DFC_SQ_V_MUL_HI_I32                                0x16C
  3554. #define     V_008DFC_SQ_V_DIV_SCALE_F32                             0x16D
  3555. #define     V_008DFC_SQ_V_DIV_SCALE_F64                             0x16E
  3556. #define     V_008DFC_SQ_V_DIV_FMAS_F32                              0x16F
  3557. #define     V_008DFC_SQ_V_DIV_FMAS_F64                              0x170
  3558. #define     V_008DFC_SQ_V_MSAD_U8                                   0x171
  3559. #define     V_008DFC_SQ_V_QSAD_U8                                   0x172
  3560. #define     V_008DFC_SQ_V_MQSAD_U8                                  0x173
  3561. #define     V_008DFC_SQ_V_TRIG_PREOP_F64                            0x174
  3562. /* CIK */
  3563. #define     V_008DFC_SQ_V_MQSAD_U32_U8                              0x175
  3564. #define     V_008DFC_SQ_V_MAD_U64_U32                               0x176
  3565. #define     V_008DFC_SQ_V_MAD_I64_I32                               0x177
  3566. /*     */
  3567. #define     V_008DFC_SQ_V_OP1_OFFSET                                0x180
  3568. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  3569. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  3570. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  3571. #define     V_008DFC_SQ_ENC_VOP3_FIELD                              0x34
  3572. #define R_008DFC_SQ_MUBUF_0                                             0x008DFC
  3573. #define   S_008DFC_OFFSET(x)                                          (((x) & 0xFFF) << 0)
  3574. #define   G_008DFC_OFFSET(x)                                          (((x) >> 0) & 0xFFF)
  3575. #define   C_008DFC_OFFSET                                             0xFFFFF000
  3576. #define   S_008DFC_OFFEN(x)                                           (((x) & 0x1) << 12)
  3577. #define   G_008DFC_OFFEN(x)                                           (((x) >> 12) & 0x1)
  3578. #define   C_008DFC_OFFEN                                              0xFFFFEFFF
  3579. #define   S_008DFC_IDXEN(x)                                           (((x) & 0x1) << 13)
  3580. #define   G_008DFC_IDXEN(x)                                           (((x) >> 13) & 0x1)
  3581. #define   C_008DFC_IDXEN                                              0xFFFFDFFF
  3582. #define   S_008DFC_GLC(x)                                             (((x) & 0x1) << 14)
  3583. #define   G_008DFC_GLC(x)                                             (((x) >> 14) & 0x1)
  3584. #define   C_008DFC_GLC                                                0xFFFFBFFF
  3585. #define   S_008DFC_ADDR64(x)                                          (((x) & 0x1) << 15)
  3586. #define   G_008DFC_ADDR64(x)                                          (((x) >> 15) & 0x1)
  3587. #define   C_008DFC_ADDR64                                             0xFFFF7FFF
  3588. #define   S_008DFC_LDS(x)                                             (((x) & 0x1) << 16)
  3589. #define   G_008DFC_LDS(x)                                             (((x) >> 16) & 0x1)
  3590. #define   C_008DFC_LDS                                                0xFFFEFFFF
  3591. #define   S_008DFC_OP(x)                                              (((x) & 0x7F) << 18)
  3592. #define   G_008DFC_OP(x)                                              (((x) >> 18) & 0x7F)
  3593. #define   C_008DFC_OP                                                 0xFE03FFFF
  3594. #define     V_008DFC_SQ_BUFFER_LOAD_FORMAT_X                        0x00
  3595. #define     V_008DFC_SQ_BUFFER_LOAD_FORMAT_XY                       0x01
  3596. #define     V_008DFC_SQ_BUFFER_LOAD_FORMAT_XYZ                      0x02
  3597. #define     V_008DFC_SQ_BUFFER_LOAD_FORMAT_XYZW                     0x03
  3598. #define     V_008DFC_SQ_BUFFER_STORE_FORMAT_X                       0x04
  3599. #define     V_008DFC_SQ_BUFFER_STORE_FORMAT_XY                      0x05
  3600. #define     V_008DFC_SQ_BUFFER_STORE_FORMAT_XYZ                     0x06
  3601. #define     V_008DFC_SQ_BUFFER_STORE_FORMAT_XYZW                    0x07
  3602. #define     V_008DFC_SQ_BUFFER_LOAD_UBYTE                           0x08
  3603. #define     V_008DFC_SQ_BUFFER_LOAD_SBYTE                           0x09
  3604. #define     V_008DFC_SQ_BUFFER_LOAD_USHORT                          0x0A
  3605. #define     V_008DFC_SQ_BUFFER_LOAD_SSHORT                          0x0B
  3606. #define     V_008DFC_SQ_BUFFER_LOAD_DWORD                           0x0C
  3607. #define     V_008DFC_SQ_BUFFER_LOAD_DWORDX2                         0x0D
  3608. #define     V_008DFC_SQ_BUFFER_LOAD_DWORDX4                         0x0E
  3609. /* CIK */
  3610. #define     V_008DFC_SQ_BUFFER_LOAD_DWORDX3                         0x0F
  3611. /*     */
  3612. #define     V_008DFC_SQ_BUFFER_STORE_BYTE                           0x18
  3613. #define     V_008DFC_SQ_BUFFER_STORE_SHORT                          0x1A
  3614. #define     V_008DFC_SQ_BUFFER_STORE_DWORD                          0x1C
  3615. #define     V_008DFC_SQ_BUFFER_STORE_DWORDX2                        0x1D
  3616. #define     V_008DFC_SQ_BUFFER_STORE_DWORDX4                        0x1E
  3617. /* CIK */
  3618. #define     V_008DFC_SQ_BUFFER_STORE_DWORDX3                        0x1F
  3619. /*     */
  3620. #define     V_008DFC_SQ_BUFFER_ATOMIC_SWAP                          0x30
  3621. #define     V_008DFC_SQ_BUFFER_ATOMIC_CMPSWAP                       0x31
  3622. #define     V_008DFC_SQ_BUFFER_ATOMIC_ADD                           0x32
  3623. #define     V_008DFC_SQ_BUFFER_ATOMIC_SUB                           0x33
  3624. #define     V_008DFC_SQ_BUFFER_ATOMIC_RSUB                          0x34 /* not on CIK */
  3625. #define     V_008DFC_SQ_BUFFER_ATOMIC_SMIN                          0x35
  3626. #define     V_008DFC_SQ_BUFFER_ATOMIC_UMIN                          0x36
  3627. #define     V_008DFC_SQ_BUFFER_ATOMIC_SMAX                          0x37
  3628. #define     V_008DFC_SQ_BUFFER_ATOMIC_UMAX                          0x38
  3629. #define     V_008DFC_SQ_BUFFER_ATOMIC_AND                           0x39
  3630. #define     V_008DFC_SQ_BUFFER_ATOMIC_OR                            0x3A
  3631. #define     V_008DFC_SQ_BUFFER_ATOMIC_XOR                           0x3B
  3632. #define     V_008DFC_SQ_BUFFER_ATOMIC_INC                           0x3C
  3633. #define     V_008DFC_SQ_BUFFER_ATOMIC_DEC                           0x3D
  3634. #define     V_008DFC_SQ_BUFFER_ATOMIC_FCMPSWAP                      0x3E
  3635. #define     V_008DFC_SQ_BUFFER_ATOMIC_FMIN                          0x3F
  3636. #define     V_008DFC_SQ_BUFFER_ATOMIC_FMAX                          0x40
  3637. #define     V_008DFC_SQ_BUFFER_ATOMIC_SWAP_X2                       0x50
  3638. #define     V_008DFC_SQ_BUFFER_ATOMIC_CMPSWAP_X2                    0x51
  3639. #define     V_008DFC_SQ_BUFFER_ATOMIC_ADD_X2                        0x52
  3640. #define     V_008DFC_SQ_BUFFER_ATOMIC_SUB_X2                        0x53
  3641. #define     V_008DFC_SQ_BUFFER_ATOMIC_RSUB_X2                       0x54 /* not on CIK */
  3642. #define     V_008DFC_SQ_BUFFER_ATOMIC_SMIN_X2                       0x55
  3643. #define     V_008DFC_SQ_BUFFER_ATOMIC_UMIN_X2                       0x56
  3644. #define     V_008DFC_SQ_BUFFER_ATOMIC_SMAX_X2                       0x57
  3645. #define     V_008DFC_SQ_BUFFER_ATOMIC_UMAX_X2                       0x58
  3646. #define     V_008DFC_SQ_BUFFER_ATOMIC_AND_X2                        0x59
  3647. #define     V_008DFC_SQ_BUFFER_ATOMIC_OR_X2                         0x5A
  3648. #define     V_008DFC_SQ_BUFFER_ATOMIC_XOR_X2                        0x5B
  3649. #define     V_008DFC_SQ_BUFFER_ATOMIC_INC_X2                        0x5C
  3650. #define     V_008DFC_SQ_BUFFER_ATOMIC_DEC_X2                        0x5D
  3651. #define     V_008DFC_SQ_BUFFER_ATOMIC_FCMPSWAP_X2                   0x5E
  3652. #define     V_008DFC_SQ_BUFFER_ATOMIC_FMIN_X2                       0x5F
  3653. #define     V_008DFC_SQ_BUFFER_ATOMIC_FMAX_X2                       0x60
  3654. #define     V_008DFC_SQ_BUFFER_WBINVL1_SC                           0x70
  3655. /* CIK */
  3656. #define     V_008DFC_SQ_BUFFER_WBINVL1_VOL                          0x70
  3657. /*     */
  3658. #define     V_008DFC_SQ_BUFFER_WBINVL1                              0x71
  3659. #define   S_008DFC_ENCODING(x)                                        (((x) & 0x3F) << 26)
  3660. #define   G_008DFC_ENCODING(x)                                        (((x) >> 26) & 0x3F)
  3661. #define   C_008DFC_ENCODING                                           0x03FFFFFF
  3662. #define     V_008DFC_SQ_ENC_MUBUF_FIELD                             0x38
  3663. #endif
  3664. #define R_008F00_SQ_BUF_RSRC_WORD0                                      0x008F00
  3665. #define R_008F04_SQ_BUF_RSRC_WORD1                                      0x008F04
  3666. #define   S_008F04_BASE_ADDRESS_HI(x)                                 (((x) & 0xFFFF) << 0)
  3667. #define   G_008F04_BASE_ADDRESS_HI(x)                                 (((x) >> 0) & 0xFFFF)
  3668. #define   C_008F04_BASE_ADDRESS_HI                                    0xFFFF0000
  3669. #define   S_008F04_STRIDE(x)                                          (((x) & 0x3FFF) << 16)
  3670. #define   G_008F04_STRIDE(x)                                          (((x) >> 16) & 0x3FFF)
  3671. #define   C_008F04_STRIDE                                             0xC000FFFF
  3672. #define   S_008F04_CACHE_SWIZZLE(x)                                   (((x) & 0x1) << 30)
  3673. #define   G_008F04_CACHE_SWIZZLE(x)                                   (((x) >> 30) & 0x1)
  3674. #define   C_008F04_CACHE_SWIZZLE                                      0xBFFFFFFF
  3675. #define   S_008F04_SWIZZLE_ENABLE(x)                                  (((x) & 0x1) << 31)
  3676. #define   G_008F04_SWIZZLE_ENABLE(x)                                  (((x) >> 31) & 0x1)
  3677. #define   C_008F04_SWIZZLE_ENABLE                                     0x7FFFFFFF
  3678. #define R_008F08_SQ_BUF_RSRC_WORD2                                      0x008F08
  3679. #define R_008F0C_SQ_BUF_RSRC_WORD3                                      0x008F0C
  3680. #define   S_008F0C_DST_SEL_X(x)                                       (((x) & 0x07) << 0)
  3681. #define   G_008F0C_DST_SEL_X(x)                                       (((x) >> 0) & 0x07)
  3682. #define   C_008F0C_DST_SEL_X                                          0xFFFFFFF8
  3683. #define     V_008F0C_SQ_SEL_0                                       0x00
  3684. #define     V_008F0C_SQ_SEL_1                                       0x01
  3685. #define     V_008F0C_SQ_SEL_RESERVED_0                              0x02
  3686. #define     V_008F0C_SQ_SEL_RESERVED_1                              0x03
  3687. #define     V_008F0C_SQ_SEL_X                                       0x04
  3688. #define     V_008F0C_SQ_SEL_Y                                       0x05
  3689. #define     V_008F0C_SQ_SEL_Z                                       0x06
  3690. #define     V_008F0C_SQ_SEL_W                                       0x07
  3691. #define   S_008F0C_DST_SEL_Y(x)                                       (((x) & 0x07) << 3)
  3692. #define   G_008F0C_DST_SEL_Y(x)                                       (((x) >> 3) & 0x07)
  3693. #define   C_008F0C_DST_SEL_Y                                          0xFFFFFFC7
  3694. #define     V_008F0C_SQ_SEL_0                                       0x00
  3695. #define     V_008F0C_SQ_SEL_1                                       0x01
  3696. #define     V_008F0C_SQ_SEL_RESERVED_0                              0x02
  3697. #define     V_008F0C_SQ_SEL_RESERVED_1                              0x03
  3698. #define     V_008F0C_SQ_SEL_X                                       0x04
  3699. #define     V_008F0C_SQ_SEL_Y                                       0x05
  3700. #define     V_008F0C_SQ_SEL_Z                                       0x06
  3701. #define     V_008F0C_SQ_SEL_W                                       0x07
  3702. #define   S_008F0C_DST_SEL_Z(x)                                       (((x) & 0x07) << 6)
  3703. #define   G_008F0C_DST_SEL_Z(x)                                       (((x) >> 6) & 0x07)
  3704. #define   C_008F0C_DST_SEL_Z                                          0xFFFFFE3F
  3705. #define     V_008F0C_SQ_SEL_0                                       0x00
  3706. #define     V_008F0C_SQ_SEL_1                                       0x01
  3707. #define     V_008F0C_SQ_SEL_RESERVED_0                              0x02
  3708. #define     V_008F0C_SQ_SEL_RESERVED_1                              0x03
  3709. #define     V_008F0C_SQ_SEL_X                                       0x04
  3710. #define     V_008F0C_SQ_SEL_Y                                       0x05
  3711. #define     V_008F0C_SQ_SEL_Z                                       0x06
  3712. #define     V_008F0C_SQ_SEL_W                                       0x07
  3713. #define   S_008F0C_DST_SEL_W(x)                                       (((x) & 0x07) << 9)
  3714. #define   G_008F0C_DST_SEL_W(x)                                       (((x) >> 9) & 0x07)
  3715. #define   C_008F0C_DST_SEL_W                                          0xFFFFF1FF
  3716. #define     V_008F0C_SQ_SEL_0                                       0x00
  3717. #define     V_008F0C_SQ_SEL_1                                       0x01
  3718. #define     V_008F0C_SQ_SEL_RESERVED_0                              0x02
  3719. #define     V_008F0C_SQ_SEL_RESERVED_1                              0x03
  3720. #define     V_008F0C_SQ_SEL_X                                       0x04
  3721. #define     V_008F0C_SQ_SEL_Y                                       0x05
  3722. #define     V_008F0C_SQ_SEL_Z                                       0x06
  3723. #define     V_008F0C_SQ_SEL_W                                       0x07
  3724. #define   S_008F0C_NUM_FORMAT(x)                                      (((x) & 0x07) << 12)
  3725. #define   G_008F0C_NUM_FORMAT(x)                                      (((x) >> 12) & 0x07)
  3726. #define   C_008F0C_NUM_FORMAT                                         0xFFFF8FFF
  3727. #define     V_008F0C_BUF_NUM_FORMAT_UNORM                           0x00
  3728. #define     V_008F0C_BUF_NUM_FORMAT_SNORM                           0x01
  3729. #define     V_008F0C_BUF_NUM_FORMAT_USCALED                         0x02
  3730. #define     V_008F0C_BUF_NUM_FORMAT_SSCALED                         0x03
  3731. #define     V_008F0C_BUF_NUM_FORMAT_UINT                            0x04
  3732. #define     V_008F0C_BUF_NUM_FORMAT_SINT                            0x05
  3733. #define     V_008F0C_BUF_NUM_FORMAT_SNORM_OGL                       0x06
  3734. #define     V_008F0C_BUF_NUM_FORMAT_FLOAT                           0x07
  3735. #define   S_008F0C_DATA_FORMAT(x)                                     (((x) & 0x0F) << 15)
  3736. #define   G_008F0C_DATA_FORMAT(x)                                     (((x) >> 15) & 0x0F)
  3737. #define   C_008F0C_DATA_FORMAT                                        0xFFF87FFF
  3738. #define     V_008F0C_BUF_DATA_FORMAT_INVALID                        0x00
  3739. #define     V_008F0C_BUF_DATA_FORMAT_8                              0x01
  3740. #define     V_008F0C_BUF_DATA_FORMAT_16                             0x02
  3741. #define     V_008F0C_BUF_DATA_FORMAT_8_8                            0x03
  3742. #define     V_008F0C_BUF_DATA_FORMAT_32                             0x04
  3743. #define     V_008F0C_BUF_DATA_FORMAT_16_16                          0x05
  3744. #define     V_008F0C_BUF_DATA_FORMAT_10_11_11                       0x06
  3745. #define     V_008F0C_BUF_DATA_FORMAT_11_11_10                       0x07
  3746. #define     V_008F0C_BUF_DATA_FORMAT_10_10_10_2                     0x08
  3747. #define     V_008F0C_BUF_DATA_FORMAT_2_10_10_10                     0x09
  3748. #define     V_008F0C_BUF_DATA_FORMAT_8_8_8_8                        0x0A
  3749. #define     V_008F0C_BUF_DATA_FORMAT_32_32                          0x0B
  3750. #define     V_008F0C_BUF_DATA_FORMAT_16_16_16_16                    0x0C
  3751. #define     V_008F0C_BUF_DATA_FORMAT_32_32_32                       0x0D
  3752. #define     V_008F0C_BUF_DATA_FORMAT_32_32_32_32                    0x0E
  3753. #define     V_008F0C_BUF_DATA_FORMAT_RESERVED_15                    0x0F
  3754. #define   S_008F0C_ELEMENT_SIZE(x)                                    (((x) & 0x03) << 19)
  3755. #define   G_008F0C_ELEMENT_SIZE(x)                                    (((x) >> 19) & 0x03)
  3756. #define   C_008F0C_ELEMENT_SIZE                                       0xFFE7FFFF
  3757. #define   S_008F0C_INDEX_STRIDE(x)                                    (((x) & 0x03) << 21)
  3758. #define   G_008F0C_INDEX_STRIDE(x)                                    (((x) >> 21) & 0x03)
  3759. #define   C_008F0C_INDEX_STRIDE                                       0xFF9FFFFF
  3760. #define   S_008F0C_ADD_TID_ENABLE(x)                                  (((x) & 0x1) << 23)
  3761. #define   G_008F0C_ADD_TID_ENABLE(x)                                  (((x) >> 23) & 0x1)
  3762. #define   C_008F0C_ADD_TID_ENABLE                                     0xFF7FFFFF
  3763. /* CIK */
  3764. #define   S_008F0C_ATC(x)                                             (((x) & 0x1) << 24)
  3765. #define   G_008F0C_ATC(x)                                             (((x) >> 24) & 0x1)
  3766. #define   C_008F0C_ATC                                                0xFEFFFFFF
  3767. /*     */
  3768. #define   S_008F0C_HASH_ENABLE(x)                                     (((x) & 0x1) << 25)
  3769. #define   G_008F0C_HASH_ENABLE(x)                                     (((x) >> 25) & 0x1)
  3770. #define   C_008F0C_HASH_ENABLE                                        0xFDFFFFFF
  3771. #define   S_008F0C_HEAP(x)                                            (((x) & 0x1) << 26)
  3772. #define   G_008F0C_HEAP(x)                                            (((x) >> 26) & 0x1)
  3773. #define   C_008F0C_HEAP                                               0xFBFFFFFF
  3774. /* CIK */
  3775. #define   S_008F0C_MTYPE(x)                                           (((x) & 0x07) << 27)
  3776. #define   G_008F0C_MTYPE(x)                                           (((x) >> 27) & 0x07)
  3777. #define   C_008F0C_MTYPE                                              0xC7FFFFFF
  3778. /*     */
  3779. #define   S_008F0C_TYPE(x)                                            (((x) & 0x03) << 30)
  3780. #define   G_008F0C_TYPE(x)                                            (((x) >> 30) & 0x03)
  3781. #define   C_008F0C_TYPE                                               0x3FFFFFFF
  3782. #define     V_008F0C_SQ_RSRC_BUF                                    0x00
  3783. #define     V_008F0C_SQ_RSRC_BUF_RSVD_1                             0x01
  3784. #define     V_008F0C_SQ_RSRC_BUF_RSVD_2                             0x02
  3785. #define     V_008F0C_SQ_RSRC_BUF_RSVD_3                             0x03
  3786. #define R_008F10_SQ_IMG_RSRC_WORD0                                      0x008F10
  3787. #define R_008F14_SQ_IMG_RSRC_WORD1                                      0x008F14
  3788. #define   S_008F14_BASE_ADDRESS_HI(x)                                 (((x) & 0xFF) << 0)
  3789. #define   G_008F14_BASE_ADDRESS_HI(x)                                 (((x) >> 0) & 0xFF)
  3790. #define   C_008F14_BASE_ADDRESS_HI                                    0xFFFFFF00
  3791. #define   S_008F14_MIN_LOD(x)                                         (((x) & 0xFFF) << 8)
  3792. #define   G_008F14_MIN_LOD(x)                                         (((x) >> 8) & 0xFFF)
  3793. #define   C_008F14_MIN_LOD                                            0xFFF000FF
  3794. #define   S_008F14_DATA_FORMAT(x)                                     (((x) & 0x3F) << 20)
  3795. #define   G_008F14_DATA_FORMAT(x)                                     (((x) >> 20) & 0x3F)
  3796. #define   C_008F14_DATA_FORMAT                                        0xFC0FFFFF
  3797. #define     V_008F14_IMG_DATA_FORMAT_INVALID                        0x00
  3798. #define     V_008F14_IMG_DATA_FORMAT_8                              0x01
  3799. #define     V_008F14_IMG_DATA_FORMAT_16                             0x02
  3800. #define     V_008F14_IMG_DATA_FORMAT_8_8                            0x03
  3801. #define     V_008F14_IMG_DATA_FORMAT_32                             0x04
  3802. #define     V_008F14_IMG_DATA_FORMAT_16_16                          0x05
  3803. #define     V_008F14_IMG_DATA_FORMAT_10_11_11                       0x06
  3804. #define     V_008F14_IMG_DATA_FORMAT_11_11_10                       0x07
  3805. #define     V_008F14_IMG_DATA_FORMAT_10_10_10_2                     0x08
  3806. #define     V_008F14_IMG_DATA_FORMAT_2_10_10_10                     0x09
  3807. #define     V_008F14_IMG_DATA_FORMAT_8_8_8_8                        0x0A
  3808. #define     V_008F14_IMG_DATA_FORMAT_32_32                          0x0B
  3809. #define     V_008F14_IMG_DATA_FORMAT_16_16_16_16                    0x0C
  3810. #define     V_008F14_IMG_DATA_FORMAT_32_32_32                       0x0D
  3811. #define     V_008F14_IMG_DATA_FORMAT_32_32_32_32                    0x0E
  3812. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_15                    0x0F
  3813. #define     V_008F14_IMG_DATA_FORMAT_5_6_5                          0x10
  3814. #define     V_008F14_IMG_DATA_FORMAT_1_5_5_5                        0x11
  3815. #define     V_008F14_IMG_DATA_FORMAT_5_5_5_1                        0x12
  3816. #define     V_008F14_IMG_DATA_FORMAT_4_4_4_4                        0x13
  3817. #define     V_008F14_IMG_DATA_FORMAT_8_24                           0x14
  3818. #define     V_008F14_IMG_DATA_FORMAT_24_8                           0x15
  3819. #define     V_008F14_IMG_DATA_FORMAT_X24_8_32                       0x16
  3820. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_23                    0x17
  3821. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_24                    0x18
  3822. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_25                    0x19
  3823. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_26                    0x1A
  3824. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_27                    0x1B
  3825. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_28                    0x1C
  3826. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_29                    0x1D
  3827. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_30                    0x1E
  3828. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_31                    0x1F
  3829. #define     V_008F14_IMG_DATA_FORMAT_GB_GR                          0x20
  3830. #define     V_008F14_IMG_DATA_FORMAT_BG_RG                          0x21
  3831. #define     V_008F14_IMG_DATA_FORMAT_5_9_9_9                        0x22
  3832. #define     V_008F14_IMG_DATA_FORMAT_BC1                            0x23
  3833. #define     V_008F14_IMG_DATA_FORMAT_BC2                            0x24
  3834. #define     V_008F14_IMG_DATA_FORMAT_BC3                            0x25
  3835. #define     V_008F14_IMG_DATA_FORMAT_BC4                            0x26
  3836. #define     V_008F14_IMG_DATA_FORMAT_BC5                            0x27
  3837. #define     V_008F14_IMG_DATA_FORMAT_BC6                            0x28
  3838. #define     V_008F14_IMG_DATA_FORMAT_BC7                            0x29
  3839. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_42                    0x2A
  3840. #define     V_008F14_IMG_DATA_FORMAT_RESERVED_43                    0x2B
  3841. #define     V_008F14_IMG_DATA_FORMAT_FMASK8_S2_F1                   0x2C
  3842. #define     V_008F14_IMG_DATA_FORMAT_FMASK8_S4_F1                   0x2D
  3843. #define     V_008F14_IMG_DATA_FORMAT_FMASK8_S8_F1                   0x2E
  3844. #define     V_008F14_IMG_DATA_FORMAT_FMASK8_S2_F2                   0x2F
  3845. #define     V_008F14_IMG_DATA_FORMAT_FMASK8_S4_F2                   0x30
  3846. #define     V_008F14_IMG_DATA_FORMAT_FMASK8_S4_F4                   0x31
  3847. #define     V_008F14_IMG_DATA_FORMAT_FMASK16_S16_F1                 0x32
  3848. #define     V_008F14_IMG_DATA_FORMAT_FMASK16_S8_F2                  0x33
  3849. #define     V_008F14_IMG_DATA_FORMAT_FMASK32_S16_F2                 0x34
  3850. #define     V_008F14_IMG_DATA_FORMAT_FMASK32_S8_F4                  0x35
  3851. #define     V_008F14_IMG_DATA_FORMAT_FMASK32_S8_F8                  0x36
  3852. #define     V_008F14_IMG_DATA_FORMAT_FMASK64_S16_F4                 0x37
  3853. #define     V_008F14_IMG_DATA_FORMAT_FMASK64_S16_F8                 0x38
  3854. #define     V_008F14_IMG_DATA_FORMAT_4_4                            0x39
  3855. #define     V_008F14_IMG_DATA_FORMAT_6_5_5                          0x3A
  3856. #define     V_008F14_IMG_DATA_FORMAT_1                              0x3B
  3857. #define     V_008F14_IMG_DATA_FORMAT_1_REVERSED                     0x3C
  3858. #define     V_008F14_IMG_DATA_FORMAT_32_AS_8                        0x3D
  3859. #define     V_008F14_IMG_DATA_FORMAT_32_AS_8_8                      0x3E
  3860. #define     V_008F14_IMG_DATA_FORMAT_32_AS_32_32_32_32              0x3F
  3861. #define   S_008F14_NUM_FORMAT(x)                                      (((x) & 0x0F) << 26)
  3862. #define   G_008F14_NUM_FORMAT(x)                                      (((x) >> 26) & 0x0F)
  3863. #define   C_008F14_NUM_FORMAT                                         0xC3FFFFFF
  3864. #define     V_008F14_IMG_NUM_FORMAT_UNORM                           0x00
  3865. #define     V_008F14_IMG_NUM_FORMAT_SNORM                           0x01
  3866. #define     V_008F14_IMG_NUM_FORMAT_USCALED                         0x02
  3867. #define     V_008F14_IMG_NUM_FORMAT_SSCALED                         0x03
  3868. #define     V_008F14_IMG_NUM_FORMAT_UINT                            0x04
  3869. #define     V_008F14_IMG_NUM_FORMAT_SINT                            0x05
  3870. #define     V_008F14_IMG_NUM_FORMAT_SNORM_OGL                       0x06
  3871. #define     V_008F14_IMG_NUM_FORMAT_FLOAT                           0x07
  3872. #define     V_008F14_IMG_NUM_FORMAT_RESERVED_8                      0x08
  3873. #define     V_008F14_IMG_NUM_FORMAT_SRGB                            0x09
  3874. #define     V_008F14_IMG_NUM_FORMAT_UBNORM                          0x0A
  3875. #define     V_008F14_IMG_NUM_FORMAT_UBNORM_OGL                      0x0B
  3876. #define     V_008F14_IMG_NUM_FORMAT_UBINT                           0x0C
  3877. #define     V_008F14_IMG_NUM_FORMAT_UBSCALED                        0x0D
  3878. #define     V_008F14_IMG_NUM_FORMAT_RESERVED_14                     0x0E
  3879. #define     V_008F14_IMG_NUM_FORMAT_RESERVED_15                     0x0F
  3880. /* CIK */
  3881. #define   S_008F14_MTYPE(x)                                           (((x) & 0x03) << 30)
  3882. #define   G_008F14_MTYPE(x)                                           (((x) >> 30) & 0x03)
  3883. #define   C_008F14_MTYPE                                              0x3FFFFFFF
  3884. /*     */
  3885. #define R_008F18_SQ_IMG_RSRC_WORD2                                      0x008F18
  3886. #define   S_008F18_WIDTH(x)                                           (((x) & 0x3FFF) << 0)
  3887. #define   G_008F18_WIDTH(x)                                           (((x) >> 0) & 0x3FFF)
  3888. #define   C_008F18_WIDTH                                              0xFFFFC000
  3889. #define   S_008F18_HEIGHT(x)                                          (((x) & 0x3FFF) << 14)
  3890. #define   G_008F18_HEIGHT(x)                                          (((x) >> 14) & 0x3FFF)
  3891. #define   C_008F18_HEIGHT                                             0xF0003FFF
  3892. #define   S_008F18_PERF_MOD(x)                                        (((x) & 0x07) << 28)
  3893. #define   G_008F18_PERF_MOD(x)                                        (((x) >> 28) & 0x07)
  3894. #define   C_008F18_PERF_MOD                                           0x8FFFFFFF
  3895. #define   S_008F18_INTERLACED(x)                                      (((x) & 0x1) << 31)
  3896. #define   G_008F18_INTERLACED(x)                                      (((x) >> 31) & 0x1)
  3897. #define   C_008F18_INTERLACED                                         0x7FFFFFFF
  3898. #define R_008F1C_SQ_IMG_RSRC_WORD3                                      0x008F1C
  3899. #define   S_008F1C_DST_SEL_X(x)                                       (((x) & 0x07) << 0)
  3900. #define   G_008F1C_DST_SEL_X(x)                                       (((x) >> 0) & 0x07)
  3901. #define   C_008F1C_DST_SEL_X                                          0xFFFFFFF8
  3902. #define     V_008F1C_SQ_SEL_0                                       0x00
  3903. #define     V_008F1C_SQ_SEL_1                                       0x01
  3904. #define     V_008F1C_SQ_SEL_RESERVED_0                              0x02
  3905. #define     V_008F1C_SQ_SEL_RESERVED_1                              0x03
  3906. #define     V_008F1C_SQ_SEL_X                                       0x04
  3907. #define     V_008F1C_SQ_SEL_Y                                       0x05
  3908. #define     V_008F1C_SQ_SEL_Z                                       0x06
  3909. #define     V_008F1C_SQ_SEL_W                                       0x07
  3910. #define   S_008F1C_DST_SEL_Y(x)                                       (((x) & 0x07) << 3)
  3911. #define   G_008F1C_DST_SEL_Y(x)                                       (((x) >> 3) & 0x07)
  3912. #define   C_008F1C_DST_SEL_Y                                          0xFFFFFFC7
  3913. #define     V_008F1C_SQ_SEL_0                                       0x00
  3914. #define     V_008F1C_SQ_SEL_1                                       0x01
  3915. #define     V_008F1C_SQ_SEL_RESERVED_0                              0x02
  3916. #define     V_008F1C_SQ_SEL_RESERVED_1                              0x03
  3917. #define     V_008F1C_SQ_SEL_X                                       0x04
  3918. #define     V_008F1C_SQ_SEL_Y                                       0x05
  3919. #define     V_008F1C_SQ_SEL_Z                                       0x06
  3920. #define     V_008F1C_SQ_SEL_W                                       0x07
  3921. #define   S_008F1C_DST_SEL_Z(x)                                       (((x) & 0x07) << 6)
  3922. #define   G_008F1C_DST_SEL_Z(x)                                       (((x) >> 6) & 0x07)
  3923. #define   C_008F1C_DST_SEL_Z                                          0xFFFFFE3F
  3924. #define     V_008F1C_SQ_SEL_0                                       0x00
  3925. #define     V_008F1C_SQ_SEL_1                                       0x01
  3926. #define     V_008F1C_SQ_SEL_RESERVED_0                              0x02
  3927. #define     V_008F1C_SQ_SEL_RESERVED_1                              0x03
  3928. #define     V_008F1C_SQ_SEL_X                                       0x04
  3929. #define     V_008F1C_SQ_SEL_Y                                       0x05
  3930. #define     V_008F1C_SQ_SEL_Z                                       0x06
  3931. #define     V_008F1C_SQ_SEL_W                                       0x07
  3932. #define   S_008F1C_DST_SEL_W(x)                                       (((x) & 0x07) << 9)
  3933. #define   G_008F1C_DST_SEL_W(x)                                       (((x) >> 9) & 0x07)
  3934. #define   C_008F1C_DST_SEL_W                                          0xFFFFF1FF
  3935. #define     V_008F1C_SQ_SEL_0                                       0x00
  3936. #define     V_008F1C_SQ_SEL_1                                       0x01
  3937. #define     V_008F1C_SQ_SEL_RESERVED_0                              0x02
  3938. #define     V_008F1C_SQ_SEL_RESERVED_1                              0x03
  3939. #define     V_008F1C_SQ_SEL_X                                       0x04
  3940. #define     V_008F1C_SQ_SEL_Y                                       0x05
  3941. #define     V_008F1C_SQ_SEL_Z                                       0x06
  3942. #define     V_008F1C_SQ_SEL_W                                       0x07
  3943. #define   S_008F1C_BASE_LEVEL(x)                                      (((x) & 0x0F) << 12)
  3944. #define   G_008F1C_BASE_LEVEL(x)                                      (((x) >> 12) & 0x0F)
  3945. #define   C_008F1C_BASE_LEVEL                                         0xFFFF0FFF
  3946. #define   S_008F1C_LAST_LEVEL(x)                                      (((x) & 0x0F) << 16)
  3947. #define   G_008F1C_LAST_LEVEL(x)                                      (((x) >> 16) & 0x0F)
  3948. #define   C_008F1C_LAST_LEVEL                                         0xFFF0FFFF
  3949. #define   S_008F1C_TILING_INDEX(x)                                    (((x) & 0x1F) << 20)
  3950. #define   G_008F1C_TILING_INDEX(x)                                    (((x) >> 20) & 0x1F)
  3951. #define   C_008F1C_TILING_INDEX                                       0xFE0FFFFF
  3952. #define   S_008F1C_POW2_PAD(x)                                        (((x) & 0x1) << 25)
  3953. #define   G_008F1C_POW2_PAD(x)                                        (((x) >> 25) & 0x1)
  3954. #define   C_008F1C_POW2_PAD                                           0xFDFFFFFF
  3955. /* CIK */
  3956. #define   S_008F1C_MTYPE(x)                                           (((x) & 0x1) << 26)
  3957. #define   G_008F1C_MTYPE(x)                                           (((x) >> 26) & 0x1)
  3958. #define   C_008F1C_MTYPE                                              0xFBFFFFFF
  3959. #define   S_008F1C_ATC(x)                                             (((x) & 0x1) << 27)
  3960. #define   G_008F1C_ATC(x)                                             (((x) >> 27) & 0x1)
  3961. #define   C_008F1C_ATC                                                0xF7FFFFFF
  3962. /*     */
  3963. #define   S_008F1C_TYPE(x)                                            (((x) & 0x0F) << 28)
  3964. #define   G_008F1C_TYPE(x)                                            (((x) >> 28) & 0x0F)
  3965. #define   C_008F1C_TYPE                                               0x0FFFFFFF
  3966. #define     V_008F1C_SQ_RSRC_IMG_RSVD_0                             0x00
  3967. #define     V_008F1C_SQ_RSRC_IMG_RSVD_1                             0x01
  3968. #define     V_008F1C_SQ_RSRC_IMG_RSVD_2                             0x02
  3969. #define     V_008F1C_SQ_RSRC_IMG_RSVD_3                             0x03
  3970. #define     V_008F1C_SQ_RSRC_IMG_RSVD_4                             0x04
  3971. #define     V_008F1C_SQ_RSRC_IMG_RSVD_5                             0x05
  3972. #define     V_008F1C_SQ_RSRC_IMG_RSVD_6                             0x06
  3973. #define     V_008F1C_SQ_RSRC_IMG_RSVD_7                             0x07
  3974. #define     V_008F1C_SQ_RSRC_IMG_1D                                 0x08
  3975. #define     V_008F1C_SQ_RSRC_IMG_2D                                 0x09
  3976. #define     V_008F1C_SQ_RSRC_IMG_3D                                 0x0A
  3977. #define     V_008F1C_SQ_RSRC_IMG_CUBE                               0x0B
  3978. #define     V_008F1C_SQ_RSRC_IMG_1D_ARRAY                           0x0C
  3979. #define     V_008F1C_SQ_RSRC_IMG_2D_ARRAY                           0x0D
  3980. #define     V_008F1C_SQ_RSRC_IMG_2D_MSAA                            0x0E
  3981. #define     V_008F1C_SQ_RSRC_IMG_2D_MSAA_ARRAY                      0x0F
  3982. #define R_008F20_SQ_IMG_RSRC_WORD4                                      0x008F20
  3983. #define   S_008F20_DEPTH(x)                                           (((x) & 0x1FFF) << 0)
  3984. #define   G_008F20_DEPTH(x)                                           (((x) >> 0) & 0x1FFF)
  3985. #define   C_008F20_DEPTH                                              0xFFFFE000
  3986. #define   S_008F20_PITCH(x)                                           (((x) & 0x3FFF) << 13)
  3987. #define   G_008F20_PITCH(x)                                           (((x) >> 13) & 0x3FFF)
  3988. #define   C_008F20_PITCH                                              0xF8001FFF
  3989. #define R_008F24_SQ_IMG_RSRC_WORD5                                      0x008F24
  3990. #define   S_008F24_BASE_ARRAY(x)                                      (((x) & 0x1FFF) << 0)
  3991. #define   G_008F24_BASE_ARRAY(x)                                      (((x) >> 0) & 0x1FFF)
  3992. #define   C_008F24_BASE_ARRAY                                         0xFFFFE000
  3993. #define   S_008F24_LAST_ARRAY(x)                                      (((x) & 0x1FFF) << 13)
  3994. #define   G_008F24_LAST_ARRAY(x)                                      (((x) >> 13) & 0x1FFF)
  3995. #define   C_008F24_LAST_ARRAY                                         0xFC001FFF
  3996. #define R_008F28_SQ_IMG_RSRC_WORD6                                      0x008F28
  3997. #define   S_008F28_MIN_LOD_WARN(x)                                    (((x) & 0xFFF) << 0)
  3998. #define   G_008F28_MIN_LOD_WARN(x)                                    (((x) >> 0) & 0xFFF)
  3999. #define   C_008F28_MIN_LOD_WARN                                       0xFFFFF000
  4000. /* CIK */
  4001. #define   S_008F28_COUNTER_BANK_ID(x)                                 (((x) & 0xFF) << 12)
  4002. #define   G_008F28_COUNTER_BANK_ID(x)                                 (((x) >> 12) & 0xFF)
  4003. #define   C_008F28_COUNTER_BANK_ID                                    0xFFF00FFF
  4004. #define   S_008F28_LOD_HDW_CNT_EN(x)                                  (((x) & 0x1) << 20)
  4005. #define   G_008F28_LOD_HDW_CNT_EN(x)                                  (((x) >> 20) & 0x1)
  4006. #define   C_008F28_LOD_HDW_CNT_EN                                     0xFFEFFFFF
  4007. /*     */
  4008. #define R_008F2C_SQ_IMG_RSRC_WORD7                                      0x008F2C
  4009. #define R_008F30_SQ_IMG_SAMP_WORD0                                      0x008F30
  4010. #define   S_008F30_CLAMP_X(x)                                         (((x) & 0x07) << 0)
  4011. #define   G_008F30_CLAMP_X(x)                                         (((x) >> 0) & 0x07)
  4012. #define   C_008F30_CLAMP_X                                            0xFFFFFFF8
  4013. #define     V_008F30_SQ_TEX_WRAP                                    0x00
  4014. #define     V_008F30_SQ_TEX_MIRROR                                  0x01
  4015. #define     V_008F30_SQ_TEX_CLAMP_LAST_TEXEL                        0x02
  4016. #define     V_008F30_SQ_TEX_MIRROR_ONCE_LAST_TEXEL                  0x03
  4017. #define     V_008F30_SQ_TEX_CLAMP_HALF_BORDER                       0x04
  4018. #define     V_008F30_SQ_TEX_MIRROR_ONCE_HALF_BORDER                 0x05
  4019. #define     V_008F30_SQ_TEX_CLAMP_BORDER                            0x06
  4020. #define     V_008F30_SQ_TEX_MIRROR_ONCE_BORDER                      0x07
  4021. #define   S_008F30_CLAMP_Y(x)                                         (((x) & 0x07) << 3)
  4022. #define   G_008F30_CLAMP_Y(x)                                         (((x) >> 3) & 0x07)
  4023. #define   C_008F30_CLAMP_Y                                            0xFFFFFFC7
  4024. #define     V_008F30_SQ_TEX_WRAP                                    0x00
  4025. #define     V_008F30_SQ_TEX_MIRROR                                  0x01
  4026. #define     V_008F30_SQ_TEX_CLAMP_LAST_TEXEL                        0x02
  4027. #define     V_008F30_SQ_TEX_MIRROR_ONCE_LAST_TEXEL                  0x03
  4028. #define     V_008F30_SQ_TEX_CLAMP_HALF_BORDER                       0x04
  4029. #define     V_008F30_SQ_TEX_MIRROR_ONCE_HALF_BORDER                 0x05
  4030. #define     V_008F30_SQ_TEX_CLAMP_BORDER                            0x06
  4031. #define     V_008F30_SQ_TEX_MIRROR_ONCE_BORDER                      0x07
  4032. #define   S_008F30_CLAMP_Z(x)                                         (((x) & 0x07) << 6)
  4033. #define   G_008F30_CLAMP_Z(x)                                         (((x) >> 6) & 0x07)
  4034. #define   C_008F30_CLAMP_Z                                            0xFFFFFE3F
  4035. #define     V_008F30_SQ_TEX_WRAP                                    0x00
  4036. #define     V_008F30_SQ_TEX_MIRROR                                  0x01
  4037. #define     V_008F30_SQ_TEX_CLAMP_LAST_TEXEL                        0x02
  4038. #define     V_008F30_SQ_TEX_MIRROR_ONCE_LAST_TEXEL                  0x03
  4039. #define     V_008F30_SQ_TEX_CLAMP_HALF_BORDER                       0x04
  4040. #define     V_008F30_SQ_TEX_MIRROR_ONCE_HALF_BORDER                 0x05
  4041. #define     V_008F30_SQ_TEX_CLAMP_BORDER                            0x06
  4042. #define     V_008F30_SQ_TEX_MIRROR_ONCE_BORDER                      0x07
  4043. #define   S_008F30_DEPTH_COMPARE_FUNC(x)                              (((x) & 0x07) << 12)
  4044. #define   G_008F30_DEPTH_COMPARE_FUNC(x)                              (((x) >> 12) & 0x07)
  4045. #define   C_008F30_DEPTH_COMPARE_FUNC                                 0xFFFF8FFF
  4046. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_NEVER                     0x00
  4047. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_LESS                      0x01
  4048. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_EQUAL                     0x02
  4049. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_LESSEQUAL                 0x03
  4050. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_GREATER                   0x04
  4051. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_NOTEQUAL                  0x05
  4052. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_GREATEREQUAL              0x06
  4053. #define     V_008F30_SQ_TEX_DEPTH_COMPARE_ALWAYS                    0x07
  4054. #define   S_008F30_FORCE_UNNORMALIZED(x)                              (((x) & 0x1) << 15)
  4055. #define   G_008F30_FORCE_UNNORMALIZED(x)                              (((x) >> 15) & 0x1)
  4056. #define   C_008F30_FORCE_UNNORMALIZED                                 0xFFFF7FFF
  4057. #define   S_008F30_MC_COORD_TRUNC(x)                                  (((x) & 0x1) << 19)
  4058. #define   G_008F30_MC_COORD_TRUNC(x)                                  (((x) >> 19) & 0x1)
  4059. #define   C_008F30_MC_COORD_TRUNC                                     0xFFF7FFFF
  4060. #define   S_008F30_FORCE_DEGAMMA(x)                                   (((x) & 0x1) << 20)
  4061. #define   G_008F30_FORCE_DEGAMMA(x)                                   (((x) >> 20) & 0x1)
  4062. #define   C_008F30_FORCE_DEGAMMA                                      0xFFEFFFFF
  4063. #define   S_008F30_TRUNC_COORD(x)                                     (((x) & 0x1) << 27)
  4064. #define   G_008F30_TRUNC_COORD(x)                                     (((x) >> 27) & 0x1)
  4065. #define   C_008F30_TRUNC_COORD                                        0xF7FFFFFF
  4066. #define   S_008F30_DISABLE_CUBE_WRAP(x)                               (((x) & 0x1) << 28)
  4067. #define   G_008F30_DISABLE_CUBE_WRAP(x)                               (((x) >> 28) & 0x1)
  4068. #define   C_008F30_DISABLE_CUBE_WRAP                                  0xEFFFFFFF
  4069. #define   S_008F30_FILTER_MODE(x)                                     (((x) & 0x03) << 29)
  4070. #define   G_008F30_FILTER_MODE(x)                                     (((x) >> 29) & 0x03)
  4071. #define   C_008F30_FILTER_MODE                                        0x9FFFFFFF
  4072. #define R_008F34_SQ_IMG_SAMP_WORD1                                      0x008F34
  4073. #define   S_008F34_MIN_LOD(x)                                         (((x) & 0xFFF) << 0)
  4074. #define   G_008F34_MIN_LOD(x)                                         (((x) >> 0) & 0xFFF)
  4075. #define   C_008F34_MIN_LOD                                            0xFFFFF000
  4076. #define   S_008F34_MAX_LOD(x)                                         (((x) & 0xFFF) << 12)
  4077. #define   G_008F34_MAX_LOD(x)                                         (((x) >> 12) & 0xFFF)
  4078. #define   C_008F34_MAX_LOD                                            0xFF000FFF
  4079. #define   S_008F34_PERF_MIP(x)                                        (((x) & 0x0F) << 24)
  4080. #define   G_008F34_PERF_MIP(x)                                        (((x) >> 24) & 0x0F)
  4081. #define   C_008F34_PERF_MIP                                           0xF0FFFFFF
  4082. #define   S_008F34_PERF_Z(x)                                          (((x) & 0x0F) << 28)
  4083. #define   G_008F34_PERF_Z(x)                                          (((x) >> 28) & 0x0F)
  4084. #define   C_008F34_PERF_Z                                             0x0FFFFFFF
  4085. #define R_008F38_SQ_IMG_SAMP_WORD2                                      0x008F38
  4086. #define   S_008F38_LOD_BIAS(x)                                        (((x) & 0x3FFF) << 0)
  4087. #define   G_008F38_LOD_BIAS(x)                                        (((x) >> 0) & 0x3FFF)
  4088. #define   C_008F38_LOD_BIAS                                           0xFFFFC000
  4089. #define   S_008F38_LOD_BIAS_SEC(x)                                    (((x) & 0x3F) << 14)
  4090. #define   G_008F38_LOD_BIAS_SEC(x)                                    (((x) >> 14) & 0x3F)
  4091. #define   C_008F38_LOD_BIAS_SEC                                       0xFFF03FFF
  4092. #define   S_008F38_XY_MAG_FILTER(x)                                   (((x) & 0x03) << 20)
  4093. #define   G_008F38_XY_MAG_FILTER(x)                                   (((x) >> 20) & 0x03)
  4094. #define   C_008F38_XY_MAG_FILTER                                      0xFFCFFFFF
  4095. #define     V_008F38_SQ_TEX_XY_FILTER_POINT                         0x00
  4096. #define     V_008F38_SQ_TEX_XY_FILTER_BILINEAR                      0x01
  4097. #define   S_008F38_XY_MIN_FILTER(x)                                   (((x) & 0x03) << 22)
  4098. #define   G_008F38_XY_MIN_FILTER(x)                                   (((x) >> 22) & 0x03)
  4099. #define   C_008F38_XY_MIN_FILTER                                      0xFF3FFFFF
  4100. #define     V_008F38_SQ_TEX_XY_FILTER_POINT                         0x00
  4101. #define     V_008F38_SQ_TEX_XY_FILTER_BILINEAR                      0x01
  4102. #define   S_008F38_Z_FILTER(x)                                        (((x) & 0x03) << 24)
  4103. #define   G_008F38_Z_FILTER(x)                                        (((x) >> 24) & 0x03)
  4104. #define   C_008F38_Z_FILTER                                           0xFCFFFFFF
  4105. #define     V_008F38_SQ_TEX_Z_FILTER_NONE                           0x00
  4106. #define     V_008F38_SQ_TEX_Z_FILTER_POINT                          0x01
  4107. #define     V_008F38_SQ_TEX_Z_FILTER_LINEAR                         0x02
  4108. #define   S_008F38_MIP_FILTER(x)                                      (((x) & 0x03) << 26)
  4109. #define   G_008F38_MIP_FILTER(x)                                      (((x) >> 26) & 0x03)
  4110. #define   C_008F38_MIP_FILTER                                         0xF3FFFFFF
  4111. #define     V_008F38_SQ_TEX_Z_FILTER_NONE                           0x00
  4112. #define     V_008F38_SQ_TEX_Z_FILTER_POINT                          0x01
  4113. #define     V_008F38_SQ_TEX_Z_FILTER_LINEAR                         0x02
  4114. #define   S_008F38_MIP_POINT_PRECLAMP(x)                              (((x) & 0x1) << 28)
  4115. #define   G_008F38_MIP_POINT_PRECLAMP(x)                              (((x) >> 28) & 0x1)
  4116. #define   C_008F38_MIP_POINT_PRECLAMP                                 0xEFFFFFFF
  4117. #define   S_008F38_DISABLE_LSB_CEIL(x)                                (((x) & 0x1) << 29)
  4118. #define   G_008F38_DISABLE_LSB_CEIL(x)                                (((x) >> 29) & 0x1)
  4119. #define   C_008F38_DISABLE_LSB_CEIL                                   0xDFFFFFFF
  4120. #define   S_008F38_FILTER_PREC_FIX(x)                                 (((x) & 0x1) << 30)
  4121. #define   G_008F38_FILTER_PREC_FIX(x)                                 (((x) >> 30) & 0x1)
  4122. #define   C_008F38_FILTER_PREC_FIX                                    0xBFFFFFFF
  4123. #define R_008F3C_SQ_IMG_SAMP_WORD3                                      0x008F3C
  4124. #define   S_008F3C_BORDER_COLOR_PTR(x)                                (((x) & 0xFFF) << 0)
  4125. #define   G_008F3C_BORDER_COLOR_PTR(x)                                (((x) >> 0) & 0xFFF)
  4126. #define   C_008F3C_BORDER_COLOR_PTR                                   0xFFFFF000
  4127. #define   S_008F3C_BORDER_COLOR_TYPE(x)                               (((x) & 0x03) << 30)
  4128. #define   G_008F3C_BORDER_COLOR_TYPE(x)                               (((x) >> 30) & 0x03)
  4129. #define   C_008F3C_BORDER_COLOR_TYPE                                  0x3FFFFFFF
  4130. #define     V_008F3C_SQ_TEX_BORDER_COLOR_TRANS_BLACK                0x00
  4131. #define     V_008F3C_SQ_TEX_BORDER_COLOR_OPAQUE_BLACK               0x01
  4132. #define     V_008F3C_SQ_TEX_BORDER_COLOR_OPAQUE_WHITE               0x02
  4133. #define     V_008F3C_SQ_TEX_BORDER_COLOR_REGISTER                   0x03
  4134. #define R_0090DC_SPI_DYN_GPR_LOCK_EN                                    0x0090DC /* not on CIK */
  4135. #define   S_0090DC_VS_LOW_THRESHOLD(x)                                (((x) & 0x0F) << 0)
  4136. #define   G_0090DC_VS_LOW_THRESHOLD(x)                                (((x) >> 0) & 0x0F)
  4137. #define   C_0090DC_VS_LOW_THRESHOLD                                   0xFFFFFFF0
  4138. #define   S_0090DC_GS_LOW_THRESHOLD(x)                                (((x) & 0x0F) << 4)
  4139. #define   G_0090DC_GS_LOW_THRESHOLD(x)                                (((x) >> 4) & 0x0F)
  4140. #define   C_0090DC_GS_LOW_THRESHOLD                                   0xFFFFFF0F
  4141. #define   S_0090DC_ES_LOW_THRESHOLD(x)                                (((x) & 0x0F) << 8)
  4142. #define   G_0090DC_ES_LOW_THRESHOLD(x)                                (((x) >> 8) & 0x0F)
  4143. #define   C_0090DC_ES_LOW_THRESHOLD                                   0xFFFFF0FF
  4144. #define   S_0090DC_HS_LOW_THRESHOLD(x)                                (((x) & 0x0F) << 12)
  4145. #define   G_0090DC_HS_LOW_THRESHOLD(x)                                (((x) >> 12) & 0x0F)
  4146. #define   C_0090DC_HS_LOW_THRESHOLD                                   0xFFFF0FFF
  4147. #define   S_0090DC_LS_LOW_THRESHOLD(x)                                (((x) & 0x0F) << 16)
  4148. #define   G_0090DC_LS_LOW_THRESHOLD(x)                                (((x) >> 16) & 0x0F)
  4149. #define   C_0090DC_LS_LOW_THRESHOLD                                   0xFFF0FFFF
  4150. #define R_0090E0_SPI_STATIC_THREAD_MGMT_1                               0x0090E0 /* not on CIK */
  4151. #define   S_0090E0_PS_CU_EN(x)                                        (((x) & 0xFFFF) << 0)
  4152. #define   G_0090E0_PS_CU_EN(x)                                        (((x) >> 0) & 0xFFFF)
  4153. #define   C_0090E0_PS_CU_EN                                           0xFFFF0000
  4154. #define   S_0090E0_VS_CU_EN(x)                                        (((x) & 0xFFFF) << 16)
  4155. #define   G_0090E0_VS_CU_EN(x)                                        (((x) >> 16) & 0xFFFF)
  4156. #define   C_0090E0_VS_CU_EN                                           0x0000FFFF
  4157. #define R_0090E4_SPI_STATIC_THREAD_MGMT_2                               0x0090E4 /* not on CIK */
  4158. #define   S_0090E4_GS_CU_EN(x)                                        (((x) & 0xFFFF) << 0)
  4159. #define   G_0090E4_GS_CU_EN(x)                                        (((x) >> 0) & 0xFFFF)
  4160. #define   C_0090E4_GS_CU_EN                                           0xFFFF0000
  4161. #define   S_0090E4_ES_CU_EN(x)                                        (((x) & 0xFFFF) << 16)
  4162. #define   G_0090E4_ES_CU_EN(x)                                        (((x) >> 16) & 0xFFFF)
  4163. #define   C_0090E4_ES_CU_EN                                           0x0000FFFF
  4164. #define R_0090E8_SPI_STATIC_THREAD_MGMT_3                               0x0090E8 /* not on CIK */
  4165. #define   S_0090E8_LSHS_CU_EN(x)                                      (((x) & 0xFFFF) << 0)
  4166. #define   G_0090E8_LSHS_CU_EN(x)                                      (((x) >> 0) & 0xFFFF)
  4167. #define   C_0090E8_LSHS_CU_EN                                         0xFFFF0000
  4168. #define R_0090EC_SPI_PS_MAX_WAVE_ID                                     0x0090EC
  4169. #define   S_0090EC_MAX_WAVE_ID(x)                                     (((x) & 0xFFF) << 0)
  4170. #define   G_0090EC_MAX_WAVE_ID(x)                                     (((x) >> 0) & 0xFFF)
  4171. #define   C_0090EC_MAX_WAVE_ID                                        0xFFFFF000
  4172. /* CIK */
  4173. #define R_0090E8_SPI_PS_MAX_WAVE_ID                                     0x0090E8
  4174. #define   S_0090E8_MAX_WAVE_ID(x)                                     (((x) & 0xFFF) << 0)
  4175. #define   G_0090E8_MAX_WAVE_ID(x)                                     (((x) >> 0) & 0xFFF)
  4176. #define   C_0090E8_MAX_WAVE_ID                                        0xFFFFF000
  4177. /*     */
  4178. #define R_0090F0_SPI_ARB_PRIORITY                                       0x0090F0
  4179. #define   S_0090F0_RING_ORDER_TS0(x)                                  (((x) & 0x07) << 0)
  4180. #define   G_0090F0_RING_ORDER_TS0(x)                                  (((x) >> 0) & 0x07)
  4181. #define   C_0090F0_RING_ORDER_TS0                                     0xFFFFFFF8
  4182. #define     V_0090F0_X_R0                                           0x00
  4183. #define   S_0090F0_RING_ORDER_TS1(x)                                  (((x) & 0x07) << 3)
  4184. #define   G_0090F0_RING_ORDER_TS1(x)                                  (((x) >> 3) & 0x07)
  4185. #define   C_0090F0_RING_ORDER_TS1                                     0xFFFFFFC7
  4186. #define   S_0090F0_RING_ORDER_TS2(x)                                  (((x) & 0x07) << 6)
  4187. #define   G_0090F0_RING_ORDER_TS2(x)                                  (((x) >> 6) & 0x07)
  4188. #define   C_0090F0_RING_ORDER_TS2                                     0xFFFFFE3F
  4189. /* CIK */
  4190. #define R_00C700_SPI_ARB_PRIORITY                                       0x00C700
  4191. #define   S_00C700_PIPE_ORDER_TS0(x)                                  (((x) & 0x07) << 0)
  4192. #define   G_00C700_PIPE_ORDER_TS0(x)                                  (((x) >> 0) & 0x07)
  4193. #define   C_00C700_PIPE_ORDER_TS0                                     0xFFFFFFF8
  4194. #define   S_00C700_PIPE_ORDER_TS1(x)                                  (((x) & 0x07) << 3)
  4195. #define   G_00C700_PIPE_ORDER_TS1(x)                                  (((x) >> 3) & 0x07)
  4196. #define   C_00C700_PIPE_ORDER_TS1                                     0xFFFFFFC7
  4197. #define   S_00C700_PIPE_ORDER_TS2(x)                                  (((x) & 0x07) << 6)
  4198. #define   G_00C700_PIPE_ORDER_TS2(x)                                  (((x) >> 6) & 0x07)
  4199. #define   C_00C700_PIPE_ORDER_TS2                                     0xFFFFFE3F
  4200. #define   S_00C700_PIPE_ORDER_TS3(x)                                  (((x) & 0x07) << 9)
  4201. #define   G_00C700_PIPE_ORDER_TS3(x)                                  (((x) >> 9) & 0x07)
  4202. #define   C_00C700_PIPE_ORDER_TS3                                     0xFFFFF1FF
  4203. #define   S_00C700_TS0_DUR_MULT(x)                                    (((x) & 0x03) << 12)
  4204. #define   G_00C700_TS0_DUR_MULT(x)                                    (((x) >> 12) & 0x03)
  4205. #define   C_00C700_TS0_DUR_MULT                                       0xFFFFCFFF
  4206. #define   S_00C700_TS1_DUR_MULT(x)                                    (((x) & 0x03) << 14)
  4207. #define   G_00C700_TS1_DUR_MULT(x)                                    (((x) >> 14) & 0x03)
  4208. #define   C_00C700_TS1_DUR_MULT                                       0xFFFF3FFF
  4209. #define   S_00C700_TS2_DUR_MULT(x)                                    (((x) & 0x03) << 16)
  4210. #define   G_00C700_TS2_DUR_MULT(x)                                    (((x) >> 16) & 0x03)
  4211. #define   C_00C700_TS2_DUR_MULT                                       0xFFFCFFFF
  4212. #define   S_00C700_TS3_DUR_MULT(x)                                    (((x) & 0x03) << 18)
  4213. #define   G_00C700_TS3_DUR_MULT(x)                                    (((x) >> 18) & 0x03)
  4214. #define   C_00C700_TS3_DUR_MULT                                       0xFFF3FFFF
  4215. /*     */
  4216. #define R_0090F4_SPI_ARB_CYCLES_0                                       0x0090F4 /* moved to 0xC704 on CIK */
  4217. #define   S_0090F4_TS0_DURATION(x)                                    (((x) & 0xFFFF) << 0)
  4218. #define   G_0090F4_TS0_DURATION(x)                                    (((x) >> 0) & 0xFFFF)
  4219. #define   C_0090F4_TS0_DURATION                                       0xFFFF0000
  4220. #define   S_0090F4_TS1_DURATION(x)                                    (((x) & 0xFFFF) << 16)
  4221. #define   G_0090F4_TS1_DURATION(x)                                    (((x) >> 16) & 0xFFFF)
  4222. #define   C_0090F4_TS1_DURATION                                       0x0000FFFF
  4223. #define R_0090F8_SPI_ARB_CYCLES_1                                       0x0090F8 /* moved to 0xC708 on CIK */
  4224. #define   S_0090F8_TS2_DURATION(x)                                    (((x) & 0xFFFF) << 0)
  4225. #define   G_0090F8_TS2_DURATION(x)                                    (((x) >> 0) & 0xFFFF)
  4226. #define   C_0090F8_TS2_DURATION                                       0xFFFF0000
  4227. /* CIK */
  4228. #define R_008F40_SQ_FLAT_SCRATCH_WORD0                                  0x008F40
  4229. #define   S_008F40_SIZE(x)                                            (((x) & 0x7FFFF) << 0)
  4230. #define   G_008F40_SIZE(x)                                            (((x) >> 0) & 0x7FFFF)
  4231. #define   C_008F40_SIZE                                               0xFFF80000
  4232. #define R_008F44_SQ_FLAT_SCRATCH_WORD1                                  0x008F44
  4233. #define   S_008F44_OFFSET(x)                                          (((x) & 0xFFFFFF) << 0)
  4234. #define   G_008F44_OFFSET(x)                                          (((x) >> 0) & 0xFFFFFF)
  4235. #define   C_008F44_OFFSET                                             0xFF000000
  4236. /*     */
  4237. #define R_009100_SPI_CONFIG_CNTL                                        0x009100
  4238. #define   S_009100_GPR_WRITE_PRIORITY(x)                              (((x) & 0x1FFFFF) << 0)
  4239. #define   G_009100_GPR_WRITE_PRIORITY(x)                              (((x) >> 0) & 0x1FFFFF)
  4240. #define   C_009100_GPR_WRITE_PRIORITY                                 0xFFE00000
  4241. #define   S_009100_EXP_PRIORITY_ORDER(x)                              (((x) & 0x07) << 21)
  4242. #define   G_009100_EXP_PRIORITY_ORDER(x)                              (((x) >> 21) & 0x07)
  4243. #define   C_009100_EXP_PRIORITY_ORDER                                 0xFF1FFFFF
  4244. #define   S_009100_ENABLE_SQG_TOP_EVENTS(x)                           (((x) & 0x1) << 24)
  4245. #define   G_009100_ENABLE_SQG_TOP_EVENTS(x)                           (((x) >> 24) & 0x1)
  4246. #define   C_009100_ENABLE_SQG_TOP_EVENTS                              0xFEFFFFFF
  4247. #define   S_009100_ENABLE_SQG_BOP_EVENTS(x)                           (((x) & 0x1) << 25)
  4248. #define   G_009100_ENABLE_SQG_BOP_EVENTS(x)                           (((x) >> 25) & 0x1)
  4249. #define   C_009100_ENABLE_SQG_BOP_EVENTS                              0xFDFFFFFF
  4250. #define   S_009100_RSRC_MGMT_RESET(x)                                 (((x) & 0x1) << 26)
  4251. #define   G_009100_RSRC_MGMT_RESET(x)                                 (((x) >> 26) & 0x1)
  4252. #define   C_009100_RSRC_MGMT_RESET                                    0xFBFFFFFF
  4253. #define R_00913C_SPI_CONFIG_CNTL_1                                      0x00913C
  4254. #define   S_00913C_VTX_DONE_DELAY(x)                                  (((x) & 0x0F) << 0)
  4255. #define   G_00913C_VTX_DONE_DELAY(x)                                  (((x) >> 0) & 0x0F)
  4256. #define   C_00913C_VTX_DONE_DELAY                                     0xFFFFFFF0
  4257. #define     V_00913C_X_DELAY_14_CLKS                                0x00
  4258. #define     V_00913C_X_DELAY_16_CLKS                                0x01
  4259. #define     V_00913C_X_DELAY_18_CLKS                                0x02
  4260. #define     V_00913C_X_DELAY_20_CLKS                                0x03
  4261. #define     V_00913C_X_DELAY_22_CLKS                                0x04
  4262. #define     V_00913C_X_DELAY_24_CLKS                                0x05
  4263. #define     V_00913C_X_DELAY_26_CLKS                                0x06
  4264. #define     V_00913C_X_DELAY_28_CLKS                                0x07
  4265. #define     V_00913C_X_DELAY_30_CLKS                                0x08
  4266. #define     V_00913C_X_DELAY_32_CLKS                                0x09
  4267. #define     V_00913C_X_DELAY_34_CLKS                                0x0A
  4268. #define     V_00913C_X_DELAY_4_CLKS                                 0x0B
  4269. #define     V_00913C_X_DELAY_6_CLKS                                 0x0C
  4270. #define     V_00913C_X_DELAY_8_CLKS                                 0x0D
  4271. #define     V_00913C_X_DELAY_10_CLKS                                0x0E
  4272. #define     V_00913C_X_DELAY_12_CLKS                                0x0F
  4273. #define   S_00913C_INTERP_ONE_PRIM_PER_ROW(x)                         (((x) & 0x1) << 4)
  4274. #define   G_00913C_INTERP_ONE_PRIM_PER_ROW(x)                         (((x) >> 4) & 0x1)
  4275. #define   C_00913C_INTERP_ONE_PRIM_PER_ROW                            0xFFFFFFEF
  4276. #define   S_00913C_PC_LIMIT_ENABLE(x)                                 (((x) & 0x1) << 6)
  4277. #define   G_00913C_PC_LIMIT_ENABLE(x)                                 (((x) >> 6) & 0x1)
  4278. #define   C_00913C_PC_LIMIT_ENABLE                                    0xFFFFFFBF
  4279. #define   S_00913C_PC_LIMIT_STRICT(x)                                 (((x) & 0x1) << 7)
  4280. #define   G_00913C_PC_LIMIT_STRICT(x)                                 (((x) >> 7) & 0x1)
  4281. #define   C_00913C_PC_LIMIT_STRICT                                    0xFFFFFF7F
  4282. #define   S_00913C_PC_LIMIT_SIZE(x)                                   (((x) & 0xFFFF) << 16)
  4283. #define   G_00913C_PC_LIMIT_SIZE(x)                                   (((x) >> 16) & 0xFFFF)
  4284. #define   C_00913C_PC_LIMIT_SIZE                                      0x0000FFFF
  4285. #define R_00936C_SPI_RESOURCE_RESERVE_CU_AB_0                           0x00936C
  4286. #define   S_00936C_TYPE_A(x)                                          (((x) & 0x0F) << 0)
  4287. #define   G_00936C_TYPE_A(x)                                          (((x) >> 0) & 0x0F)
  4288. #define   C_00936C_TYPE_A                                             0xFFFFFFF0
  4289. #define   S_00936C_VGPR_A(x)                                          (((x) & 0x07) << 4)
  4290. #define   G_00936C_VGPR_A(x)                                          (((x) >> 4) & 0x07)
  4291. #define   C_00936C_VGPR_A                                             0xFFFFFF8F
  4292. #define   S_00936C_SGPR_A(x)                                          (((x) & 0x07) << 7)
  4293. #define   G_00936C_SGPR_A(x)                                          (((x) >> 7) & 0x07)
  4294. #define   C_00936C_SGPR_A                                             0xFFFFFC7F
  4295. #define   S_00936C_LDS_A(x)                                           (((x) & 0x07) << 10)
  4296. #define   G_00936C_LDS_A(x)                                           (((x) >> 10) & 0x07)
  4297. #define   C_00936C_LDS_A                                              0xFFFFE3FF
  4298. #define   S_00936C_WAVES_A(x)                                         (((x) & 0x03) << 13)
  4299. #define   G_00936C_WAVES_A(x)                                         (((x) >> 13) & 0x03)
  4300. #define   C_00936C_WAVES_A                                            0xFFFF9FFF
  4301. #define   S_00936C_EN_A(x)                                            (((x) & 0x1) << 15)
  4302. #define   G_00936C_EN_A(x)                                            (((x) >> 15) & 0x1)
  4303. #define   C_00936C_EN_A                                               0xFFFF7FFF
  4304. #define   S_00936C_TYPE_B(x)                                          (((x) & 0x0F) << 16)
  4305. #define   G_00936C_TYPE_B(x)                                          (((x) >> 16) & 0x0F)
  4306. #define   C_00936C_TYPE_B                                             0xFFF0FFFF
  4307. #define   S_00936C_VGPR_B(x)                                          (((x) & 0x07) << 20)
  4308. #define   G_00936C_VGPR_B(x)                                          (((x) >> 20) & 0x07)
  4309. #define   C_00936C_VGPR_B                                             0xFF8FFFFF
  4310. #define   S_00936C_SGPR_B(x)                                          (((x) & 0x07) << 23)
  4311. #define   G_00936C_SGPR_B(x)                                          (((x) >> 23) & 0x07)
  4312. #define   C_00936C_SGPR_B                                             0xFC7FFFFF
  4313. #define   S_00936C_LDS_B(x)                                           (((x) & 0x07) << 26)
  4314. #define   G_00936C_LDS_B(x)                                           (((x) >> 26) & 0x07)
  4315. #define   C_00936C_LDS_B                                              0xE3FFFFFF
  4316. #define   S_00936C_WAVES_B(x)                                         (((x) & 0x03) << 29)
  4317. #define   G_00936C_WAVES_B(x)                                         (((x) >> 29) & 0x03)
  4318. #define   C_00936C_WAVES_B                                            0x9FFFFFFF
  4319. #define   S_00936C_EN_B(x)                                            (((x) & 0x1) << 31)
  4320. #define   G_00936C_EN_B(x)                                            (((x) >> 31) & 0x1)
  4321. #define   C_00936C_EN_B                                               0x7FFFFFFF
  4322. #define R_00950C_TA_CS_BC_BASE_ADDR                                     0x00950C
  4323. /* CIK */
  4324. #define R_030E00_TA_CS_BC_BASE_ADDR                                     0x030E00
  4325. #define R_030E04_TA_CS_BC_BASE_ADDR_HI                                  0x030E04
  4326. #define   S_030E04_ADDRESS(x)                                         (((x) & 0xFF) << 0)
  4327. #define   G_030E04_ADDRESS(x)                                         (((x) >> 0) & 0xFF)
  4328. #define   C_030E04_ADDRESS                                            0xFFFFFF00
  4329. /*     */
  4330. #define R_009858_DB_SUBTILE_CONTROL                                     0x009858
  4331. #define   S_009858_MSAA1_X(x)                                         (((x) & 0x03) << 0)
  4332. #define   G_009858_MSAA1_X(x)                                         (((x) >> 0) & 0x03)
  4333. #define   C_009858_MSAA1_X                                            0xFFFFFFFC
  4334. #define   S_009858_MSAA1_Y(x)                                         (((x) & 0x03) << 2)
  4335. #define   G_009858_MSAA1_Y(x)                                         (((x) >> 2) & 0x03)
  4336. #define   C_009858_MSAA1_Y                                            0xFFFFFFF3
  4337. #define   S_009858_MSAA2_X(x)                                         (((x) & 0x03) << 4)
  4338. #define   G_009858_MSAA2_X(x)                                         (((x) >> 4) & 0x03)
  4339. #define   C_009858_MSAA2_X                                            0xFFFFFFCF
  4340. #define   S_009858_MSAA2_Y(x)                                         (((x) & 0x03) << 6)
  4341. #define   G_009858_MSAA2_Y(x)                                         (((x) >> 6) & 0x03)
  4342. #define   C_009858_MSAA2_Y                                            0xFFFFFF3F
  4343. #define   S_009858_MSAA4_X(x)                                         (((x) & 0x03) << 8)
  4344. #define   G_009858_MSAA4_X(x)                                         (((x) >> 8) & 0x03)
  4345. #define   C_009858_MSAA4_X                                            0xFFFFFCFF
  4346. #define   S_009858_MSAA4_Y(x)                                         (((x) & 0x03) << 10)
  4347. #define   G_009858_MSAA4_Y(x)                                         (((x) >> 10) & 0x03)
  4348. #define   C_009858_MSAA4_Y                                            0xFFFFF3FF
  4349. #define   S_009858_MSAA8_X(x)                                         (((x) & 0x03) << 12)
  4350. #define   G_009858_MSAA8_X(x)                                         (((x) >> 12) & 0x03)
  4351. #define   C_009858_MSAA8_X                                            0xFFFFCFFF
  4352. #define   S_009858_MSAA8_Y(x)                                         (((x) & 0x03) << 14)
  4353. #define   G_009858_MSAA8_Y(x)                                         (((x) >> 14) & 0x03)
  4354. #define   C_009858_MSAA8_Y                                            0xFFFF3FFF
  4355. #define   S_009858_MSAA16_X(x)                                        (((x) & 0x03) << 16)
  4356. #define   G_009858_MSAA16_X(x)                                        (((x) >> 16) & 0x03)
  4357. #define   C_009858_MSAA16_X                                           0xFFFCFFFF
  4358. #define   S_009858_MSAA16_Y(x)                                        (((x) & 0x03) << 18)
  4359. #define   G_009858_MSAA16_Y(x)                                        (((x) >> 18) & 0x03)
  4360. #define   C_009858_MSAA16_Y                                           0xFFF3FFFF
  4361. #define R_009910_GB_TILE_MODE0                                          0x009910
  4362. #define   S_009910_MICRO_TILE_MODE(x)                                 (((x) & 0x03) << 0)
  4363. #define   G_009910_MICRO_TILE_MODE(x)                                 (((x) >> 0) & 0x03)
  4364. #define   C_009910_MICRO_TILE_MODE                                    0xFFFFFFFC
  4365. #define     V_009910_ADDR_SURF_DISPLAY_MICRO_TILING                 0x00
  4366. #define     V_009910_ADDR_SURF_THIN_MICRO_TILING                    0x01
  4367. #define     V_009910_ADDR_SURF_DEPTH_MICRO_TILING                   0x02
  4368. #define     V_009910_ADDR_SURF_THICK_MICRO_TILING                   0x03
  4369. #define   S_009910_ARRAY_MODE(x)                                      (((x) & 0x0F) << 2)
  4370. #define   G_009910_ARRAY_MODE(x)                                      (((x) >> 2) & 0x0F)
  4371. #define   C_009910_ARRAY_MODE                                         0xFFFFFFC3
  4372. #define     V_009910_ARRAY_LINEAR_GENERAL                           0x00
  4373. #define     V_009910_ARRAY_LINEAR_ALIGNED                           0x01
  4374. #define     V_009910_ARRAY_1D_TILED_THIN1                           0x02
  4375. #define     V_009910_ARRAY_1D_TILED_THICK                           0x03
  4376. #define     V_009910_ARRAY_2D_TILED_THIN1                           0x04
  4377. #define     V_009910_ARRAY_2D_TILED_THICK                           0x07
  4378. #define     V_009910_ARRAY_2D_TILED_XTHICK                          0x08
  4379. #define     V_009910_ARRAY_3D_TILED_THIN1                           0x0C
  4380. #define     V_009910_ARRAY_3D_TILED_THICK                           0x0D
  4381. #define     V_009910_ARRAY_3D_TILED_XTHICK                          0x0E
  4382. #define     V_009910_ARRAY_POWER_SAVE                               0x0F
  4383. #define   S_009910_PIPE_CONFIG(x)                                     (((x) & 0x1F) << 6)
  4384. #define   G_009910_PIPE_CONFIG(x)                                     (((x) >> 6) & 0x1F)
  4385. #define   C_009910_PIPE_CONFIG                                        0xFFFFF83F
  4386. #define     V_009910_ADDR_SURF_P2                                   0x00
  4387. #define     V_009910_ADDR_SURF_P2_RESERVED0                         0x01
  4388. #define     V_009910_ADDR_SURF_P2_RESERVED1                         0x02
  4389. #define     V_009910_ADDR_SURF_P2_RESERVED2                         0x03
  4390. #define     V_009910_X_ADDR_SURF_P4_8X16                            0x04
  4391. #define     V_009910_X_ADDR_SURF_P4_16X16                           0x05
  4392. #define     V_009910_X_ADDR_SURF_P4_16X32                           0x06
  4393. #define     V_009910_X_ADDR_SURF_P4_32X32                           0x07
  4394. #define     V_009910_X_ADDR_SURF_P8_16X16_8X16                      0x08
  4395. #define     V_009910_X_ADDR_SURF_P8_16X32_8X16                      0x09
  4396. #define     V_009910_X_ADDR_SURF_P8_32X32_8X16                      0x0A
  4397. #define     V_009910_X_ADDR_SURF_P8_16X32_16X16                     0x0B
  4398. #define     V_009910_X_ADDR_SURF_P8_32X32_16X16                     0x0C
  4399. #define     V_009910_X_ADDR_SURF_P8_32X32_16X32                     0x0D
  4400. #define     V_009910_X_ADDR_SURF_P8_32X64_32X32                     0x0E
  4401. #define   S_009910_TILE_SPLIT(x)                                      (((x) & 0x07) << 11)
  4402. #define   G_009910_TILE_SPLIT(x)                                      (((x) >> 11) & 0x07)
  4403. #define   C_009910_TILE_SPLIT                                         0xFFFFC7FF
  4404. #define     V_009910_ADDR_SURF_TILE_SPLIT_64B                       0x00
  4405. #define     V_009910_ADDR_SURF_TILE_SPLIT_128B                      0x01
  4406. #define     V_009910_ADDR_SURF_TILE_SPLIT_256B                      0x02
  4407. #define     V_009910_ADDR_SURF_TILE_SPLIT_512B                      0x03
  4408. #define     V_009910_ADDR_SURF_TILE_SPLIT_1KB                       0x04
  4409. #define     V_009910_ADDR_SURF_TILE_SPLIT_2KB                       0x05
  4410. #define     V_009910_ADDR_SURF_TILE_SPLIT_4KB                       0x06
  4411. #define   S_009910_BANK_WIDTH(x)                                      (((x) & 0x03) << 14)
  4412. #define   G_009910_BANK_WIDTH(x)                                      (((x) >> 14) & 0x03)
  4413. #define   C_009910_BANK_WIDTH                                         0xFFFF3FFF
  4414. #define     V_009910_ADDR_SURF_BANK_WIDTH_1                         0x00
  4415. #define     V_009910_ADDR_SURF_BANK_WIDTH_2                         0x01
  4416. #define     V_009910_ADDR_SURF_BANK_WIDTH_4                         0x02
  4417. #define     V_009910_ADDR_SURF_BANK_WIDTH_8                         0x03
  4418. #define   S_009910_BANK_HEIGHT(x)                                     (((x) & 0x03) << 16)
  4419. #define   G_009910_BANK_HEIGHT(x)                                     (((x) >> 16) & 0x03)
  4420. #define   C_009910_BANK_HEIGHT                                        0xFFFCFFFF
  4421. #define     V_009910_ADDR_SURF_BANK_HEIGHT_1                        0x00
  4422. #define     V_009910_ADDR_SURF_BANK_HEIGHT_2                        0x01
  4423. #define     V_009910_ADDR_SURF_BANK_HEIGHT_4                        0x02
  4424. #define     V_009910_ADDR_SURF_BANK_HEIGHT_8                        0x03
  4425. #define   S_009910_MACRO_TILE_ASPECT(x)                               (((x) & 0x03) << 18)
  4426. #define   G_009910_MACRO_TILE_ASPECT(x)                               (((x) >> 18) & 0x03)
  4427. #define   C_009910_MACRO_TILE_ASPECT                                  0xFFF3FFFF
  4428. #define     V_009910_ADDR_SURF_MACRO_ASPECT_1                       0x00
  4429. #define     V_009910_ADDR_SURF_MACRO_ASPECT_2                       0x01
  4430. #define     V_009910_ADDR_SURF_MACRO_ASPECT_4                       0x02
  4431. #define     V_009910_ADDR_SURF_MACRO_ASPECT_8                       0x03
  4432. #define   S_009910_NUM_BANKS(x)                                       (((x) & 0x03) << 20)
  4433. #define   G_009910_NUM_BANKS(x)                                       (((x) >> 20) & 0x03)
  4434. #define   C_009910_NUM_BANKS                                          0xFFCFFFFF
  4435. #define     V_009910_ADDR_SURF_2_BANK                               0x00
  4436. #define     V_009910_ADDR_SURF_4_BANK                               0x01
  4437. #define     V_009910_ADDR_SURF_8_BANK                               0x02
  4438. #define     V_009910_ADDR_SURF_16_BANK                              0x03
  4439. /* CIK */
  4440. #define R_00B01C_SPI_SHADER_PGM_RSRC3_PS                                0x00B01C
  4441. #define   S_00B01C_CU_EN(x)                                           (((x) & 0xFFFF) << 0)
  4442. #define   G_00B01C_CU_EN(x)                                           (((x) >> 0) & 0xFFFF)
  4443. #define   C_00B01C_CU_EN                                              0xFFFF0000
  4444. #define   S_00B01C_WAVE_LIMIT(x)                                      (((x) & 0x3F) << 16)
  4445. #define   G_00B01C_WAVE_LIMIT(x)                                      (((x) >> 16) & 0x3F)
  4446. #define   C_00B01C_WAVE_LIMIT                                         0xFFC0FFFF
  4447. #define   S_00B01C_LOCK_LOW_THRESHOLD(x)                              (((x) & 0x0F) << 22)
  4448. #define   G_00B01C_LOCK_LOW_THRESHOLD(x)                              (((x) >> 22) & 0x0F)
  4449. #define   C_00B01C_LOCK_LOW_THRESHOLD                                 0xFC3FFFFF
  4450. /*     */
  4451. #define R_00B020_SPI_SHADER_PGM_LO_PS                                   0x00B020
  4452. #define R_00B024_SPI_SHADER_PGM_HI_PS                                   0x00B024
  4453. #define   S_00B024_MEM_BASE(x)                                        (((x) & 0xFF) << 0)
  4454. #define   G_00B024_MEM_BASE(x)                                        (((x) >> 0) & 0xFF)
  4455. #define   C_00B024_MEM_BASE                                           0xFFFFFF00
  4456. #define R_00B028_SPI_SHADER_PGM_RSRC1_PS                                0x00B028
  4457. #define   S_00B028_VGPRS(x)                                           (((x) & 0x3F) << 0)
  4458. #define   G_00B028_VGPRS(x)                                           (((x) >> 0) & 0x3F)
  4459. #define   C_00B028_VGPRS                                              0xFFFFFFC0
  4460. #define   S_00B028_SGPRS(x)                                           (((x) & 0x0F) << 6)
  4461. #define   G_00B028_SGPRS(x)                                           (((x) >> 6) & 0x0F)
  4462. #define   C_00B028_SGPRS                                              0xFFFFFC3F
  4463. #define   S_00B028_PRIORITY(x)                                        (((x) & 0x03) << 10)
  4464. #define   G_00B028_PRIORITY(x)                                        (((x) >> 10) & 0x03)
  4465. #define   C_00B028_PRIORITY                                           0xFFFFF3FF
  4466. #define   S_00B028_FLOAT_MODE(x)                                      (((x) & 0xFF) << 12)
  4467. #define   G_00B028_FLOAT_MODE(x)                                      (((x) >> 12) & 0xFF)
  4468. #define   C_00B028_FLOAT_MODE                                         0xFFF00FFF
  4469. #define   S_00B028_PRIV(x)                                            (((x) & 0x1) << 20)
  4470. #define   G_00B028_PRIV(x)                                            (((x) >> 20) & 0x1)
  4471. #define   C_00B028_PRIV                                               0xFFEFFFFF
  4472. #define   S_00B028_DX10_CLAMP(x)                                      (((x) & 0x1) << 21)
  4473. #define   G_00B028_DX10_CLAMP(x)                                      (((x) >> 21) & 0x1)
  4474. #define   C_00B028_DX10_CLAMP                                         0xFFDFFFFF
  4475. #define   S_00B028_DEBUG_MODE(x)                                      (((x) & 0x1) << 22)
  4476. #define   G_00B028_DEBUG_MODE(x)                                      (((x) >> 22) & 0x1)
  4477. #define   C_00B028_DEBUG_MODE                                         0xFFBFFFFF
  4478. #define   S_00B028_IEEE_MODE(x)                                       (((x) & 0x1) << 23)
  4479. #define   G_00B028_IEEE_MODE(x)                                       (((x) >> 23) & 0x1)
  4480. #define   C_00B028_IEEE_MODE                                          0xFF7FFFFF
  4481. #define   S_00B028_CU_GROUP_DISABLE(x)                                (((x) & 0x1) << 24)
  4482. #define   G_00B028_CU_GROUP_DISABLE(x)                                (((x) >> 24) & 0x1)
  4483. #define   C_00B028_CU_GROUP_DISABLE                                   0xFEFFFFFF
  4484. /* CIK */
  4485. #define   S_00B028_CACHE_CTL(x)                                       (((x) & 0x07) << 25)
  4486. #define   G_00B028_CACHE_CTL(x)                                       (((x) >> 25) & 0x07)
  4487. #define   C_00B028_CACHE_CTL                                          0xF1FFFFFF
  4488. #define   S_00B028_CDBG_USER(x)                                       (((x) & 0x1) << 28)
  4489. #define   G_00B028_CDBG_USER(x)                                       (((x) >> 28) & 0x1)
  4490. #define   C_00B028_CDBG_USER                                          0xEFFFFFFF
  4491. /*    */
  4492. #define R_00B02C_SPI_SHADER_PGM_RSRC2_PS                                0x00B02C
  4493. #define   S_00B02C_SCRATCH_EN(x)                                      (((x) & 0x1) << 0)
  4494. #define   G_00B02C_SCRATCH_EN(x)                                      (((x) >> 0) & 0x1)
  4495. #define   C_00B02C_SCRATCH_EN                                         0xFFFFFFFE
  4496. #define   S_00B02C_USER_SGPR(x)                                       (((x) & 0x1F) << 1)
  4497. #define   G_00B02C_USER_SGPR(x)                                       (((x) >> 1) & 0x1F)
  4498. #define   C_00B02C_USER_SGPR                                          0xFFFFFFC1
  4499. #define   S_00B02C_WAVE_CNT_EN(x)                                     (((x) & 0x1) << 7)
  4500. #define   G_00B02C_WAVE_CNT_EN(x)                                     (((x) >> 7) & 0x1)
  4501. #define   C_00B02C_WAVE_CNT_EN                                        0xFFFFFF7F
  4502. #define   S_00B02C_EXTRA_LDS_SIZE(x)                                  (((x) & 0xFF) << 8)
  4503. #define   G_00B02C_EXTRA_LDS_SIZE(x)                                  (((x) >> 8) & 0xFF)
  4504. #define   C_00B02C_EXTRA_LDS_SIZE                                     0xFFFF00FF
  4505. #define   S_00B02C_EXCP_EN(x)                                         (((x) & 0x7F) << 16) /* mask is 0x1FF on CIK */
  4506. #define   G_00B02C_EXCP_EN(x)                                         (((x) >> 16) & 0x7F) /* mask is 0x1FF on CIK */
  4507. #define   C_00B02C_EXCP_EN                                            0xFF80FFFF /* mask is 0x1FF on CIK */
  4508. #define R_00B030_SPI_SHADER_USER_DATA_PS_0                              0x00B030
  4509. #define R_00B034_SPI_SHADER_USER_DATA_PS_1                              0x00B034
  4510. #define R_00B038_SPI_SHADER_USER_DATA_PS_2                              0x00B038
  4511. #define R_00B03C_SPI_SHADER_USER_DATA_PS_3                              0x00B03C
  4512. #define R_00B040_SPI_SHADER_USER_DATA_PS_4                              0x00B040
  4513. #define R_00B044_SPI_SHADER_USER_DATA_PS_5                              0x00B044
  4514. #define R_00B048_SPI_SHADER_USER_DATA_PS_6                              0x00B048
  4515. #define R_00B04C_SPI_SHADER_USER_DATA_PS_7                              0x00B04C
  4516. #define R_00B050_SPI_SHADER_USER_DATA_PS_8                              0x00B050
  4517. #define R_00B054_SPI_SHADER_USER_DATA_PS_9                              0x00B054
  4518. #define R_00B058_SPI_SHADER_USER_DATA_PS_10                             0x00B058
  4519. #define R_00B05C_SPI_SHADER_USER_DATA_PS_11                             0x00B05C
  4520. #define R_00B060_SPI_SHADER_USER_DATA_PS_12                             0x00B060
  4521. #define R_00B064_SPI_SHADER_USER_DATA_PS_13                             0x00B064
  4522. #define R_00B068_SPI_SHADER_USER_DATA_PS_14                             0x00B068
  4523. #define R_00B06C_SPI_SHADER_USER_DATA_PS_15                             0x00B06C
  4524. /* CIK */
  4525. #define R_00B118_SPI_SHADER_PGM_RSRC3_VS                                0x00B118
  4526. #define   S_00B118_CU_EN(x)                                           (((x) & 0xFFFF) << 0)
  4527. #define   G_00B118_CU_EN(x)                                           (((x) >> 0) & 0xFFFF)
  4528. #define   C_00B118_CU_EN                                              0xFFFF0000
  4529. #define   S_00B118_WAVE_LIMIT(x)                                      (((x) & 0x3F) << 16)
  4530. #define   G_00B118_WAVE_LIMIT(x)                                      (((x) >> 16) & 0x3F)
  4531. #define   C_00B118_WAVE_LIMIT                                         0xFFC0FFFF
  4532. #define   S_00B118_LOCK_LOW_THRESHOLD(x)                              (((x) & 0x0F) << 22)
  4533. #define   G_00B118_LOCK_LOW_THRESHOLD(x)                              (((x) >> 22) & 0x0F)
  4534. #define   C_00B118_LOCK_LOW_THRESHOLD                                 0xFC3FFFFF
  4535. #define R_00B11C_SPI_SHADER_LATE_ALLOC_VS                               0x00B11C
  4536. #define   S_00B11C_LIMIT(x)                                           (((x) & 0x3F) << 0)
  4537. #define   G_00B11C_LIMIT(x)                                           (((x) >> 0) & 0x3F)
  4538. #define   C_00B11C_LIMIT                                              0xFFFFFFC0
  4539. /*     */
  4540. #define R_00B120_SPI_SHADER_PGM_LO_VS                                   0x00B120
  4541. #define R_00B124_SPI_SHADER_PGM_HI_VS                                   0x00B124
  4542. #define   S_00B124_MEM_BASE(x)                                        (((x) & 0xFF) << 0)
  4543. #define   G_00B124_MEM_BASE(x)                                        (((x) >> 0) & 0xFF)
  4544. #define   C_00B124_MEM_BASE                                           0xFFFFFF00
  4545. #define R_00B128_SPI_SHADER_PGM_RSRC1_VS                                0x00B128
  4546. #define   S_00B128_VGPRS(x)                                           (((x) & 0x3F) << 0)
  4547. #define   G_00B128_VGPRS(x)                                           (((x) >> 0) & 0x3F)
  4548. #define   C_00B128_VGPRS                                              0xFFFFFFC0
  4549. #define   S_00B128_SGPRS(x)                                           (((x) & 0x0F) << 6)
  4550. #define   G_00B128_SGPRS(x)                                           (((x) >> 6) & 0x0F)
  4551. #define   C_00B128_SGPRS                                              0xFFFFFC3F
  4552. #define   S_00B128_PRIORITY(x)                                        (((x) & 0x03) << 10)
  4553. #define   G_00B128_PRIORITY(x)                                        (((x) >> 10) & 0x03)
  4554. #define   C_00B128_PRIORITY                                           0xFFFFF3FF
  4555. #define   S_00B128_FLOAT_MODE(x)                                      (((x) & 0xFF) << 12)
  4556. #define   G_00B128_FLOAT_MODE(x)                                      (((x) >> 12) & 0xFF)
  4557. #define   C_00B128_FLOAT_MODE                                         0xFFF00FFF
  4558. #define   S_00B128_PRIV(x)                                            (((x) & 0x1) << 20)
  4559. #define   G_00B128_PRIV(x)                                            (((x) >> 20) & 0x1)
  4560. #define   C_00B128_PRIV                                               0xFFEFFFFF
  4561. #define   S_00B128_DX10_CLAMP(x)                                      (((x) & 0x1) << 21)
  4562. #define   G_00B128_DX10_CLAMP(x)                                      (((x) >> 21) & 0x1)
  4563. #define   C_00B128_DX10_CLAMP                                         0xFFDFFFFF
  4564. #define   S_00B128_DEBUG_MODE(x)                                      (((x) & 0x1) << 22)
  4565. #define   G_00B128_DEBUG_MODE(x)                                      (((x) >> 22) & 0x1)
  4566. #define   C_00B128_DEBUG_MODE                                         0xFFBFFFFF
  4567. #define   S_00B128_IEEE_MODE(x)                                       (((x) & 0x1) << 23)
  4568. #define   G_00B128_IEEE_MODE(x)                                       (((x) >> 23) & 0x1)
  4569. #define   C_00B128_IEEE_MODE                                          0xFF7FFFFF
  4570. #define   S_00B128_VGPR_COMP_CNT(x)                                   (((x) & 0x03) << 24)
  4571. #define   G_00B128_VGPR_COMP_CNT(x)                                   (((x) >> 24) & 0x03)
  4572. #define   C_00B128_VGPR_COMP_CNT                                      0xFCFFFFFF
  4573. #define   S_00B128_CU_GROUP_ENABLE(x)                                 (((x) & 0x1) << 26)
  4574. #define   G_00B128_CU_GROUP_ENABLE(x)                                 (((x) >> 26) & 0x1)
  4575. #define   C_00B128_CU_GROUP_ENABLE                                    0xFBFFFFFF
  4576. /* CIK */
  4577. #define   S_00B128_CACHE_CTL(x)                                       (((x) & 0x07) << 27)
  4578. #define   G_00B128_CACHE_CTL(x)                                       (((x) >> 27) & 0x07)
  4579. #define   C_00B128_CACHE_CTL                                          0xC7FFFFFF
  4580. #define   S_00B128_CDBG_USER(x)                                       (((x) & 0x1) << 30)
  4581. #define   G_00B128_CDBG_USER(x)                                       (((x) >> 30) & 0x1)
  4582. #define   C_00B128_CDBG_USER                                          0xBFFFFFFF
  4583. /*    */
  4584. #define R_00B12C_SPI_SHADER_PGM_RSRC2_VS                                0x00B12C
  4585. #define   S_00B12C_SCRATCH_EN(x)                                      (((x) & 0x1) << 0)
  4586. #define   G_00B12C_SCRATCH_EN(x)                                      (((x) >> 0) & 0x1)
  4587. #define   C_00B12C_SCRATCH_EN                                         0xFFFFFFFE
  4588. #define   S_00B12C_USER_SGPR(x)                                       (((x) & 0x1F) << 1)
  4589. #define   G_00B12C_USER_SGPR(x)                                       (((x) >> 1) & 0x1F)
  4590. #define   C_00B12C_USER_SGPR                                          0xFFFFFFC1
  4591. #define   S_00B12C_OC_LDS_EN(x)                                       (((x) & 0x1) << 7)
  4592. #define   G_00B12C_OC_LDS_EN(x)                                       (((x) >> 7) & 0x1)
  4593. #define   C_00B12C_OC_LDS_EN                                          0xFFFFFF7F
  4594. #define   S_00B12C_SO_BASE0_EN(x)                                     (((x) & 0x1) << 8)
  4595. #define   G_00B12C_SO_BASE0_EN(x)                                     (((x) >> 8) & 0x1)
  4596. #define   C_00B12C_SO_BASE0_EN                                        0xFFFFFEFF
  4597. #define   S_00B12C_SO_BASE1_EN(x)                                     (((x) & 0x1) << 9)
  4598. #define   G_00B12C_SO_BASE1_EN(x)                                     (((x) >> 9) & 0x1)
  4599. #define   C_00B12C_SO_BASE1_EN                                        0xFFFFFDFF
  4600. #define   S_00B12C_SO_BASE2_EN(x)                                     (((x) & 0x1) << 10)
  4601. #define   G_00B12C_SO_BASE2_EN(x)                                     (((x) >> 10) & 0x1)
  4602. #define   C_00B12C_SO_BASE2_EN                                        0xFFFFFBFF
  4603. #define   S_00B12C_SO_BASE3_EN(x)                                     (((x) & 0x1) << 11)
  4604. #define   G_00B12C_SO_BASE3_EN(x)                                     (((x) >> 11) & 0x1)
  4605. #define   C_00B12C_SO_BASE3_EN                                        0xFFFFF7FF
  4606. #define   S_00B12C_SO_EN(x)                                           (((x) & 0x1) << 12)
  4607. #define   G_00B12C_SO_EN(x)                                           (((x) >> 12) & 0x1)
  4608. #define   C_00B12C_SO_EN                                              0xFFFFEFFF
  4609. #define   S_00B12C_EXCP_EN(x)                                         (((x) & 0x7F) << 13) /* mask is 0x1FF on CIK */
  4610. #define   G_00B12C_EXCP_EN(x)                                         (((x) >> 13) & 0x7F) /* mask is 0x1FF on CIK */
  4611. #define   C_00B12C_EXCP_EN                                            0xFFF01FFF /* mask is 0x1FF on CIK */
  4612. #define R_00B130_SPI_SHADER_USER_DATA_VS_0                              0x00B130
  4613. #define R_00B134_SPI_SHADER_USER_DATA_VS_1                              0x00B134
  4614. #define R_00B138_SPI_SHADER_USER_DATA_VS_2                              0x00B138
  4615. #define R_00B13C_SPI_SHADER_USER_DATA_VS_3                              0x00B13C
  4616. #define R_00B140_SPI_SHADER_USER_DATA_VS_4                              0x00B140
  4617. #define R_00B144_SPI_SHADER_USER_DATA_VS_5                              0x00B144
  4618. #define R_00B148_SPI_SHADER_USER_DATA_VS_6                              0x00B148
  4619. #define R_00B14C_SPI_SHADER_USER_DATA_VS_7                              0x00B14C
  4620. #define R_00B150_SPI_SHADER_USER_DATA_VS_8                              0x00B150
  4621. #define R_00B154_SPI_SHADER_USER_DATA_VS_9                              0x00B154
  4622. #define R_00B158_SPI_SHADER_USER_DATA_VS_10                             0x00B158
  4623. #define R_00B15C_SPI_SHADER_USER_DATA_VS_11                             0x00B15C
  4624. #define R_00B160_SPI_SHADER_USER_DATA_VS_12                             0x00B160
  4625. #define R_00B164_SPI_SHADER_USER_DATA_VS_13                             0x00B164
  4626. #define R_00B168_SPI_SHADER_USER_DATA_VS_14                             0x00B168
  4627. #define R_00B16C_SPI_SHADER_USER_DATA_VS_15                             0x00B16C
  4628. /* CIK */
  4629. #define R_00B21C_SPI_SHADER_PGM_RSRC3_GS                                0x00B21C
  4630. #define   S_00B21C_CU_EN(x)                                           (((x) & 0xFFFF) << 0)
  4631. #define   G_00B21C_CU_EN(x)                                           (((x) >> 0) & 0xFFFF)
  4632. #define   C_00B21C_CU_EN                                              0xFFFF0000
  4633. #define   S_00B21C_WAVE_LIMIT(x)                                      (((x) & 0x3F) << 16)
  4634. #define   G_00B21C_WAVE_LIMIT(x)                                      (((x) >> 16) & 0x3F)
  4635. #define   C_00B21C_WAVE_LIMIT                                         0xFFC0FFFF
  4636. #define   S_00B21C_LOCK_LOW_THRESHOLD(x)                              (((x) & 0x0F) << 22)
  4637. #define   G_00B21C_LOCK_LOW_THRESHOLD(x)                              (((x) >> 22) & 0x0F)
  4638. #define   C_00B21C_LOCK_LOW_THRESHOLD                                 0xFC3FFFFF
  4639. /*     */
  4640. #define R_00B220_SPI_SHADER_PGM_LO_GS                                   0x00B220
  4641. #define R_00B224_SPI_SHADER_PGM_HI_GS                                   0x00B224
  4642. #define   S_00B224_MEM_BASE(x)                                        (((x) & 0xFF) << 0)
  4643. #define   G_00B224_MEM_BASE(x)                                        (((x) >> 0) & 0xFF)
  4644. #define   C_00B224_MEM_BASE                                           0xFFFFFF00
  4645. #define R_00B228_SPI_SHADER_PGM_RSRC1_GS                                0x00B228
  4646. #define   S_00B228_VGPRS(x)                                           (((x) & 0x3F) << 0)
  4647. #define   G_00B228_VGPRS(x)                                           (((x) >> 0) & 0x3F)
  4648. #define   C_00B228_VGPRS                                              0xFFFFFFC0
  4649. #define   S_00B228_SGPRS(x)                                           (((x) & 0x0F) << 6)
  4650. #define   G_00B228_SGPRS(x)                                           (((x) >> 6) & 0x0F)
  4651. #define   C_00B228_SGPRS                                              0xFFFFFC3F
  4652. #define   S_00B228_PRIORITY(x)                                        (((x) & 0x03) << 10)
  4653. #define   G_00B228_PRIORITY(x)                                        (((x) >> 10) & 0x03)
  4654. #define   C_00B228_PRIORITY                                           0xFFFFF3FF
  4655. #define   S_00B228_FLOAT_MODE(x)                                      (((x) & 0xFF) << 12)
  4656. #define   G_00B228_FLOAT_MODE(x)                                      (((x) >> 12) & 0xFF)
  4657. #define   C_00B228_FLOAT_MODE                                         0xFFF00FFF
  4658. #define   S_00B228_PRIV(x)                                            (((x) & 0x1) << 20)
  4659. #define   G_00B228_PRIV(x)                                            (((x) >> 20) & 0x1)
  4660. #define   C_00B228_PRIV                                               0xFFEFFFFF
  4661. #define   S_00B228_DX10_CLAMP(x)                                      (((x) & 0x1) << 21)
  4662. #define   G_00B228_DX10_CLAMP(x)                                      (((x) >> 21) & 0x1)
  4663. #define   C_00B228_DX10_CLAMP                                         0xFFDFFFFF
  4664. #define   S_00B228_DEBUG_MODE(x)                                      (((x) & 0x1) << 22)
  4665. #define   G_00B228_DEBUG_MODE(x)                                      (((x) >> 22) & 0x1)
  4666. #define   C_00B228_DEBUG_MODE                                         0xFFBFFFFF
  4667. #define   S_00B228_IEEE_MODE(x)                                       (((x) & 0x1) << 23)
  4668. #define   G_00B228_IEEE_MODE(x)                                       (((x) >> 23) & 0x1)
  4669. #define   C_00B228_IEEE_MODE                                          0xFF7FFFFF
  4670. #define   S_00B228_CU_GROUP_ENABLE(x)                                 (((x) & 0x1) << 24)
  4671. #define   G_00B228_CU_GROUP_ENABLE(x)                                 (((x) >> 24) & 0x1)
  4672. #define   C_00B228_CU_GROUP_ENABLE                                    0xFEFFFFFF
  4673. /* CIK */
  4674. #define   S_00B228_CACHE_CTL(x)                                       (((x) & 0x07) << 25)
  4675. #define   G_00B228_CACHE_CTL(x)                                       (((x) >> 25) & 0x07)
  4676. #define   C_00B228_CACHE_CTL                                          0xF1FFFFFF
  4677. #define   S_00B228_CDBG_USER(x)                                       (((x) & 0x1) << 28)
  4678. #define   G_00B228_CDBG_USER(x)                                       (((x) >> 28) & 0x1)
  4679. #define   C_00B228_CDBG_USER                                          0xEFFFFFFF
  4680. /*     */
  4681. #define R_00B22C_SPI_SHADER_PGM_RSRC2_GS                                0x00B22C
  4682. #define   S_00B22C_SCRATCH_EN(x)                                      (((x) & 0x1) << 0)
  4683. #define   G_00B22C_SCRATCH_EN(x)                                      (((x) >> 0) & 0x1)
  4684. #define   C_00B22C_SCRATCH_EN                                         0xFFFFFFFE
  4685. #define   S_00B22C_USER_SGPR(x)                                       (((x) & 0x1F) << 1)
  4686. #define   G_00B22C_USER_SGPR(x)                                       (((x) >> 1) & 0x1F)
  4687. #define   C_00B22C_USER_SGPR                                          0xFFFFFFC1
  4688. #define   S_00B22C_EXCP_EN(x)                                         (((x) & 0x7F) << 7) /* mask is 0x1FF on CIK */
  4689. #define   G_00B22C_EXCP_EN(x)                                         (((x) >> 7) & 0x7F) /* mask is 0x1FF on CIK */
  4690. #define   C_00B22C_EXCP_EN                                            0xFFFFC07F /* mask is 0x1FF on CIK */
  4691. #define R_00B230_SPI_SHADER_USER_DATA_GS_0                              0x00B230
  4692. /* CIK */
  4693. #define R_00B31C_SPI_SHADER_PGM_RSRC3_ES                                0x00B31C
  4694. #define   S_00B31C_CU_EN(x)                                           (((x) & 0xFFFF) << 0)
  4695. #define   G_00B31C_CU_EN(x)                                           (((x) >> 0) & 0xFFFF)
  4696. #define   C_00B31C_CU_EN                                              0xFFFF0000
  4697. #define   S_00B31C_WAVE_LIMIT(x)                                      (((x) & 0x3F) << 16)
  4698. #define   G_00B31C_WAVE_LIMIT(x)                                      (((x) >> 16) & 0x3F)
  4699. #define   C_00B31C_WAVE_LIMIT                                         0xFFC0FFFF
  4700. #define   S_00B31C_LOCK_LOW_THRESHOLD(x)                              (((x) & 0x0F) << 22)
  4701. #define   G_00B31C_LOCK_LOW_THRESHOLD(x)                              (((x) >> 22) & 0x0F)
  4702. #define   C_00B31C_LOCK_LOW_THRESHOLD                                 0xFC3FFFFF
  4703. /*     */
  4704. #define R_00B320_SPI_SHADER_PGM_LO_ES                                   0x00B320
  4705. #define R_00B324_SPI_SHADER_PGM_HI_ES                                   0x00B324
  4706. #define   S_00B324_MEM_BASE(x)                                        (((x) & 0xFF) << 0)
  4707. #define   G_00B324_MEM_BASE(x)                                        (((x) >> 0) & 0xFF)
  4708. #define   C_00B324_MEM_BASE                                           0xFFFFFF00
  4709. #define R_00B328_SPI_SHADER_PGM_RSRC1_ES                                0x00B328
  4710. #define   S_00B328_VGPRS(x)                                           (((x) & 0x3F) << 0)
  4711. #define   G_00B328_VGPRS(x)                                           (((x) >> 0) & 0x3F)
  4712. #define   C_00B328_VGPRS                                              0xFFFFFFC0
  4713. #define   S_00B328_SGPRS(x)                                           (((x) & 0x0F) << 6)
  4714. #define   G_00B328_SGPRS(x)                                           (((x) >> 6) & 0x0F)
  4715. #define   C_00B328_SGPRS                                              0xFFFFFC3F
  4716. #define   S_00B328_PRIORITY(x)                                        (((x) & 0x03) << 10)
  4717. #define   G_00B328_PRIORITY(x)                                        (((x) >> 10) & 0x03)
  4718. #define   C_00B328_PRIORITY                                           0xFFFFF3FF
  4719. #define   S_00B328_FLOAT_MODE(x)                                      (((x) & 0xFF) << 12)
  4720. #define   G_00B328_FLOAT_MODE(x)                                      (((x) >> 12) & 0xFF)
  4721. #define   C_00B328_FLOAT_MODE                                         0xFFF00FFF
  4722. #define   S_00B328_PRIV(x)                                            (((x) & 0x1) << 20)
  4723. #define   G_00B328_PRIV(x)                                            (((x) >> 20) & 0x1)
  4724. #define   C_00B328_PRIV                                               0xFFEFFFFF
  4725. #define   S_00B328_DX10_CLAMP(x)                                      (((x) & 0x1) << 21)
  4726. #define   G_00B328_DX10_CLAMP(x)                                      (((x) >> 21) & 0x1)
  4727. #define   C_00B328_DX10_CLAMP                                         0xFFDFFFFF
  4728. #define   S_00B328_DEBUG_MODE(x)                                      (((x) & 0x1) << 22)
  4729. #define   G_00B328_DEBUG_MODE(x)                                      (((x) >> 22) & 0x1)
  4730. #define   C_00B328_DEBUG_MODE                                         0xFFBFFFFF
  4731. #define   S_00B328_IEEE_MODE(x)                                       (((x) & 0x1) << 23)
  4732. #define   G_00B328_IEEE_MODE(x)                                       (((x) >> 23) & 0x1)
  4733. #define   C_00B328_IEEE_MODE                                          0xFF7FFFFF
  4734. #define   S_00B328_VGPR_COMP_CNT(x)                                   (((x) & 0x03) << 24)
  4735. #define   G_00B328_VGPR_COMP_CNT(x)                                   (((x) >> 24) & 0x03)
  4736. #define   C_00B328_VGPR_COMP_CNT                                      0xFCFFFFFF
  4737. #define   S_00B328_CU_GROUP_ENABLE(x)                                 (((x) & 0x1) << 26)
  4738. #define   G_00B328_CU_GROUP_ENABLE(x)                                 (((x) >> 26) & 0x1)
  4739. #define   C_00B328_CU_GROUP_ENABLE                                    0xFBFFFFFF
  4740. /* CIK */
  4741. #define   S_00B328_CACHE_CTL(x)                                       (((x) & 0x07) << 27)
  4742. #define   G_00B328_CACHE_CTL(x)                                       (((x) >> 27) & 0x07)
  4743. #define   C_00B328_CACHE_CTL                                          0xC7FFFFFF
  4744. #define   S_00B328_CDBG_USER(x)                                       (((x) & 0x1) << 30)
  4745. #define   G_00B328_CDBG_USER(x)                                       (((x) >> 30) & 0x1)
  4746. #define   C_00B328_CDBG_USER                                          0xBFFFFFFF
  4747. /*     */
  4748. #define R_00B32C_SPI_SHADER_PGM_RSRC2_ES                                0x00B32C
  4749. #define   S_00B32C_SCRATCH_EN(x)                                      (((x) & 0x1) << 0)
  4750. #define   G_00B32C_SCRATCH_EN(x)                                      (((x) >> 0) & 0x1)
  4751. #define   C_00B32C_SCRATCH_EN                                         0xFFFFFFFE
  4752. #define   S_00B32C_USER_SGPR(x)                                       (((x) & 0x1F) << 1)
  4753. #define   G_00B32C_USER_SGPR(x)                                       (((x) >> 1) & 0x1F)
  4754. #define   C_00B32C_USER_SGPR                                          0xFFFFFFC1
  4755. #define   S_00B32C_OC_LDS_EN(x)                                       (((x) & 0x1) << 7)
  4756. #define   G_00B32C_OC_LDS_EN(x)                                       (((x) >> 7) & 0x1)
  4757. #define   C_00B32C_OC_LDS_EN                                          0xFFFFFF7F
  4758. #define   S_00B32C_EXCP_EN(x)                                         (((x) & 0x7F) << 8) /* mask is 0x1FF on CIK */
  4759. #define   G_00B32C_EXCP_EN(x)                                         (((x) >> 8) & 0x7F) /* mask is 0x1FF on CIK */
  4760. #define   C_00B32C_EXCP_EN                                            0xFFFF80FF /* mask is 0x1FF on CIK */
  4761. #define R_00B330_SPI_SHADER_USER_DATA_ES_0                              0x00B330
  4762. /* CIK */
  4763. #define R_00B41C_SPI_SHADER_PGM_RSRC3_HS                                0x00B41C
  4764. #define   S_00B41C_WAVE_LIMIT(x)                                      (((x) & 0x3F) << 0)
  4765. #define   G_00B41C_WAVE_LIMIT(x)                                      (((x) >> 0) & 0x3F)
  4766. #define   C_00B41C_WAVE_LIMIT                                         0xFFFFFFC0
  4767. #define   S_00B41C_LOCK_LOW_THRESHOLD(x)                              (((x) & 0x0F) << 6)
  4768. #define   G_00B41C_LOCK_LOW_THRESHOLD(x)                              (((x) >> 6) & 0x0F)
  4769. #define   C_00B41C_LOCK_LOW_THRESHOLD                                 0xFFFFFC3F
  4770. /*     */
  4771. #define R_00B420_SPI_SHADER_PGM_LO_HS                                   0x00B420
  4772. #define R_00B424_SPI_SHADER_PGM_HI_HS                                   0x00B424
  4773. #define   S_00B424_MEM_BASE(x)                                        (((x) & 0xFF) << 0)
  4774. #define   G_00B424_MEM_BASE(x)                                        (((x) >> 0) & 0xFF)
  4775. #define   C_00B424_MEM_BASE                                           0xFFFFFF00
  4776. #define R_00B428_SPI_SHADER_PGM_RSRC1_HS                                0x00B428
  4777. #define   S_00B428_VGPRS(x)                                           (((x) & 0x3F) << 0)
  4778. #define   G_00B428_VGPRS(x)                                           (((x) >> 0) & 0x3F)
  4779. #define   C_00B428_VGPRS                                              0xFFFFFFC0
  4780. #define   S_00B428_SGPRS(x)                                           (((x) & 0x0F) << 6)
  4781. #define   G_00B428_SGPRS(x)                                           (((x) >> 6) & 0x0F)
  4782. #define   C_00B428_SGPRS                                              0xFFFFFC3F
  4783. #define   S_00B428_PRIORITY(x)                                        (((x) & 0x03) << 10)
  4784. #define   G_00B428_PRIORITY(x)                                        (((x) >> 10) & 0x03)
  4785. #define   C_00B428_PRIORITY                                           0xFFFFF3FF
  4786. #define   S_00B428_FLOAT_MODE(x)                                      (((x) & 0xFF) << 12)
  4787. #define   G_00B428_FLOAT_MODE(x)                                      (((x) >> 12) & 0xFF)
  4788. #define   C_00B428_FLOAT_MODE                                         0xFFF00FFF
  4789. #define   S_00B428_PRIV(x)                                            (((x) & 0x1) << 20)
  4790. #define   G_00B428_PRIV(x)                                            (((x) >> 20) & 0x1)
  4791. #define   C_00B428_PRIV                                               0xFFEFFFFF
  4792. #define   S_00B428_DX10_CLAMP(x)                                      (((x) & 0x1) << 21)
  4793. #define   G_00B428_DX10_CLAMP(x)                                      (((x) >> 21) & 0x1)
  4794. #define   C_00B428_DX10_CLAMP                                         0xFFDFFFFF
  4795. #define   S_00B428_DEBUG_MODE(x)                                      (((x) & 0x1) << 22)
  4796. #define   G_00B428_DEBUG_MODE(x)                                      (((x) >> 22) & 0x1)
  4797. #define   C_00B428_DEBUG_MODE                                         0xFFBFFFFF
  4798. #define   S_00B428_IEEE_MODE(x)                                       (((x) & 0x1) << 23)
  4799. #define   G_00B428_IEEE_MODE(x)                                       (((x) >> 23) & 0x1)
  4800. #define   C_00B428_IEEE_MODE                                          0xFF7FFFFF
  4801. /* CIK */
  4802. #define   S_00B428_CACHE_CTL(x)                                       (((x) & 0x07) << 24)
  4803. #define   G_00B428_CACHE_CTL(x)                                       (((x) >> 24) & 0x07)
  4804. #define   C_00B428_CACHE_CTL                                          0xF8FFFFFF
  4805. #define   S_00B428_CDBG_USER(x)                                       (((x) & 0x1) << 27)
  4806. #define   G_00B428_CDBG_USER(x)                                       (((x) >> 27) & 0x1)
  4807. #define   C_00B428_CDBG_USER                                          0xF7FFFFFF
  4808. /*     */
  4809. #define R_00B42C_SPI_SHADER_PGM_RSRC2_HS                                0x00B42C
  4810. #define   S_00B42C_SCRATCH_EN(x)                                      (((x) & 0x1) << 0)
  4811. #define   G_00B42C_SCRATCH_EN(x)                                      (((x) >> 0) & 0x1)
  4812. #define   C_00B42C_SCRATCH_EN                                         0xFFFFFFFE
  4813. #define   S_00B42C_USER_SGPR(x)                                       (((x) & 0x1F) << 1)
  4814. #define   G_00B42C_USER_SGPR(x)                                       (((x) >> 1) & 0x1F)
  4815. #define   C_00B42C_USER_SGPR                                          0xFFFFFFC1
  4816. #define   S_00B42C_OC_LDS_EN(x)                                       (((x) & 0x1) << 7)
  4817. #define   G_00B42C_OC_LDS_EN(x)                                       (((x) >> 7) & 0x1)
  4818. #define   C_00B42C_OC_LDS_EN                                          0xFFFFFF7F
  4819. #define   S_00B42C_TG_SIZE_EN(x)                                      (((x) & 0x1) << 8)
  4820. #define   G_00B42C_TG_SIZE_EN(x)                                      (((x) >> 8) & 0x1)
  4821. #define   C_00B42C_TG_SIZE_EN                                         0xFFFFFEFF
  4822. #define   S_00B42C_EXCP_EN(x)                                         (((x) & 0x7F) << 9) /* mask is 0x1FF on CIK */
  4823. #define   G_00B42C_EXCP_EN(x)                                         (((x) >> 9) & 0x7F) /* mask is 0x1FF on CIK */
  4824. #define   C_00B42C_EXCP_EN                                            0xFFFF01FF /* mask is 0x1FF on CIK */
  4825. #define R_00B430_SPI_SHADER_USER_DATA_HS_0                              0x00B430
  4826. /* CIK */
  4827. #define R_00B51C_SPI_SHADER_PGM_RSRC3_LS                                0x00B51C
  4828. #define   S_00B51C_CU_EN(x)                                           (((x) & 0xFFFF) << 0)
  4829. #define   G_00B51C_CU_EN(x)                                           (((x) >> 0) & 0xFFFF)
  4830. #define   C_00B51C_CU_EN                                              0xFFFF0000
  4831. #define   S_00B51C_WAVE_LIMIT(x)                                      (((x) & 0x3F) << 16)
  4832. #define   G_00B51C_WAVE_LIMIT(x)                                      (((x) >> 16) & 0x3F)
  4833. #define   C_00B51C_WAVE_LIMIT                                         0xFFC0FFFF
  4834. #define   S_00B51C_LOCK_LOW_THRESHOLD(x)                              (((x) & 0x0F) << 22)
  4835. #define   G_00B51C_LOCK_LOW_THRESHOLD(x)                              (((x) >> 22) & 0x0F)
  4836. #define   C_00B51C_LOCK_LOW_THRESHOLD                                 0xFC3FFFFF
  4837. /*     */
  4838. #define R_00B520_SPI_SHADER_PGM_LO_LS                                   0x00B520
  4839. #define R_00B524_SPI_SHADER_PGM_HI_LS                                   0x00B524
  4840. #define   S_00B524_MEM_BASE(x)                                        (((x) & 0xFF) << 0)
  4841. #define   G_00B524_MEM_BASE(x)                                        (((x) >> 0) & 0xFF)
  4842. #define   C_00B524_MEM_BASE                                           0xFFFFFF00
  4843. #define R_00B528_SPI_SHADER_PGM_RSRC1_LS                                0x00B528
  4844. #define   S_00B528_VGPRS(x)                                           (((x) & 0x3F) << 0)
  4845. #define   G_00B528_VGPRS(x)                                           (((x) >> 0) & 0x3F)
  4846. #define   C_00B528_VGPRS                                              0xFFFFFFC0
  4847. #define   S_00B528_SGPRS(x)                                           (((x) & 0x0F) << 6)
  4848. #define   G_00B528_SGPRS(x)                                           (((x) >> 6) & 0x0F)
  4849. #define   C_00B528_SGPRS                                              0xFFFFFC3F
  4850. #define   S_00B528_PRIORITY(x)                                        (((x) & 0x03) << 10)
  4851. #define   G_00B528_PRIORITY(x)                                        (((x) >> 10) & 0x03)
  4852. #define   C_00B528_PRIORITY                                           0xFFFFF3FF
  4853. #define   S_00B528_FLOAT_MODE(x)                                      (((x) & 0xFF) << 12)
  4854. #define   G_00B528_FLOAT_MODE(x)                                      (((x) >> 12) & 0xFF)
  4855. #define   C_00B528_FLOAT_MODE                                         0xFFF00FFF
  4856. #define   S_00B528_PRIV(x)                                            (((x) & 0x1) << 20)
  4857. #define   G_00B528_PRIV(x)                                            (((x) >> 20) & 0x1)
  4858. #define   C_00B528_PRIV                                               0xFFEFFFFF
  4859. #define   S_00B528_DX10_CLAMP(x)                                      (((x) & 0x1) << 21)
  4860. #define   G_00B528_DX10_CLAMP(x)                                      (((x) >> 21) & 0x1)
  4861. #define   C_00B528_DX10_CLAMP                                         0xFFDFFFFF
  4862. #define   S_00B528_DEBUG_MODE(x)                                      (((x) & 0x1) << 22)
  4863. #define   G_00B528_DEBUG_MODE(x)                                      (((x) >> 22) & 0x1)
  4864. #define   C_00B528_DEBUG_MODE                                         0xFFBFFFFF
  4865. #define   S_00B528_IEEE_MODE(x)                                       (((x) & 0x1) << 23)
  4866. #define   G_00B528_IEEE_MODE(x)                                       (((x) >> 23) & 0x1)
  4867. #define   C_00B528_IEEE_MODE                                          0xFF7FFFFF
  4868. #define   S_00B528_VGPR_COMP_CNT(x)                                   (((x) & 0x03) << 24)
  4869. #define   G_00B528_VGPR_COMP_CNT(x)                                   (((x) >> 24) & 0x03)
  4870. #define   C_00B528_VGPR_COMP_CNT                                      0xFCFFFFFF
  4871. /* CIK */
  4872. #define   S_00B528_CACHE_CTL(x)                                       (((x) & 0x07) << 26)
  4873. #define   G_00B528_CACHE_CTL(x)                                       (((x) >> 26) & 0x07)
  4874. #define   C_00B528_CACHE_CTL                                          0xE3FFFFFF
  4875. #define   S_00B528_CDBG_USER(x)                                       (((x) & 0x1) << 29)
  4876. #define   G_00B528_CDBG_USER(x)                                       (((x) >> 29) & 0x1)
  4877. #define   C_00B528_CDBG_USER                                          0xDFFFFFFF
  4878. /*     */
  4879. #define R_00B52C_SPI_SHADER_PGM_RSRC2_LS                                0x00B52C
  4880. #define   S_00B52C_SCRATCH_EN(x)                                      (((x) & 0x1) << 0)
  4881. #define   G_00B52C_SCRATCH_EN(x)                                      (((x) >> 0) & 0x1)
  4882. #define   C_00B52C_SCRATCH_EN                                         0xFFFFFFFE
  4883. #define   S_00B52C_USER_SGPR(x)                                       (((x) & 0x1F) << 1)
  4884. #define   G_00B52C_USER_SGPR(x)                                       (((x) >> 1) & 0x1F)
  4885. #define   C_00B52C_USER_SGPR                                          0xFFFFFFC1
  4886. #define   S_00B52C_LDS_SIZE(x)                                        (((x) & 0x1FF) << 7)
  4887. #define   G_00B52C_LDS_SIZE(x)                                        (((x) >> 7) & 0x1FF)
  4888. #define   C_00B52C_LDS_SIZE                                           0xFFFF007F
  4889. #define   S_00B52C_EXCP_EN(x)                                         (((x) & 0x7F) << 16) /* mask is 0x1FF on CIK */
  4890. #define   G_00B52C_EXCP_EN(x)                                         (((x) >> 16) & 0x7F) /* mask is 0x1FF on CIK */
  4891. #define   C_00B52C_EXCP_EN                                            0xFF80FFFF /* mask is 0x1FF on CIK */
  4892. #define R_00B530_SPI_SHADER_USER_DATA_LS_0                              0x00B530
  4893. #define R_00B800_COMPUTE_DISPATCH_INITIATOR                             0x00B800
  4894. #define   S_00B800_COMPUTE_SHADER_EN(x)                               (((x) & 0x1) << 0)
  4895. #define   G_00B800_COMPUTE_SHADER_EN(x)                               (((x) >> 0) & 0x1)
  4896. #define   C_00B800_COMPUTE_SHADER_EN                                  0xFFFFFFFE
  4897. #define   S_00B800_PARTIAL_TG_EN(x)                                   (((x) & 0x1) << 1)
  4898. #define   G_00B800_PARTIAL_TG_EN(x)                                   (((x) >> 1) & 0x1)
  4899. #define   C_00B800_PARTIAL_TG_EN                                      0xFFFFFFFD
  4900. #define   S_00B800_FORCE_START_AT_000(x)                              (((x) & 0x1) << 2)
  4901. #define   G_00B800_FORCE_START_AT_000(x)                              (((x) >> 2) & 0x1)
  4902. #define   C_00B800_FORCE_START_AT_000                                 0xFFFFFFFB
  4903. #define   S_00B800_ORDERED_APPEND_ENBL(x)                             (((x) & 0x1) << 3)
  4904. #define   G_00B800_ORDERED_APPEND_ENBL(x)                             (((x) >> 3) & 0x1)
  4905. #define   C_00B800_ORDERED_APPEND_ENBL                                0xFFFFFFF7
  4906. /* CIK */
  4907. #define   S_00B800_ORDERED_APPEND_MODE(x)                             (((x) & 0x1) << 4)
  4908. #define   G_00B800_ORDERED_APPEND_MODE(x)                             (((x) >> 4) & 0x1)
  4909. #define   C_00B800_ORDERED_APPEND_MODE                                0xFFFFFFEF
  4910. #define   S_00B800_USE_THREAD_DIMENSIONS(x)                           (((x) & 0x1) << 5)
  4911. #define   G_00B800_USE_THREAD_DIMENSIONS(x)                           (((x) >> 5) & 0x1)
  4912. #define   C_00B800_USE_THREAD_DIMENSIONS                              0xFFFFFFDF
  4913. #define   S_00B800_ORDER_MODE(x)                                      (((x) & 0x1) << 6)
  4914. #define   G_00B800_ORDER_MODE(x)                                      (((x) >> 6) & 0x1)
  4915. #define   C_00B800_ORDER_MODE                                         0xFFFFFFBF
  4916. #define   S_00B800_DISPATCH_CACHE_CNTL(x)                             (((x) & 0x07) << 7)
  4917. #define   G_00B800_DISPATCH_CACHE_CNTL(x)                             (((x) >> 7) & 0x07)
  4918. #define   C_00B800_DISPATCH_CACHE_CNTL                                0xFFFFFC7F
  4919. #define   S_00B800_SCALAR_L1_INV_VOL(x)                               (((x) & 0x1) << 10)
  4920. #define   G_00B800_SCALAR_L1_INV_VOL(x)                               (((x) >> 10) & 0x1)
  4921. #define   C_00B800_SCALAR_L1_INV_VOL                                  0xFFFFFBFF
  4922. #define   S_00B800_VECTOR_L1_INV_VOL(x)                               (((x) & 0x1) << 11)
  4923. #define   G_00B800_VECTOR_L1_INV_VOL(x)                               (((x) >> 11) & 0x1)
  4924. #define   C_00B800_VECTOR_L1_INV_VOL                                  0xFFFFF7FF
  4925. #define   S_00B800_DATA_ATC(x)                                        (((x) & 0x1) << 12)
  4926. #define   G_00B800_DATA_ATC(x)                                        (((x) >> 12) & 0x1)
  4927. #define   C_00B800_DATA_ATC                                           0xFFFFEFFF
  4928. #define   S_00B800_RESTORE(x)                                         (((x) & 0x1) << 14)
  4929. #define   G_00B800_RESTORE(x)                                         (((x) >> 14) & 0x1)
  4930. #define   C_00B800_RESTORE                                            0xFFFFBFFF
  4931. /*     */
  4932. #define R_00B804_COMPUTE_DIM_X                                          0x00B804
  4933. #define R_00B808_COMPUTE_DIM_Y                                          0x00B808
  4934. #define R_00B80C_COMPUTE_DIM_Z                                          0x00B80C
  4935. #define R_00B810_COMPUTE_START_X                                        0x00B810
  4936. #define R_00B814_COMPUTE_START_Y                                        0x00B814
  4937. #define R_00B818_COMPUTE_START_Z                                        0x00B818
  4938. #define R_00B81C_COMPUTE_NUM_THREAD_X                                   0x00B81C
  4939. #define   S_00B81C_NUM_THREAD_FULL(x)                                 (((x) & 0xFFFF) << 0)
  4940. #define   G_00B81C_NUM_THREAD_FULL(x)                                 (((x) >> 0) & 0xFFFF)
  4941. #define   C_00B81C_NUM_THREAD_FULL                                    0xFFFF0000
  4942. #define   S_00B81C_NUM_THREAD_PARTIAL(x)                              (((x) & 0xFFFF) << 16)
  4943. #define   G_00B81C_NUM_THREAD_PARTIAL(x)                              (((x) >> 16) & 0xFFFF)
  4944. #define   C_00B81C_NUM_THREAD_PARTIAL                                 0x0000FFFF
  4945. #define R_00B820_COMPUTE_NUM_THREAD_Y                                   0x00B820
  4946. #define   S_00B820_NUM_THREAD_FULL(x)                                 (((x) & 0xFFFF) << 0)
  4947. #define   G_00B820_NUM_THREAD_FULL(x)                                 (((x) >> 0) & 0xFFFF)
  4948. #define   C_00B820_NUM_THREAD_FULL                                    0xFFFF0000
  4949. #define   S_00B820_NUM_THREAD_PARTIAL(x)                              (((x) & 0xFFFF) << 16)
  4950. #define   G_00B820_NUM_THREAD_PARTIAL(x)                              (((x) >> 16) & 0xFFFF)
  4951. #define   C_00B820_NUM_THREAD_PARTIAL                                 0x0000FFFF
  4952. #define R_00B824_COMPUTE_NUM_THREAD_Z                                   0x00B824
  4953. #define   S_00B824_NUM_THREAD_FULL(x)                                 (((x) & 0xFFFF) << 0)
  4954. #define   G_00B824_NUM_THREAD_FULL(x)                                 (((x) >> 0) & 0xFFFF)
  4955. #define   C_00B824_NUM_THREAD_FULL                                    0xFFFF0000
  4956. #define   S_00B824_NUM_THREAD_PARTIAL(x)                              (((x) & 0xFFFF) << 16)
  4957. #define   G_00B824_NUM_THREAD_PARTIAL(x)                              (((x) >> 16) & 0xFFFF)
  4958. #define   C_00B824_NUM_THREAD_PARTIAL                                 0x0000FFFF
  4959. #define R_00B82C_COMPUTE_MAX_WAVE_ID                                    0x00B82C /* moved to 0xCD20 on CIK */
  4960. #define   S_00B82C_MAX_WAVE_ID(x)                                     (((x) & 0xFFF) << 0)
  4961. #define   G_00B82C_MAX_WAVE_ID(x)                                     (((x) >> 0) & 0xFFF)
  4962. #define   C_00B82C_MAX_WAVE_ID                                        0xFFFFF000
  4963. #define R_00B830_COMPUTE_PGM_LO                                         0x00B830
  4964. #define R_00B834_COMPUTE_PGM_HI                                         0x00B834
  4965. #define   S_00B834_DATA(x)                                            (((x) & 0xFF) << 0)
  4966. #define   G_00B834_DATA(x)                                            (((x) >> 0) & 0xFF)
  4967. #define   C_00B834_DATA                                               0xFFFFFF00
  4968. /* CIK */
  4969. #define   S_00B834_INST_ATC(x)                                        (((x) & 0x1) << 8)
  4970. #define   G_00B834_INST_ATC(x)                                        (((x) >> 8) & 0x1)
  4971. #define   C_00B834_INST_ATC                                           0xFFFFFEFF
  4972. /*     */
  4973. #define R_00B848_COMPUTE_PGM_RSRC1                                      0x00B848
  4974. #define   S_00B848_VGPRS(x)                                           (((x) & 0x3F) << 0)
  4975. #define   G_00B848_VGPRS(x)                                           (((x) >> 0) & 0x3F)
  4976. #define   C_00B848_VGPRS                                              0xFFFFFFC0
  4977. #define   S_00B848_SGPRS(x)                                           (((x) & 0x0F) << 6)
  4978. #define   G_00B848_SGPRS(x)                                           (((x) >> 6) & 0x0F)
  4979. #define   C_00B848_SGPRS                                              0xFFFFFC3F
  4980. #define   S_00B848_PRIORITY(x)                                        (((x) & 0x03) << 10)
  4981. #define   G_00B848_PRIORITY(x)                                        (((x) >> 10) & 0x03)
  4982. #define   C_00B848_PRIORITY                                           0xFFFFF3FF
  4983. #define   S_00B848_FLOAT_MODE(x)                                      (((x) & 0xFF) << 12)
  4984. #define   G_00B848_FLOAT_MODE(x)                                      (((x) >> 12) & 0xFF)
  4985. #define   C_00B848_FLOAT_MODE                                         0xFFF00FFF
  4986. #define   S_00B848_PRIV(x)                                            (((x) & 0x1) << 20)
  4987. #define   G_00B848_PRIV(x)                                            (((x) >> 20) & 0x1)
  4988. #define   C_00B848_PRIV                                               0xFFEFFFFF
  4989. #define   S_00B848_DX10_CLAMP(x)                                      (((x) & 0x1) << 21)
  4990. #define   G_00B848_DX10_CLAMP(x)                                      (((x) >> 21) & 0x1)
  4991. #define   C_00B848_DX10_CLAMP                                         0xFFDFFFFF
  4992. #define   S_00B848_DEBUG_MODE(x)                                      (((x) & 0x1) << 22)
  4993. #define   G_00B848_DEBUG_MODE(x)                                      (((x) >> 22) & 0x1)
  4994. #define   C_00B848_DEBUG_MODE                                         0xFFBFFFFF
  4995. #define   S_00B848_IEEE_MODE(x)                                       (((x) & 0x1) << 23)
  4996. #define   G_00B848_IEEE_MODE(x)                                       (((x) >> 23) & 0x1)
  4997. #define   C_00B848_IEEE_MODE                                          0xFF7FFFFF
  4998. /* CIK */
  4999. #define   S_00B848_BULKY(x)                                           (((x) & 0x1) << 24)
  5000. #define   G_00B848_BULKY(x)                                           (((x) >> 24) & 0x1)
  5001. #define   C_00B848_BULKY                                              0xFEFFFFFF
  5002. #define   S_00B848_CDBG_USER(x)                                       (((x) & 0x1) << 25)
  5003. #define   G_00B848_CDBG_USER(x)                                       (((x) >> 25) & 0x1)
  5004. #define   C_00B848_CDBG_USER                                          0xFDFFFFFF
  5005. /*     */
  5006. #define R_00B84C_COMPUTE_PGM_RSRC2                                      0x00B84C
  5007. #define   S_00B84C_SCRATCH_EN(x)                                      (((x) & 0x1) << 0)
  5008. #define   G_00B84C_SCRATCH_EN(x)                                      (((x) >> 0) & 0x1)
  5009. #define   C_00B84C_SCRATCH_EN                                         0xFFFFFFFE
  5010. #define   S_00B84C_USER_SGPR(x)                                       (((x) & 0x1F) << 1)
  5011. #define   G_00B84C_USER_SGPR(x)                                       (((x) >> 1) & 0x1F)
  5012. #define   C_00B84C_USER_SGPR                                          0xFFFFFFC1
  5013. #define   S_00B84C_TGID_X_EN(x)                                       (((x) & 0x1) << 7)
  5014. #define   G_00B84C_TGID_X_EN(x)                                       (((x) >> 7) & 0x1)
  5015. #define   C_00B84C_TGID_X_EN                                          0xFFFFFF7F
  5016. #define   S_00B84C_TGID_Y_EN(x)                                       (((x) & 0x1) << 8)
  5017. #define   G_00B84C_TGID_Y_EN(x)                                       (((x) >> 8) & 0x1)
  5018. #define   C_00B84C_TGID_Y_EN                                          0xFFFFFEFF
  5019. #define   S_00B84C_TGID_Z_EN(x)                                       (((x) & 0x1) << 9)
  5020. #define   G_00B84C_TGID_Z_EN(x)                                       (((x) >> 9) & 0x1)
  5021. #define   C_00B84C_TGID_Z_EN                                          0xFFFFFDFF
  5022. #define   S_00B84C_TG_SIZE_EN(x)                                      (((x) & 0x1) << 10)
  5023. #define   G_00B84C_TG_SIZE_EN(x)                                      (((x) >> 10) & 0x1)
  5024. #define   C_00B84C_TG_SIZE_EN                                         0xFFFFFBFF
  5025. #define   S_00B84C_TIDIG_COMP_CNT(x)                                  (((x) & 0x03) << 11)
  5026. #define   G_00B84C_TIDIG_COMP_CNT(x)                                  (((x) >> 11) & 0x03)
  5027. #define   C_00B84C_TIDIG_COMP_CNT                                     0xFFFFE7FF
  5028. /* CIK */
  5029. #define   S_00B84C_EXCP_EN_MSB(x)                                     (((x) & 0x03) << 13)
  5030. #define   G_00B84C_EXCP_EN_MSB(x)                                     (((x) >> 13) & 0x03)
  5031. #define   C_00B84C_EXCP_EN_MSB                                        0xFFFF9FFF
  5032. /*     */
  5033. #define   S_00B84C_LDS_SIZE(x)                                        (((x) & 0x1FF) << 15)
  5034. #define   G_00B84C_LDS_SIZE(x)                                        (((x) >> 15) & 0x1FF)
  5035. #define   C_00B84C_LDS_SIZE                                           0xFF007FFF
  5036. #define   S_00B84C_EXCP_EN(x)                                         (((x) & 0x7F) << 24)
  5037. #define   G_00B84C_EXCP_EN(x)                                         (((x) >> 24) & 0x7F)
  5038. #define   C_00B84C_EXCP_EN                                            0x80FFFFFF
  5039. #define R_00B854_COMPUTE_RESOURCE_LIMITS                                0x00B854
  5040. #define   S_00B854_WAVES_PER_SH(x)                                    (((x) & 0x3F) << 0) /* mask is 0x3FF on CIK */
  5041. #define   G_00B854_WAVES_PER_SH(x)                                    (((x) >> 0) & 0x3F) /* mask is 0x3FF on CIK */
  5042. #define   C_00B854_WAVES_PER_SH                                       0xFFFFFFC0 /* mask is 0x3FF on CIK */
  5043. #define   S_00B854_TG_PER_CU(x)                                       (((x) & 0x0F) << 12)
  5044. #define   G_00B854_TG_PER_CU(x)                                       (((x) >> 12) & 0x0F)
  5045. #define   C_00B854_TG_PER_CU                                          0xFFFF0FFF
  5046. #define   S_00B854_LOCK_THRESHOLD(x)                                  (((x) & 0x3F) << 16)
  5047. #define   G_00B854_LOCK_THRESHOLD(x)                                  (((x) >> 16) & 0x3F)
  5048. #define   C_00B854_LOCK_THRESHOLD                                     0xFFC0FFFF
  5049. #define   S_00B854_SIMD_DEST_CNTL(x)                                  (((x) & 0x1) << 22)
  5050. #define   G_00B854_SIMD_DEST_CNTL(x)                                  (((x) >> 22) & 0x1)
  5051. #define   C_00B854_SIMD_DEST_CNTL                                     0xFFBFFFFF
  5052. /* CIK */
  5053. #define   S_00B854_FORCE_SIMD_DIST(x)                                 (((x) & 0x1) << 23)
  5054. #define   G_00B854_FORCE_SIMD_DIST(x)                                 (((x) >> 23) & 0x1)
  5055. #define   C_00B854_FORCE_SIMD_DIST                                    0xFF7FFFFF
  5056. #define   S_00B854_CU_GROUP_COUNT(x)                                  (((x) & 0x07) << 24)
  5057. #define   G_00B854_CU_GROUP_COUNT(x)                                  (((x) >> 24) & 0x07)
  5058. #define   C_00B854_CU_GROUP_COUNT                                     0xF8FFFFFF
  5059. /*     */
  5060. #define R_00B858_COMPUTE_STATIC_THREAD_MGMT_SE0                         0x00B858
  5061. #define   S_00B858_SH0_CU_EN(x)                                       (((x) & 0xFFFF) << 0)
  5062. #define   G_00B858_SH0_CU_EN(x)                                       (((x) >> 0) & 0xFFFF)
  5063. #define   C_00B858_SH0_CU_EN                                          0xFFFF0000
  5064. #define   S_00B858_SH1_CU_EN(x)                                       (((x) & 0xFFFF) << 16)
  5065. #define   G_00B858_SH1_CU_EN(x)                                       (((x) >> 16) & 0xFFFF)
  5066. #define   C_00B858_SH1_CU_EN                                          0x0000FFFF
  5067. #define R_00B85C_COMPUTE_STATIC_THREAD_MGMT_SE1                         0x00B85C
  5068. #define   S_00B85C_SH0_CU_EN(x)                                       (((x) & 0xFFFF) << 0)
  5069. #define   G_00B85C_SH0_CU_EN(x)                                       (((x) >> 0) & 0xFFFF)
  5070. #define   C_00B85C_SH0_CU_EN                                          0xFFFF0000
  5071. #define   S_00B85C_SH1_CU_EN(x)                                       (((x) & 0xFFFF) << 16)
  5072. #define   G_00B85C_SH1_CU_EN(x)                                       (((x) >> 16) & 0xFFFF)
  5073. #define   C_00B85C_SH1_CU_EN                                          0x0000FFFF
  5074. #define R_00B860_COMPUTE_TMPRING_SIZE                                   0x00B860
  5075. #define   S_00B860_WAVES(x)                                           (((x) & 0xFFF) << 0)
  5076. #define   G_00B860_WAVES(x)                                           (((x) >> 0) & 0xFFF)
  5077. #define   C_00B860_WAVES                                              0xFFFFF000
  5078. #define   S_00B860_WAVESIZE(x)                                        (((x) & 0x1FFF) << 12)
  5079. #define   G_00B860_WAVESIZE(x)                                        (((x) >> 12) & 0x1FFF)
  5080. #define   C_00B860_WAVESIZE                                           0xFE000FFF
  5081. #define R_00B900_COMPUTE_USER_DATA_0                                    0x00B900
  5082. #define R_028000_DB_RENDER_CONTROL                                      0x028000
  5083. #define   S_028000_DEPTH_CLEAR_ENABLE(x)                              (((x) & 0x1) << 0)
  5084. #define   G_028000_DEPTH_CLEAR_ENABLE(x)                              (((x) >> 0) & 0x1)
  5085. #define   C_028000_DEPTH_CLEAR_ENABLE                                 0xFFFFFFFE
  5086. #define   S_028000_STENCIL_CLEAR_ENABLE(x)                            (((x) & 0x1) << 1)
  5087. #define   G_028000_STENCIL_CLEAR_ENABLE(x)                            (((x) >> 1) & 0x1)
  5088. #define   C_028000_STENCIL_CLEAR_ENABLE                               0xFFFFFFFD
  5089. #define   S_028000_DEPTH_COPY(x)                                      (((x) & 0x1) << 2)
  5090. #define   G_028000_DEPTH_COPY(x)                                      (((x) >> 2) & 0x1)
  5091. #define   C_028000_DEPTH_COPY                                         0xFFFFFFFB
  5092. #define   S_028000_STENCIL_COPY(x)                                    (((x) & 0x1) << 3)
  5093. #define   G_028000_STENCIL_COPY(x)                                    (((x) >> 3) & 0x1)
  5094. #define   C_028000_STENCIL_COPY                                       0xFFFFFFF7
  5095. #define   S_028000_RESUMMARIZE_ENABLE(x)                              (((x) & 0x1) << 4)
  5096. #define   G_028000_RESUMMARIZE_ENABLE(x)                              (((x) >> 4) & 0x1)
  5097. #define   C_028000_RESUMMARIZE_ENABLE                                 0xFFFFFFEF
  5098. #define   S_028000_STENCIL_COMPRESS_DISABLE(x)                        (((x) & 0x1) << 5)
  5099. #define   G_028000_STENCIL_COMPRESS_DISABLE(x)                        (((x) >> 5) & 0x1)
  5100. #define   C_028000_STENCIL_COMPRESS_DISABLE                           0xFFFFFFDF
  5101. #define   S_028000_DEPTH_COMPRESS_DISABLE(x)                          (((x) & 0x1) << 6)
  5102. #define   G_028000_DEPTH_COMPRESS_DISABLE(x)                          (((x) >> 6) & 0x1)
  5103. #define   C_028000_DEPTH_COMPRESS_DISABLE                             0xFFFFFFBF
  5104. #define   S_028000_COPY_CENTROID(x)                                   (((x) & 0x1) << 7)
  5105. #define   G_028000_COPY_CENTROID(x)                                   (((x) >> 7) & 0x1)
  5106. #define   C_028000_COPY_CENTROID                                      0xFFFFFF7F
  5107. #define   S_028000_COPY_SAMPLE(x)                                     (((x) & 0x0F) << 8)
  5108. #define   G_028000_COPY_SAMPLE(x)                                     (((x) >> 8) & 0x0F)
  5109. #define   C_028000_COPY_SAMPLE                                        0xFFFFF0FF
  5110. #define R_028004_DB_COUNT_CONTROL                                       0x028004
  5111. #define   S_028004_ZPASS_INCREMENT_DISABLE(x)                         (((x) & 0x1) << 0)
  5112. #define   G_028004_ZPASS_INCREMENT_DISABLE(x)                         (((x) >> 0) & 0x1)
  5113. #define   C_028004_ZPASS_INCREMENT_DISABLE                            0xFFFFFFFE
  5114. #define   S_028004_PERFECT_ZPASS_COUNTS(x)                            (((x) & 0x1) << 1)
  5115. #define   G_028004_PERFECT_ZPASS_COUNTS(x)                            (((x) >> 1) & 0x1)
  5116. #define   C_028004_PERFECT_ZPASS_COUNTS                               0xFFFFFFFD
  5117. #define   S_028004_SAMPLE_RATE(x)                                     (((x) & 0x07) << 4)
  5118. #define   G_028004_SAMPLE_RATE(x)                                     (((x) >> 4) & 0x07)
  5119. #define   C_028004_SAMPLE_RATE                                        0xFFFFFF8F
  5120. /* CIK */
  5121. #define   S_028004_ZPASS_ENABLE(x)                                    (((x) & 0x0F) << 8)
  5122. #define   G_028004_ZPASS_ENABLE(x)                                    (((x) >> 8) & 0x0F)
  5123. #define   C_028004_ZPASS_ENABLE                                       0xFFFFF0FF
  5124. #define   S_028004_ZFAIL_ENABLE(x)                                    (((x) & 0x0F) << 12)
  5125. #define   G_028004_ZFAIL_ENABLE(x)                                    (((x) >> 12) & 0x0F)
  5126. #define   C_028004_ZFAIL_ENABLE                                       0xFFFF0FFF
  5127. #define   S_028004_SFAIL_ENABLE(x)                                    (((x) & 0x0F) << 16)
  5128. #define   G_028004_SFAIL_ENABLE(x)                                    (((x) >> 16) & 0x0F)
  5129. #define   C_028004_SFAIL_ENABLE                                       0xFFF0FFFF
  5130. #define   S_028004_DBFAIL_ENABLE(x)                                   (((x) & 0x0F) << 20)
  5131. #define   G_028004_DBFAIL_ENABLE(x)                                   (((x) >> 20) & 0x0F)
  5132. #define   C_028004_DBFAIL_ENABLE                                      0xFF0FFFFF
  5133. #define   S_028004_SLICE_EVEN_ENABLE(x)                               (((x) & 0x0F) << 24)
  5134. #define   G_028004_SLICE_EVEN_ENABLE(x)                               (((x) >> 24) & 0x0F)
  5135. #define   C_028004_SLICE_EVEN_ENABLE                                  0xF0FFFFFF
  5136. #define   S_028004_SLICE_ODD_ENABLE(x)                                (((x) & 0x0F) << 28)
  5137. #define   G_028004_SLICE_ODD_ENABLE(x)                                (((x) >> 28) & 0x0F)
  5138. #define   C_028004_SLICE_ODD_ENABLE                                   0x0FFFFFFF
  5139. /*     */
  5140. #define R_028008_DB_DEPTH_VIEW                                          0x028008
  5141. #define   S_028008_SLICE_START(x)                                     (((x) & 0x7FF) << 0)
  5142. #define   G_028008_SLICE_START(x)                                     (((x) >> 0) & 0x7FF)
  5143. #define   C_028008_SLICE_START                                        0xFFFFF800
  5144. #define   S_028008_SLICE_MAX(x)                                       (((x) & 0x7FF) << 13)
  5145. #define   G_028008_SLICE_MAX(x)                                       (((x) >> 13) & 0x7FF)
  5146. #define   C_028008_SLICE_MAX                                          0xFF001FFF
  5147. #define   S_028008_Z_READ_ONLY(x)                                     (((x) & 0x1) << 24)
  5148. #define   G_028008_Z_READ_ONLY(x)                                     (((x) >> 24) & 0x1)
  5149. #define   C_028008_Z_READ_ONLY                                        0xFEFFFFFF
  5150. #define   S_028008_STENCIL_READ_ONLY(x)                               (((x) & 0x1) << 25)
  5151. #define   G_028008_STENCIL_READ_ONLY(x)                               (((x) >> 25) & 0x1)
  5152. #define   C_028008_STENCIL_READ_ONLY                                  0xFDFFFFFF
  5153. #define R_02800C_DB_RENDER_OVERRIDE                                     0x02800C
  5154. #define   S_02800C_FORCE_HIZ_ENABLE(x)                                (((x) & 0x03) << 0)
  5155. #define   G_02800C_FORCE_HIZ_ENABLE(x)                                (((x) >> 0) & 0x03)
  5156. #define   C_02800C_FORCE_HIZ_ENABLE                                   0xFFFFFFFC
  5157. #define     V_02800C_FORCE_OFF                                      0x00
  5158. #define     V_02800C_FORCE_ENABLE                                   0x01
  5159. #define     V_02800C_FORCE_DISABLE                                  0x02
  5160. #define     V_02800C_FORCE_RESERVED                                 0x03
  5161. #define   S_02800C_FORCE_HIS_ENABLE0(x)                               (((x) & 0x03) << 2)
  5162. #define   G_02800C_FORCE_HIS_ENABLE0(x)                               (((x) >> 2) & 0x03)
  5163. #define   C_02800C_FORCE_HIS_ENABLE0                                  0xFFFFFFF3
  5164. #define     V_02800C_FORCE_OFF                                      0x00
  5165. #define     V_02800C_FORCE_ENABLE                                   0x01
  5166. #define     V_02800C_FORCE_DISABLE                                  0x02
  5167. #define     V_02800C_FORCE_RESERVED                                 0x03
  5168. #define   S_02800C_FORCE_HIS_ENABLE1(x)                               (((x) & 0x03) << 4)
  5169. #define   G_02800C_FORCE_HIS_ENABLE1(x)                               (((x) >> 4) & 0x03)
  5170. #define   C_02800C_FORCE_HIS_ENABLE1                                  0xFFFFFFCF
  5171. #define     V_02800C_FORCE_OFF                                      0x00
  5172. #define     V_02800C_FORCE_ENABLE                                   0x01
  5173. #define     V_02800C_FORCE_DISABLE                                  0x02
  5174. #define     V_02800C_FORCE_RESERVED                                 0x03
  5175. #define   S_02800C_FORCE_SHADER_Z_ORDER(x)                            (((x) & 0x1) << 6)
  5176. #define   G_02800C_FORCE_SHADER_Z_ORDER(x)                            (((x) >> 6) & 0x1)
  5177. #define   C_02800C_FORCE_SHADER_Z_ORDER                               0xFFFFFFBF
  5178. #define   S_02800C_FAST_Z_DISABLE(x)                                  (((x) & 0x1) << 7)
  5179. #define   G_02800C_FAST_Z_DISABLE(x)                                  (((x) >> 7) & 0x1)
  5180. #define   C_02800C_FAST_Z_DISABLE                                     0xFFFFFF7F
  5181. #define   S_02800C_FAST_STENCIL_DISABLE(x)                            (((x) & 0x1) << 8)
  5182. #define   G_02800C_FAST_STENCIL_DISABLE(x)                            (((x) >> 8) & 0x1)
  5183. #define   C_02800C_FAST_STENCIL_DISABLE                               0xFFFFFEFF
  5184. #define   S_02800C_NOOP_CULL_DISABLE(x)                               (((x) & 0x1) << 9)
  5185. #define   G_02800C_NOOP_CULL_DISABLE(x)                               (((x) >> 9) & 0x1)
  5186. #define   C_02800C_NOOP_CULL_DISABLE                                  0xFFFFFDFF
  5187. #define   S_02800C_FORCE_COLOR_KILL(x)                                (((x) & 0x1) << 10)
  5188. #define   G_02800C_FORCE_COLOR_KILL(x)                                (((x) >> 10) & 0x1)
  5189. #define   C_02800C_FORCE_COLOR_KILL                                   0xFFFFFBFF
  5190. #define   S_02800C_FORCE_Z_READ(x)                                    (((x) & 0x1) << 11)
  5191. #define   G_02800C_FORCE_Z_READ(x)                                    (((x) >> 11) & 0x1)
  5192. #define   C_02800C_FORCE_Z_READ                                       0xFFFFF7FF
  5193. #define   S_02800C_FORCE_STENCIL_READ(x)                              (((x) & 0x1) << 12)
  5194. #define   G_02800C_FORCE_STENCIL_READ(x)                              (((x) >> 12) & 0x1)
  5195. #define   C_02800C_FORCE_STENCIL_READ                                 0xFFFFEFFF
  5196. #define   S_02800C_FORCE_FULL_Z_RANGE(x)                              (((x) & 0x03) << 13)
  5197. #define   G_02800C_FORCE_FULL_Z_RANGE(x)                              (((x) >> 13) & 0x03)
  5198. #define   C_02800C_FORCE_FULL_Z_RANGE                                 0xFFFF9FFF
  5199. #define     V_02800C_FORCE_OFF                                      0x00
  5200. #define     V_02800C_FORCE_ENABLE                                   0x01
  5201. #define     V_02800C_FORCE_DISABLE                                  0x02
  5202. #define     V_02800C_FORCE_RESERVED                                 0x03
  5203. #define   S_02800C_FORCE_QC_SMASK_CONFLICT(x)                         (((x) & 0x1) << 15)
  5204. #define   G_02800C_FORCE_QC_SMASK_CONFLICT(x)                         (((x) >> 15) & 0x1)
  5205. #define   C_02800C_FORCE_QC_SMASK_CONFLICT                            0xFFFF7FFF
  5206. #define   S_02800C_DISABLE_VIEWPORT_CLAMP(x)                          (((x) & 0x1) << 16)
  5207. #define   G_02800C_DISABLE_VIEWPORT_CLAMP(x)                          (((x) >> 16) & 0x1)
  5208. #define   C_02800C_DISABLE_VIEWPORT_CLAMP                             0xFFFEFFFF
  5209. #define   S_02800C_IGNORE_SC_ZRANGE(x)                                (((x) & 0x1) << 17)
  5210. #define   G_02800C_IGNORE_SC_ZRANGE(x)                                (((x) >> 17) & 0x1)
  5211. #define   C_02800C_IGNORE_SC_ZRANGE                                   0xFFFDFFFF
  5212. #define   S_02800C_DISABLE_FULLY_COVERED(x)                           (((x) & 0x1) << 18)
  5213. #define   G_02800C_DISABLE_FULLY_COVERED(x)                           (((x) >> 18) & 0x1)
  5214. #define   C_02800C_DISABLE_FULLY_COVERED                              0xFFFBFFFF
  5215. #define   S_02800C_FORCE_Z_LIMIT_SUMM(x)                              (((x) & 0x03) << 19)
  5216. #define   G_02800C_FORCE_Z_LIMIT_SUMM(x)                              (((x) >> 19) & 0x03)
  5217. #define   C_02800C_FORCE_Z_LIMIT_SUMM                                 0xFFE7FFFF
  5218. #define     V_02800C_FORCE_SUMM_OFF                                 0x00
  5219. #define     V_02800C_FORCE_SUMM_MINZ                                0x01
  5220. #define     V_02800C_FORCE_SUMM_MAXZ                                0x02
  5221. #define     V_02800C_FORCE_SUMM_BOTH                                0x03
  5222. #define   S_02800C_MAX_TILES_IN_DTT(x)                                (((x) & 0x1F) << 21)
  5223. #define   G_02800C_MAX_TILES_IN_DTT(x)                                (((x) >> 21) & 0x1F)
  5224. #define   C_02800C_MAX_TILES_IN_DTT                                   0xFC1FFFFF
  5225. #define   S_02800C_DISABLE_TILE_RATE_TILES(x)                         (((x) & 0x1) << 26)
  5226. #define   G_02800C_DISABLE_TILE_RATE_TILES(x)                         (((x) >> 26) & 0x1)
  5227. #define   C_02800C_DISABLE_TILE_RATE_TILES                            0xFBFFFFFF
  5228. #define   S_02800C_FORCE_Z_DIRTY(x)                                   (((x) & 0x1) << 27)
  5229. #define   G_02800C_FORCE_Z_DIRTY(x)                                   (((x) >> 27) & 0x1)
  5230. #define   C_02800C_FORCE_Z_DIRTY                                      0xF7FFFFFF
  5231. #define   S_02800C_FORCE_STENCIL_DIRTY(x)                             (((x) & 0x1) << 28)
  5232. #define   G_02800C_FORCE_STENCIL_DIRTY(x)                             (((x) >> 28) & 0x1)
  5233. #define   C_02800C_FORCE_STENCIL_DIRTY                                0xEFFFFFFF
  5234. #define   S_02800C_FORCE_Z_VALID(x)                                   (((x) & 0x1) << 29)
  5235. #define   G_02800C_FORCE_Z_VALID(x)                                   (((x) >> 29) & 0x1)
  5236. #define   C_02800C_FORCE_Z_VALID                                      0xDFFFFFFF
  5237. #define   S_02800C_FORCE_STENCIL_VALID(x)                             (((x) & 0x1) << 30)
  5238. #define   G_02800C_FORCE_STENCIL_VALID(x)                             (((x) >> 30) & 0x1)
  5239. #define   C_02800C_FORCE_STENCIL_VALID                                0xBFFFFFFF
  5240. #define   S_02800C_PRESERVE_COMPRESSION(x)                            (((x) & 0x1) << 31)
  5241. #define   G_02800C_PRESERVE_COMPRESSION(x)                            (((x) >> 31) & 0x1)
  5242. #define   C_02800C_PRESERVE_COMPRESSION                               0x7FFFFFFF
  5243. #define R_028010_DB_RENDER_OVERRIDE2                                    0x028010
  5244. #define   S_028010_PARTIAL_SQUAD_LAUNCH_CONTROL(x)                    (((x) & 0x03) << 0)
  5245. #define   G_028010_PARTIAL_SQUAD_LAUNCH_CONTROL(x)                    (((x) >> 0) & 0x03)
  5246. #define   C_028010_PARTIAL_SQUAD_LAUNCH_CONTROL                       0xFFFFFFFC
  5247. #define     V_028010_PSLC_AUTO                                      0x00
  5248. #define     V_028010_PSLC_ON_HANG_ONLY                              0x01
  5249. #define     V_028010_PSLC_ASAP                                      0x02
  5250. #define     V_028010_PSLC_COUNTDOWN                                 0x03
  5251. #define   S_028010_PARTIAL_SQUAD_LAUNCH_COUNTDOWN(x)                  (((x) & 0x07) << 2)
  5252. #define   G_028010_PARTIAL_SQUAD_LAUNCH_COUNTDOWN(x)                  (((x) >> 2) & 0x07)
  5253. #define   C_028010_PARTIAL_SQUAD_LAUNCH_COUNTDOWN                     0xFFFFFFE3
  5254. #define   S_028010_DISABLE_ZMASK_EXPCLEAR_OPTIMIZATION(x)             (((x) & 0x1) << 5)
  5255. #define   G_028010_DISABLE_ZMASK_EXPCLEAR_OPTIMIZATION(x)             (((x) >> 5) & 0x1)
  5256. #define   C_028010_DISABLE_ZMASK_EXPCLEAR_OPTIMIZATION                0xFFFFFFDF
  5257. #define   S_028010_DISABLE_SMEM_EXPCLEAR_OPTIMIZATION(x)              (((x) & 0x1) << 6)
  5258. #define   G_028010_DISABLE_SMEM_EXPCLEAR_OPTIMIZATION(x)              (((x) >> 6) & 0x1)
  5259. #define   C_028010_DISABLE_SMEM_EXPCLEAR_OPTIMIZATION                 0xFFFFFFBF
  5260. #define   S_028010_DISABLE_COLOR_ON_VALIDATION(x)                     (((x) & 0x1) << 7)
  5261. #define   G_028010_DISABLE_COLOR_ON_VALIDATION(x)                     (((x) >> 7) & 0x1)
  5262. #define   C_028010_DISABLE_COLOR_ON_VALIDATION                        0xFFFFFF7F
  5263. #define   S_028010_DECOMPRESS_Z_ON_FLUSH(x)                           (((x) & 0x1) << 8)
  5264. #define   G_028010_DECOMPRESS_Z_ON_FLUSH(x)                           (((x) >> 8) & 0x1)
  5265. #define   C_028010_DECOMPRESS_Z_ON_FLUSH                              0xFFFFFEFF
  5266. #define   S_028010_DISABLE_REG_SNOOP(x)                               (((x) & 0x1) << 9)
  5267. #define   G_028010_DISABLE_REG_SNOOP(x)                               (((x) >> 9) & 0x1)
  5268. #define   C_028010_DISABLE_REG_SNOOP                                  0xFFFFFDFF
  5269. #define   S_028010_DEPTH_BOUNDS_HIER_DEPTH_DISABLE(x)                 (((x) & 0x1) << 10)
  5270. #define   G_028010_DEPTH_BOUNDS_HIER_DEPTH_DISABLE(x)                 (((x) >> 10) & 0x1)
  5271. #define   C_028010_DEPTH_BOUNDS_HIER_DEPTH_DISABLE                    0xFFFFFBFF
  5272. /* CIK */
  5273. #define   S_028010_SEPARATE_HIZS_FUNC_ENABLE(x)                       (((x) & 0x1) << 11)
  5274. #define   G_028010_SEPARATE_HIZS_FUNC_ENABLE(x)                       (((x) >> 11) & 0x1)
  5275. #define   C_028010_SEPARATE_HIZS_FUNC_ENABLE                          0xFFFFF7FF
  5276. #define   S_028010_HIZ_ZFUNC(x)                                       (((x) & 0x07) << 12)
  5277. #define   G_028010_HIZ_ZFUNC(x)                                       (((x) >> 12) & 0x07)
  5278. #define   C_028010_HIZ_ZFUNC                                          0xFFFF8FFF
  5279. #define   S_028010_HIS_SFUNC_FF(x)                                    (((x) & 0x07) << 15)
  5280. #define   G_028010_HIS_SFUNC_FF(x)                                    (((x) >> 15) & 0x07)
  5281. #define   C_028010_HIS_SFUNC_FF                                       0xFFFC7FFF
  5282. #define   S_028010_HIS_SFUNC_BF(x)                                    (((x) & 0x07) << 18)
  5283. #define   G_028010_HIS_SFUNC_BF(x)                                    (((x) >> 18) & 0x07)
  5284. #define   C_028010_HIS_SFUNC_BF                                       0xFFE3FFFF
  5285. #define   S_028010_PRESERVE_ZRANGE(x)                                 (((x) & 0x1) << 21)
  5286. #define   G_028010_PRESERVE_ZRANGE(x)                                 (((x) >> 21) & 0x1)
  5287. #define   C_028010_PRESERVE_ZRANGE                                    0xFFDFFFFF
  5288. #define   S_028010_PRESERVE_SRESULTS(x)                               (((x) & 0x1) << 22)
  5289. #define   G_028010_PRESERVE_SRESULTS(x)                               (((x) >> 22) & 0x1)
  5290. #define   C_028010_PRESERVE_SRESULTS                                  0xFFBFFFFF
  5291. #define   S_028010_DISABLE_FAST_PASS(x)                               (((x) & 0x1) << 23)
  5292. #define   G_028010_DISABLE_FAST_PASS(x)                               (((x) >> 23) & 0x1)
  5293. #define   C_028010_DISABLE_FAST_PASS                                  0xFF7FFFFF
  5294. /*     */
  5295. #define R_028014_DB_HTILE_DATA_BASE                                     0x028014
  5296. #define R_028020_DB_DEPTH_BOUNDS_MIN                                    0x028020
  5297. #define R_028024_DB_DEPTH_BOUNDS_MAX                                    0x028024
  5298. #define R_028028_DB_STENCIL_CLEAR                                       0x028028
  5299. #define   S_028028_CLEAR(x)                                           (((x) & 0xFF) << 0)
  5300. #define   G_028028_CLEAR(x)                                           (((x) >> 0) & 0xFF)
  5301. #define   C_028028_CLEAR                                              0xFFFFFF00
  5302. #define R_02802C_DB_DEPTH_CLEAR                                         0x02802C
  5303. #define R_028030_PA_SC_SCREEN_SCISSOR_TL                                0x028030
  5304. #define   S_028030_TL_X(x)                                            (((x) & 0xFFFF) << 0)
  5305. #define   G_028030_TL_X(x)                                            (((x) >> 0) & 0xFFFF)
  5306. #define   C_028030_TL_X                                               0xFFFF0000
  5307. #define   S_028030_TL_Y(x)                                            (((x) & 0xFFFF) << 16)
  5308. #define   G_028030_TL_Y(x)                                            (((x) >> 16) & 0xFFFF)
  5309. #define   C_028030_TL_Y                                               0x0000FFFF
  5310. #define R_028034_PA_SC_SCREEN_SCISSOR_BR                                0x028034
  5311. #define   S_028034_BR_X(x)                                            (((x) & 0xFFFF) << 0)
  5312. #define   G_028034_BR_X(x)                                            (((x) >> 0) & 0xFFFF)
  5313. #define   C_028034_BR_X                                               0xFFFF0000
  5314. #define   S_028034_BR_Y(x)                                            (((x) & 0xFFFF) << 16)
  5315. #define   G_028034_BR_Y(x)                                            (((x) >> 16) & 0xFFFF)
  5316. #define   C_028034_BR_Y                                               0x0000FFFF
  5317. #define R_02803C_DB_DEPTH_INFO                                          0x02803C
  5318. #define   S_02803C_ADDR5_SWIZZLE_MASK(x)                              (((x) & 0x0F) << 0)
  5319. #define   G_02803C_ADDR5_SWIZZLE_MASK(x)                              (((x) >> 0) & 0x0F)
  5320. #define   C_02803C_ADDR5_SWIZZLE_MASK                                 0xFFFFFFF0
  5321. /* CIK */
  5322. #define   S_02803C_ARRAY_MODE(x)                                      (((x) & 0x0F) << 4)
  5323. #define   G_02803C_ARRAY_MODE(x)                                      (((x) >> 4) & 0x0F)
  5324. #define   C_02803C_ARRAY_MODE                                         0xFFFFFF0F
  5325. #define     V_02803C_ARRAY_LINEAR_GENERAL                           0x00
  5326. #define     V_02803C_ARRAY_LINEAR_ALIGNED                           0x01
  5327. #define     V_02803C_ARRAY_1D_TILED_THIN1                           0x02
  5328. #define     V_02803C_ARRAY_2D_TILED_THIN1                           0x04
  5329. #define     V_02803C_ARRAY_PRT_TILED_THIN1                          0x05
  5330. #define     V_02803C_ARRAY_PRT_2D_TILED_THIN1                       0x06
  5331. #define   S_02803C_PIPE_CONFIG(x)                                     (((x) & 0x1F) << 8)
  5332. #define   G_02803C_PIPE_CONFIG(x)                                     (((x) >> 8) & 0x1F)
  5333. #define   C_02803C_PIPE_CONFIG                                        0xFFFFE0FF
  5334. #define     V_02803C_ADDR_SURF_P2                                   0x00
  5335. #define     V_02803C_X_ADDR_SURF_P4_8X16                            0x04
  5336. #define     V_02803C_X_ADDR_SURF_P4_16X16                           0x05
  5337. #define     V_02803C_X_ADDR_SURF_P4_16X32                           0x06
  5338. #define     V_02803C_X_ADDR_SURF_P4_32X32                           0x07
  5339. #define     V_02803C_X_ADDR_SURF_P8_16X16_8X16                      0x08
  5340. #define     V_02803C_X_ADDR_SURF_P8_16X32_8X16                      0x09
  5341. #define     V_02803C_X_ADDR_SURF_P8_32X32_8X16                      0x0A
  5342. #define     V_02803C_X_ADDR_SURF_P8_16X32_16X16                     0x0B
  5343. #define     V_02803C_X_ADDR_SURF_P8_32X32_16X16                     0x0C
  5344. #define     V_02803C_X_ADDR_SURF_P8_32X32_16X32                     0x0D
  5345. #define     V_02803C_X_ADDR_SURF_P8_32X64_32X32                     0x0E
  5346. #define   S_02803C_BANK_WIDTH(x)                                      (((x) & 0x03) << 13)
  5347. #define   G_02803C_BANK_WIDTH(x)                                      (((x) >> 13) & 0x03)
  5348. #define   C_02803C_BANK_WIDTH                                         0xFFFF9FFF
  5349. #define     V_02803C_ADDR_SURF_BANK_WIDTH_1                         0x00
  5350. #define     V_02803C_ADDR_SURF_BANK_WIDTH_2                         0x01
  5351. #define     V_02803C_ADDR_SURF_BANK_WIDTH_4                         0x02
  5352. #define     V_02803C_ADDR_SURF_BANK_WIDTH_8                         0x03
  5353. #define   S_02803C_BANK_HEIGHT(x)                                     (((x) & 0x03) << 15)
  5354. #define   G_02803C_BANK_HEIGHT(x)                                     (((x) >> 15) & 0x03)
  5355. #define   C_02803C_BANK_HEIGHT                                        0xFFFE7FFF
  5356. #define     V_02803C_ADDR_SURF_BANK_HEIGHT_1                        0x00
  5357. #define     V_02803C_ADDR_SURF_BANK_HEIGHT_2                        0x01
  5358. #define     V_02803C_ADDR_SURF_BANK_HEIGHT_4                        0x02
  5359. #define     V_02803C_ADDR_SURF_BANK_HEIGHT_8                        0x03
  5360. #define   S_02803C_MACRO_TILE_ASPECT(x)                               (((x) & 0x03) << 17)
  5361. #define   G_02803C_MACRO_TILE_ASPECT(x)                               (((x) >> 17) & 0x03)
  5362. #define   C_02803C_MACRO_TILE_ASPECT                                  0xFFF9FFFF
  5363. #define     V_02803C_ADDR_SURF_MACRO_ASPECT_1                       0x00
  5364. #define     V_02803C_ADDR_SURF_MACRO_ASPECT_2                       0x01
  5365. #define     V_02803C_ADDR_SURF_MACRO_ASPECT_4                       0x02
  5366. #define     V_02803C_ADDR_SURF_MACRO_ASPECT_8                       0x03
  5367. #define   S_02803C_NUM_BANKS(x)                                       (((x) & 0x03) << 19)
  5368. #define   G_02803C_NUM_BANKS(x)                                       (((x) >> 19) & 0x03)
  5369. #define   C_02803C_NUM_BANKS                                          0xFFE7FFFF
  5370. #define     V_02803C_ADDR_SURF_2_BANK                               0x00
  5371. #define     V_02803C_ADDR_SURF_4_BANK                               0x01
  5372. #define     V_02803C_ADDR_SURF_8_BANK                               0x02
  5373. #define     V_02803C_ADDR_SURF_16_BANK                              0x03
  5374. /*     */
  5375. #define R_028040_DB_Z_INFO                                              0x028040
  5376. #define   S_028040_FORMAT(x)                                          (((x) & 0x03) << 0)
  5377. #define   G_028040_FORMAT(x)                                          (((x) >> 0) & 0x03)
  5378. #define   C_028040_FORMAT                                             0xFFFFFFFC
  5379. #define     V_028040_Z_INVALID                                      0x00
  5380. #define     V_028040_Z_16                                           0x01
  5381. #define     V_028040_Z_24                                           0x02 /* deprecated */
  5382. #define     V_028040_Z_32_FLOAT                                     0x03
  5383. #define   S_028040_NUM_SAMPLES(x)                                     (((x) & 0x03) << 2)
  5384. #define   G_028040_NUM_SAMPLES(x)                                     (((x) >> 2) & 0x03)
  5385. #define   C_028040_NUM_SAMPLES                                        0xFFFFFFF3
  5386. #define   S_028040_TILE_MODE_INDEX(x)                                 (((x) & 0x07) << 20) /* not on CIK */
  5387. #define   G_028040_TILE_MODE_INDEX(x)                                 (((x) >> 20) & 0x07) /* not on CIK */
  5388. #define   C_028040_TILE_MODE_INDEX                                    0xFF8FFFFF /* not on CIK */
  5389. /* CIK */
  5390. #define   S_028040_TILE_SPLIT(x)                                      (((x) & 0x07) << 13)
  5391. #define   G_028040_TILE_SPLIT(x)                                      (((x) >> 13) & 0x07)
  5392. #define   C_028040_TILE_SPLIT                                         0xFFFF1FFF
  5393. #define     V_028040_ADDR_SURF_TILE_SPLIT_64B                       0x00
  5394. #define     V_028040_ADDR_SURF_TILE_SPLIT_128B                      0x01
  5395. #define     V_028040_ADDR_SURF_TILE_SPLIT_256B                      0x02
  5396. #define     V_028040_ADDR_SURF_TILE_SPLIT_512B                      0x03
  5397. #define     V_028040_ADDR_SURF_TILE_SPLIT_1KB                       0x04
  5398. #define     V_028040_ADDR_SURF_TILE_SPLIT_2KB                       0x05
  5399. #define     V_028040_ADDR_SURF_TILE_SPLIT_4KB                       0x06
  5400. /*     */
  5401. #define   S_028040_ALLOW_EXPCLEAR(x)                                  (((x) & 0x1) << 27)
  5402. #define   G_028040_ALLOW_EXPCLEAR(x)                                  (((x) >> 27) & 0x1)
  5403. #define   C_028040_ALLOW_EXPCLEAR                                     0xF7FFFFFF
  5404. #define   S_028040_READ_SIZE(x)                                       (((x) & 0x1) << 28)
  5405. #define   G_028040_READ_SIZE(x)                                       (((x) >> 28) & 0x1)
  5406. #define   C_028040_READ_SIZE                                          0xEFFFFFFF
  5407. #define   S_028040_TILE_SURFACE_ENABLE(x)                             (((x) & 0x1) << 29)
  5408. #define   G_028040_TILE_SURFACE_ENABLE(x)                             (((x) >> 29) & 0x1)
  5409. #define   C_028040_TILE_SURFACE_ENABLE                                0xDFFFFFFF
  5410. #define   S_028040_ZRANGE_PRECISION(x)                                (((x) & 0x1) << 31)
  5411. #define   G_028040_ZRANGE_PRECISION(x)                                (((x) >> 31) & 0x1)
  5412. #define   C_028040_ZRANGE_PRECISION                                   0x7FFFFFFF
  5413. #define R_028044_DB_STENCIL_INFO                                        0x028044
  5414. #define   S_028044_FORMAT(x)                                          (((x) & 0x1) << 0)
  5415. #define   G_028044_FORMAT(x)                                          (((x) >> 0) & 0x1)
  5416. #define   C_028044_FORMAT                                             0xFFFFFFFE
  5417. #define     V_028044_STENCIL_INVALID                                0x00
  5418. #define     V_028044_STENCIL_8                                      0x01
  5419. #define   S_028044_TILE_MODE_INDEX(x)                                 (((x) & 0x07) << 20) /* not on CIK */
  5420. #define   G_028044_TILE_MODE_INDEX(x)                                 (((x) >> 20) & 0x07) /* not on CIK */
  5421. #define   C_028044_TILE_MODE_INDEX                                    0xFF8FFFFF /* not on CIK */
  5422. /* CIK */
  5423. #define   S_028044_TILE_SPLIT(x)                                      (((x) & 0x07) << 13)
  5424. #define   G_028044_TILE_SPLIT(x)                                      (((x) >> 13) & 0x07)
  5425. #define   C_028044_TILE_SPLIT                                         0xFFFF1FFF
  5426. #define     V_028044_ADDR_SURF_TILE_SPLIT_64B                       0x00
  5427. #define     V_028044_ADDR_SURF_TILE_SPLIT_128B                      0x01
  5428. #define     V_028044_ADDR_SURF_TILE_SPLIT_256B                      0x02
  5429. #define     V_028044_ADDR_SURF_TILE_SPLIT_512B                      0x03
  5430. #define     V_028044_ADDR_SURF_TILE_SPLIT_1KB                       0x04
  5431. #define     V_028044_ADDR_SURF_TILE_SPLIT_2KB                       0x05
  5432. #define     V_028044_ADDR_SURF_TILE_SPLIT_4KB                       0x06
  5433. /*     */
  5434. #define   S_028044_ALLOW_EXPCLEAR(x)                                  (((x) & 0x1) << 27)
  5435. #define   G_028044_ALLOW_EXPCLEAR(x)                                  (((x) >> 27) & 0x1)
  5436. #define   C_028044_ALLOW_EXPCLEAR                                     0xF7FFFFFF
  5437. #define   S_028044_TILE_STENCIL_DISABLE(x)                            (((x) & 0x1) << 29)
  5438. #define   G_028044_TILE_STENCIL_DISABLE(x)                            (((x) >> 29) & 0x1)
  5439. #define   C_028044_TILE_STENCIL_DISABLE                               0xDFFFFFFF
  5440. #define R_028048_DB_Z_READ_BASE                                         0x028048
  5441. #define R_02804C_DB_STENCIL_READ_BASE                                   0x02804C
  5442. #define R_028050_DB_Z_WRITE_BASE                                        0x028050
  5443. #define R_028054_DB_STENCIL_WRITE_BASE                                  0x028054
  5444. #define R_028058_DB_DEPTH_SIZE                                          0x028058
  5445. #define   S_028058_PITCH_TILE_MAX(x)                                  (((x) & 0x7FF) << 0)
  5446. #define   G_028058_PITCH_TILE_MAX(x)                                  (((x) >> 0) & 0x7FF)
  5447. #define   C_028058_PITCH_TILE_MAX                                     0xFFFFF800
  5448. #define   S_028058_HEIGHT_TILE_MAX(x)                                 (((x) & 0x7FF) << 11)
  5449. #define   G_028058_HEIGHT_TILE_MAX(x)                                 (((x) >> 11) & 0x7FF)
  5450. #define   C_028058_HEIGHT_TILE_MAX                                    0xFFC007FF
  5451. #define R_02805C_DB_DEPTH_SLICE                                         0x02805C
  5452. #define   S_02805C_SLICE_TILE_MAX(x)                                  (((x) & 0x3FFFFF) << 0)
  5453. #define   G_02805C_SLICE_TILE_MAX(x)                                  (((x) >> 0) & 0x3FFFFF)
  5454. #define   C_02805C_SLICE_TILE_MAX                                     0xFFC00000
  5455. #define R_028080_TA_BC_BASE_ADDR                                        0x028080
  5456. /* CIK */
  5457. #define R_028084_TA_BC_BASE_ADDR_HI                                     0x028084
  5458. #define   S_028084_ADDRESS(x)                                         (((x) & 0xFF) << 0)
  5459. #define   G_028084_ADDRESS(x)                                         (((x) >> 0) & 0xFF)
  5460. #define   C_028084_ADDRESS                                            0xFFFFFF00
  5461. /* */
  5462. #define R_028200_PA_SC_WINDOW_OFFSET                                    0x028200
  5463. #define   S_028200_WINDOW_X_OFFSET(x)                                 (((x) & 0xFFFF) << 0)
  5464. #define   G_028200_WINDOW_X_OFFSET(x)                                 (((x) >> 0) & 0xFFFF)
  5465. #define   C_028200_WINDOW_X_OFFSET                                    0xFFFF0000
  5466. #define   S_028200_WINDOW_Y_OFFSET(x)                                 (((x) & 0xFFFF) << 16)
  5467. #define   G_028200_WINDOW_Y_OFFSET(x)                                 (((x) >> 16) & 0xFFFF)
  5468. #define   C_028200_WINDOW_Y_OFFSET                                    0x0000FFFF
  5469. #define R_028204_PA_SC_WINDOW_SCISSOR_TL                                0x028204
  5470. #define   S_028204_TL_X(x)                                            (((x) & 0x7FFF) << 0)
  5471. #define   G_028204_TL_X(x)                                            (((x) >> 0) & 0x7FFF)
  5472. #define   C_028204_TL_X                                               0xFFFF8000
  5473. #define   S_028204_TL_Y(x)                                            (((x) & 0x7FFF) << 16)
  5474. #define   G_028204_TL_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5475. #define   C_028204_TL_Y                                               0x8000FFFF
  5476. #define   S_028204_WINDOW_OFFSET_DISABLE(x)                           (((x) & 0x1) << 31)
  5477. #define   G_028204_WINDOW_OFFSET_DISABLE(x)                           (((x) >> 31) & 0x1)
  5478. #define   C_028204_WINDOW_OFFSET_DISABLE                              0x7FFFFFFF
  5479. #define R_028208_PA_SC_WINDOW_SCISSOR_BR                                0x028208
  5480. #define   S_028208_BR_X(x)                                            (((x) & 0x7FFF) << 0)
  5481. #define   G_028208_BR_X(x)                                            (((x) >> 0) & 0x7FFF)
  5482. #define   C_028208_BR_X                                               0xFFFF8000
  5483. #define   S_028208_BR_Y(x)                                            (((x) & 0x7FFF) << 16)
  5484. #define   G_028208_BR_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5485. #define   C_028208_BR_Y                                               0x8000FFFF
  5486. #define R_02820C_PA_SC_CLIPRECT_RULE                                    0x02820C
  5487. #define   S_02820C_CLIP_RULE(x)                                       (((x) & 0xFFFF) << 0)
  5488. #define   G_02820C_CLIP_RULE(x)                                       (((x) >> 0) & 0xFFFF)
  5489. #define   C_02820C_CLIP_RULE                                          0xFFFF0000
  5490. #define R_028210_PA_SC_CLIPRECT_0_TL                                    0x028210
  5491. #define   S_028210_TL_X(x)                                            (((x) & 0x7FFF) << 0)
  5492. #define   G_028210_TL_X(x)                                            (((x) >> 0) & 0x7FFF)
  5493. #define   C_028210_TL_X                                               0xFFFF8000
  5494. #define   S_028210_TL_Y(x)                                            (((x) & 0x7FFF) << 16)
  5495. #define   G_028210_TL_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5496. #define   C_028210_TL_Y                                               0x8000FFFF
  5497. #define R_028214_PA_SC_CLIPRECT_0_BR                                    0x028214
  5498. #define   S_028214_BR_X(x)                                            (((x) & 0x7FFF) << 0)
  5499. #define   G_028214_BR_X(x)                                            (((x) >> 0) & 0x7FFF)
  5500. #define   C_028214_BR_X                                               0xFFFF8000
  5501. #define   S_028214_BR_Y(x)                                            (((x) & 0x7FFF) << 16)
  5502. #define   G_028214_BR_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5503. #define   C_028214_BR_Y                                               0x8000FFFF
  5504. #define R_028218_PA_SC_CLIPRECT_1_TL                                    0x028218
  5505. #define R_02821C_PA_SC_CLIPRECT_1_BR                                    0x02821C
  5506. #define R_028220_PA_SC_CLIPRECT_2_TL                                    0x028220
  5507. #define R_028224_PA_SC_CLIPRECT_2_BR                                    0x028224
  5508. #define R_028228_PA_SC_CLIPRECT_3_TL                                    0x028228
  5509. #define R_02822C_PA_SC_CLIPRECT_3_BR                                    0x02822C
  5510. #define R_028230_PA_SC_EDGERULE                                         0x028230
  5511. #define   S_028230_ER_TRI(x)                                          (((x) & 0x0F) << 0)
  5512. #define   G_028230_ER_TRI(x)                                          (((x) >> 0) & 0x0F)
  5513. #define   C_028230_ER_TRI                                             0xFFFFFFF0
  5514. #define   S_028230_ER_POINT(x)                                        (((x) & 0x0F) << 4)
  5515. #define   G_028230_ER_POINT(x)                                        (((x) >> 4) & 0x0F)
  5516. #define   C_028230_ER_POINT                                           0xFFFFFF0F
  5517. #define   S_028230_ER_RECT(x)                                         (((x) & 0x0F) << 8)
  5518. #define   G_028230_ER_RECT(x)                                         (((x) >> 8) & 0x0F)
  5519. #define   C_028230_ER_RECT                                            0xFFFFF0FF
  5520. #define   S_028230_ER_LINE_LR(x)                                      (((x) & 0x3F) << 12)
  5521. #define   G_028230_ER_LINE_LR(x)                                      (((x) >> 12) & 0x3F)
  5522. #define   C_028230_ER_LINE_LR                                         0xFFFC0FFF
  5523. #define   S_028230_ER_LINE_RL(x)                                      (((x) & 0x3F) << 18)
  5524. #define   G_028230_ER_LINE_RL(x)                                      (((x) >> 18) & 0x3F)
  5525. #define   C_028230_ER_LINE_RL                                         0xFF03FFFF
  5526. #define   S_028230_ER_LINE_TB(x)                                      (((x) & 0x0F) << 24)
  5527. #define   G_028230_ER_LINE_TB(x)                                      (((x) >> 24) & 0x0F)
  5528. #define   C_028230_ER_LINE_TB                                         0xF0FFFFFF
  5529. #define   S_028230_ER_LINE_BT(x)                                      (((x) & 0x0F) << 28)
  5530. #define   G_028230_ER_LINE_BT(x)                                      (((x) >> 28) & 0x0F)
  5531. #define   C_028230_ER_LINE_BT                                         0x0FFFFFFF
  5532. #define R_028234_PA_SU_HARDWARE_SCREEN_OFFSET                           0x028234
  5533. #define   S_028234_HW_SCREEN_OFFSET_X(x)                              (((x) & 0x1FF) << 0)
  5534. #define   G_028234_HW_SCREEN_OFFSET_X(x)                              (((x) >> 0) & 0x1FF)
  5535. #define   C_028234_HW_SCREEN_OFFSET_X                                 0xFFFFFE00
  5536. #define   S_028234_HW_SCREEN_OFFSET_Y(x)                              (((x) & 0x1FF) << 16)
  5537. #define   G_028234_HW_SCREEN_OFFSET_Y(x)                              (((x) >> 16) & 0x1FF)
  5538. #define   C_028234_HW_SCREEN_OFFSET_Y                                 0xFE00FFFF
  5539. #define R_028238_CB_TARGET_MASK                                         0x028238
  5540. #define   S_028238_TARGET0_ENABLE(x)                                  (((x) & 0x0F) << 0)
  5541. #define   G_028238_TARGET0_ENABLE(x)                                  (((x) >> 0) & 0x0F)
  5542. #define   C_028238_TARGET0_ENABLE                                     0xFFFFFFF0
  5543. #define   S_028238_TARGET1_ENABLE(x)                                  (((x) & 0x0F) << 4)
  5544. #define   G_028238_TARGET1_ENABLE(x)                                  (((x) >> 4) & 0x0F)
  5545. #define   C_028238_TARGET1_ENABLE                                     0xFFFFFF0F
  5546. #define   S_028238_TARGET2_ENABLE(x)                                  (((x) & 0x0F) << 8)
  5547. #define   G_028238_TARGET2_ENABLE(x)                                  (((x) >> 8) & 0x0F)
  5548. #define   C_028238_TARGET2_ENABLE                                     0xFFFFF0FF
  5549. #define   S_028238_TARGET3_ENABLE(x)                                  (((x) & 0x0F) << 12)
  5550. #define   G_028238_TARGET3_ENABLE(x)                                  (((x) >> 12) & 0x0F)
  5551. #define   C_028238_TARGET3_ENABLE                                     0xFFFF0FFF
  5552. #define   S_028238_TARGET4_ENABLE(x)                                  (((x) & 0x0F) << 16)
  5553. #define   G_028238_TARGET4_ENABLE(x)                                  (((x) >> 16) & 0x0F)
  5554. #define   C_028238_TARGET4_ENABLE                                     0xFFF0FFFF
  5555. #define   S_028238_TARGET5_ENABLE(x)                                  (((x) & 0x0F) << 20)
  5556. #define   G_028238_TARGET5_ENABLE(x)                                  (((x) >> 20) & 0x0F)
  5557. #define   C_028238_TARGET5_ENABLE                                     0xFF0FFFFF
  5558. #define   S_028238_TARGET6_ENABLE(x)                                  (((x) & 0x0F) << 24)
  5559. #define   G_028238_TARGET6_ENABLE(x)                                  (((x) >> 24) & 0x0F)
  5560. #define   C_028238_TARGET6_ENABLE                                     0xF0FFFFFF
  5561. #define   S_028238_TARGET7_ENABLE(x)                                  (((x) & 0x0F) << 28)
  5562. #define   G_028238_TARGET7_ENABLE(x)                                  (((x) >> 28) & 0x0F)
  5563. #define   C_028238_TARGET7_ENABLE                                     0x0FFFFFFF
  5564. #define R_02823C_CB_SHADER_MASK                                         0x02823C
  5565. #define   S_02823C_OUTPUT0_ENABLE(x)                                  (((x) & 0x0F) << 0)
  5566. #define   G_02823C_OUTPUT0_ENABLE(x)                                  (((x) >> 0) & 0x0F)
  5567. #define   C_02823C_OUTPUT0_ENABLE                                     0xFFFFFFF0
  5568. #define   S_02823C_OUTPUT1_ENABLE(x)                                  (((x) & 0x0F) << 4)
  5569. #define   G_02823C_OUTPUT1_ENABLE(x)                                  (((x) >> 4) & 0x0F)
  5570. #define   C_02823C_OUTPUT1_ENABLE                                     0xFFFFFF0F
  5571. #define   S_02823C_OUTPUT2_ENABLE(x)                                  (((x) & 0x0F) << 8)
  5572. #define   G_02823C_OUTPUT2_ENABLE(x)                                  (((x) >> 8) & 0x0F)
  5573. #define   C_02823C_OUTPUT2_ENABLE                                     0xFFFFF0FF
  5574. #define   S_02823C_OUTPUT3_ENABLE(x)                                  (((x) & 0x0F) << 12)
  5575. #define   G_02823C_OUTPUT3_ENABLE(x)                                  (((x) >> 12) & 0x0F)
  5576. #define   C_02823C_OUTPUT3_ENABLE                                     0xFFFF0FFF
  5577. #define   S_02823C_OUTPUT4_ENABLE(x)                                  (((x) & 0x0F) << 16)
  5578. #define   G_02823C_OUTPUT4_ENABLE(x)                                  (((x) >> 16) & 0x0F)
  5579. #define   C_02823C_OUTPUT4_ENABLE                                     0xFFF0FFFF
  5580. #define   S_02823C_OUTPUT5_ENABLE(x)                                  (((x) & 0x0F) << 20)
  5581. #define   G_02823C_OUTPUT5_ENABLE(x)                                  (((x) >> 20) & 0x0F)
  5582. #define   C_02823C_OUTPUT5_ENABLE                                     0xFF0FFFFF
  5583. #define   S_02823C_OUTPUT6_ENABLE(x)                                  (((x) & 0x0F) << 24)
  5584. #define   G_02823C_OUTPUT6_ENABLE(x)                                  (((x) >> 24) & 0x0F)
  5585. #define   C_02823C_OUTPUT6_ENABLE                                     0xF0FFFFFF
  5586. #define   S_02823C_OUTPUT7_ENABLE(x)                                  (((x) & 0x0F) << 28)
  5587. #define   G_02823C_OUTPUT7_ENABLE(x)                                  (((x) >> 28) & 0x0F)
  5588. #define   C_02823C_OUTPUT7_ENABLE                                     0x0FFFFFFF
  5589. #define R_028240_PA_SC_GENERIC_SCISSOR_TL                               0x028240
  5590. #define   S_028240_TL_X(x)                                            (((x) & 0x7FFF) << 0)
  5591. #define   G_028240_TL_X(x)                                            (((x) >> 0) & 0x7FFF)
  5592. #define   C_028240_TL_X                                               0xFFFF8000
  5593. #define   S_028240_TL_Y(x)                                            (((x) & 0x7FFF) << 16)
  5594. #define   G_028240_TL_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5595. #define   C_028240_TL_Y                                               0x8000FFFF
  5596. #define   S_028240_WINDOW_OFFSET_DISABLE(x)                           (((x) & 0x1) << 31)
  5597. #define   G_028240_WINDOW_OFFSET_DISABLE(x)                           (((x) >> 31) & 0x1)
  5598. #define   C_028240_WINDOW_OFFSET_DISABLE                              0x7FFFFFFF
  5599. #define R_028244_PA_SC_GENERIC_SCISSOR_BR                               0x028244
  5600. #define   S_028244_BR_X(x)                                            (((x) & 0x7FFF) << 0)
  5601. #define   G_028244_BR_X(x)                                            (((x) >> 0) & 0x7FFF)
  5602. #define   C_028244_BR_X                                               0xFFFF8000
  5603. #define   S_028244_BR_Y(x)                                            (((x) & 0x7FFF) << 16)
  5604. #define   G_028244_BR_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5605. #define   C_028244_BR_Y                                               0x8000FFFF
  5606. #define R_028250_PA_SC_VPORT_SCISSOR_0_TL                               0x028250
  5607. #define   S_028250_TL_X(x)                                            (((x) & 0x7FFF) << 0)
  5608. #define   G_028250_TL_X(x)                                            (((x) >> 0) & 0x7FFF)
  5609. #define   C_028250_TL_X                                               0xFFFF8000
  5610. #define   S_028250_TL_Y(x)                                            (((x) & 0x7FFF) << 16)
  5611. #define   G_028250_TL_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5612. #define   C_028250_TL_Y                                               0x8000FFFF
  5613. #define   S_028250_WINDOW_OFFSET_DISABLE(x)                           (((x) & 0x1) << 31)
  5614. #define   G_028250_WINDOW_OFFSET_DISABLE(x)                           (((x) >> 31) & 0x1)
  5615. #define   C_028250_WINDOW_OFFSET_DISABLE                              0x7FFFFFFF
  5616. #define R_028254_PA_SC_VPORT_SCISSOR_0_BR                               0x028254
  5617. #define   S_028254_BR_X(x)                                            (((x) & 0x7FFF) << 0)
  5618. #define   G_028254_BR_X(x)                                            (((x) >> 0) & 0x7FFF)
  5619. #define   C_028254_BR_X                                               0xFFFF8000
  5620. #define   S_028254_BR_Y(x)                                            (((x) & 0x7FFF) << 16)
  5621. #define   G_028254_BR_Y(x)                                            (((x) >> 16) & 0x7FFF)
  5622. #define   C_028254_BR_Y                                               0x8000FFFF
  5623. #define R_0282D0_PA_SC_VPORT_ZMIN_0                                     0x0282D0
  5624. #define R_0282D4_PA_SC_VPORT_ZMAX_0                                     0x0282D4
  5625. #define R_028350_PA_SC_RASTER_CONFIG                                    0x028350
  5626. #define   S_028350_RB_MAP_PKR0(x)                                     (((x) & 0x03) << 0)
  5627. #define   G_028350_RB_MAP_PKR0(x)                                     (((x) >> 0) & 0x03)
  5628. #define   C_028350_RB_MAP_PKR0                                        0xFFFFFFFC
  5629. #define     V_028350_RASTER_CONFIG_RB_MAP_0                         0x00
  5630. #define     V_028350_RASTER_CONFIG_RB_MAP_1                         0x01
  5631. #define     V_028350_RASTER_CONFIG_RB_MAP_2                         0x02
  5632. #define     V_028350_RASTER_CONFIG_RB_MAP_3                         0x03
  5633. #define   S_028350_RB_MAP_PKR1(x)                                     (((x) & 0x03) << 2)
  5634. #define   G_028350_RB_MAP_PKR1(x)                                     (((x) >> 2) & 0x03)
  5635. #define   C_028350_RB_MAP_PKR1                                        0xFFFFFFF3
  5636. #define     V_028350_RASTER_CONFIG_RB_MAP_0                         0x00
  5637. #define     V_028350_RASTER_CONFIG_RB_MAP_1                         0x01
  5638. #define     V_028350_RASTER_CONFIG_RB_MAP_2                         0x02
  5639. #define     V_028350_RASTER_CONFIG_RB_MAP_3                         0x03
  5640. #define   S_028350_RB_XSEL2(x)                                        (((x) & 0x03) << 4)
  5641. #define   G_028350_RB_XSEL2(x)                                        (((x) >> 4) & 0x03)
  5642. #define   C_028350_RB_XSEL2                                           0xFFFFFFCF
  5643. #define     V_028350_RASTER_CONFIG_RB_XSEL2_0                       0x00
  5644. #define     V_028350_RASTER_CONFIG_RB_XSEL2_1                       0x01
  5645. #define     V_028350_RASTER_CONFIG_RB_XSEL2_2                       0x02
  5646. #define     V_028350_RASTER_CONFIG_RB_XSEL2_3                       0x03
  5647. #define   S_028350_RB_XSEL(x)                                         (((x) & 0x1) << 6)
  5648. #define   G_028350_RB_XSEL(x)                                         (((x) >> 6) & 0x1)
  5649. #define   C_028350_RB_XSEL                                            0xFFFFFFBF
  5650. #define   S_028350_RB_YSEL(x)                                         (((x) & 0x1) << 7)
  5651. #define   G_028350_RB_YSEL(x)                                         (((x) >> 7) & 0x1)
  5652. #define   C_028350_RB_YSEL                                            0xFFFFFF7F
  5653. #define   S_028350_PKR_MAP(x)                                         (((x) & 0x03) << 8)
  5654. #define   G_028350_PKR_MAP(x)                                         (((x) >> 8) & 0x03)
  5655. #define   C_028350_PKR_MAP                                            0xFFFFFCFF
  5656. #define     V_028350_RASTER_CONFIG_PKR_MAP_0                        0x00
  5657. #define     V_028350_RASTER_CONFIG_PKR_MAP_1                        0x01
  5658. #define     V_028350_RASTER_CONFIG_PKR_MAP_2                        0x02
  5659. #define     V_028350_RASTER_CONFIG_PKR_MAP_3                        0x03
  5660. #define   S_028350_PKR_XSEL(x)                                        (((x) & 0x03) << 10)
  5661. #define   G_028350_PKR_XSEL(x)                                        (((x) >> 10) & 0x03)
  5662. #define   C_028350_PKR_XSEL                                           0xFFFFF3FF
  5663. #define     V_028350_RASTER_CONFIG_PKR_XSEL_0                       0x00
  5664. #define     V_028350_RASTER_CONFIG_PKR_XSEL_1                       0x01
  5665. #define     V_028350_RASTER_CONFIG_PKR_XSEL_2                       0x02
  5666. #define     V_028350_RASTER_CONFIG_PKR_XSEL_3                       0x03
  5667. #define   S_028350_PKR_YSEL(x)                                        (((x) & 0x03) << 12)
  5668. #define   G_028350_PKR_YSEL(x)                                        (((x) >> 12) & 0x03)
  5669. #define   C_028350_PKR_YSEL                                           0xFFFFCFFF
  5670. #define     V_028350_RASTER_CONFIG_PKR_YSEL_0                       0x00
  5671. #define     V_028350_RASTER_CONFIG_PKR_YSEL_1                       0x01
  5672. #define     V_028350_RASTER_CONFIG_PKR_YSEL_2                       0x02
  5673. #define     V_028350_RASTER_CONFIG_PKR_YSEL_3                       0x03
  5674. #define   S_028350_SC_MAP(x)                                          (((x) & 0x03) << 16)
  5675. #define   G_028350_SC_MAP(x)                                          (((x) >> 16) & 0x03)
  5676. #define   C_028350_SC_MAP                                             0xFFFCFFFF
  5677. #define     V_028350_RASTER_CONFIG_SC_MAP_0                         0x00
  5678. #define     V_028350_RASTER_CONFIG_SC_MAP_1                         0x01
  5679. #define     V_028350_RASTER_CONFIG_SC_MAP_2                         0x02
  5680. #define     V_028350_RASTER_CONFIG_SC_MAP_3                         0x03
  5681. #define   S_028350_SC_XSEL(x)                                         (((x) & 0x03) << 18)
  5682. #define   G_028350_SC_XSEL(x)                                         (((x) >> 18) & 0x03)
  5683. #define   C_028350_SC_XSEL                                            0xFFF3FFFF
  5684. #define     V_028350_RASTER_CONFIG_SC_XSEL_8_WIDE_TILE              0x00
  5685. #define     V_028350_RASTER_CONFIG_SC_XSEL_16_WIDE_TILE             0x01
  5686. #define     V_028350_RASTER_CONFIG_SC_XSEL_32_WIDE_TILE             0x02
  5687. #define     V_028350_RASTER_CONFIG_SC_XSEL_64_WIDE_TILE             0x03
  5688. #define   S_028350_SC_YSEL(x)                                         (((x) & 0x03) << 20)
  5689. #define   G_028350_SC_YSEL(x)                                         (((x) >> 20) & 0x03)
  5690. #define   C_028350_SC_YSEL                                            0xFFCFFFFF
  5691. #define     V_028350_RASTER_CONFIG_SC_YSEL_8_WIDE_TILE              0x00
  5692. #define     V_028350_RASTER_CONFIG_SC_YSEL_16_WIDE_TILE             0x01
  5693. #define     V_028350_RASTER_CONFIG_SC_YSEL_32_WIDE_TILE             0x02
  5694. #define     V_028350_RASTER_CONFIG_SC_YSEL_64_WIDE_TILE             0x03
  5695. #define   S_028350_SE_MAP(x)                                          (((x) & 0x03) << 24)
  5696. #define   G_028350_SE_MAP(x)                                          (((x) >> 24) & 0x03)
  5697. #define   C_028350_SE_MAP                                             0xFCFFFFFF
  5698. #define     V_028350_RASTER_CONFIG_SE_MAP_0                         0x00
  5699. #define     V_028350_RASTER_CONFIG_SE_MAP_1                         0x01
  5700. #define     V_028350_RASTER_CONFIG_SE_MAP_2                         0x02
  5701. #define     V_028350_RASTER_CONFIG_SE_MAP_3                         0x03
  5702. #define   S_028350_SE_XSEL(x)                                         (((x) & 0x03) << 26)
  5703. #define   G_028350_SE_XSEL(x)                                         (((x) >> 26) & 0x03)
  5704. #define   C_028350_SE_XSEL                                            0xF3FFFFFF
  5705. #define     V_028350_RASTER_CONFIG_SE_XSEL_8_WIDE_TILE              0x00
  5706. #define     V_028350_RASTER_CONFIG_SE_XSEL_16_WIDE_TILE             0x01
  5707. #define     V_028350_RASTER_CONFIG_SE_XSEL_32_WIDE_TILE             0x02
  5708. #define     V_028350_RASTER_CONFIG_SE_XSEL_64_WIDE_TILE             0x03
  5709. #define   S_028350_SE_YSEL(x)                                         (((x) & 0x03) << 28)
  5710. #define   G_028350_SE_YSEL(x)                                         (((x) >> 28) & 0x03)
  5711. #define   C_028350_SE_YSEL                                            0xCFFFFFFF
  5712. #define     V_028350_RASTER_CONFIG_SE_YSEL_8_WIDE_TILE              0x00
  5713. #define     V_028350_RASTER_CONFIG_SE_YSEL_16_WIDE_TILE             0x01
  5714. #define     V_028350_RASTER_CONFIG_SE_YSEL_32_WIDE_TILE             0x02
  5715. #define     V_028350_RASTER_CONFIG_SE_YSEL_64_WIDE_TILE             0x03
  5716. /* CIK */
  5717. #define R_028354_PA_SC_RASTER_CONFIG_1                                  0x028354
  5718. #define   S_028354_SE_PAIR_MAP(x)                                     (((x) & 0x03) << 0)
  5719. #define   G_028354_SE_PAIR_MAP(x)                                     (((x) >> 0) & 0x03)
  5720. #define   C_028354_SE_PAIR_MAP                                        0xFFFFFFFC
  5721. #define     V_028354_RASTER_CONFIG_SE_PAIR_MAP_0                    0x00
  5722. #define     V_028354_RASTER_CONFIG_SE_PAIR_MAP_1                    0x01
  5723. #define     V_028354_RASTER_CONFIG_SE_PAIR_MAP_2                    0x02
  5724. #define     V_028354_RASTER_CONFIG_SE_PAIR_MAP_3                    0x03
  5725. #define   S_028354_SE_PAIR_XSEL(x)                                    (((x) & 0x03) << 2)
  5726. #define   G_028354_SE_PAIR_XSEL(x)                                    (((x) >> 2) & 0x03)
  5727. #define   C_028354_SE_PAIR_XSEL                                       0xFFFFFFF3
  5728. #define     V_028354_RASTER_CONFIG_SE_PAIR_XSEL_8_WIDE_TILE         0x00
  5729. #define     V_028354_RASTER_CONFIG_SE_PAIR_XSEL_16_WIDE_TILE        0x01
  5730. #define     V_028354_RASTER_CONFIG_SE_PAIR_XSEL_32_WIDE_TILE        0x02
  5731. #define     V_028354_RASTER_CONFIG_SE_PAIR_XSEL_64_WIDE_TILE        0x03
  5732. #define   S_028354_SE_PAIR_YSEL(x)                                    (((x) & 0x03) << 4)
  5733. #define   G_028354_SE_PAIR_YSEL(x)                                    (((x) >> 4) & 0x03)
  5734. #define   C_028354_SE_PAIR_YSEL                                       0xFFFFFFCF
  5735. #define     V_028354_RASTER_CONFIG_SE_PAIR_YSEL_8_WIDE_TILE         0x00
  5736. #define     V_028354_RASTER_CONFIG_SE_PAIR_YSEL_16_WIDE_TILE        0x01
  5737. #define     V_028354_RASTER_CONFIG_SE_PAIR_YSEL_32_WIDE_TILE        0x02
  5738. #define     V_028354_RASTER_CONFIG_SE_PAIR_YSEL_64_WIDE_TILE        0x03
  5739. /*     */
  5740. #define R_028400_VGT_MAX_VTX_INDX                                       0x028400
  5741. #define R_028404_VGT_MIN_VTX_INDX                                       0x028404
  5742. #define R_028408_VGT_INDX_OFFSET                                        0x028408
  5743. #define R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX                           0x02840C
  5744. #define R_028414_CB_BLEND_RED                                           0x028414
  5745. #define R_028418_CB_BLEND_GREEN                                         0x028418
  5746. #define R_02841C_CB_BLEND_BLUE                                          0x02841C
  5747. #define R_028420_CB_BLEND_ALPHA                                         0x028420
  5748. #define R_02842C_DB_STENCIL_CONTROL                                     0x02842C
  5749. #define   S_02842C_STENCILFAIL(x)                                     (((x) & 0x0F) << 0)
  5750. #define   G_02842C_STENCILFAIL(x)                                     (((x) >> 0) & 0x0F)
  5751. #define   C_02842C_STENCILFAIL                                        0xFFFFFFF0
  5752. #define     V_02842C_STENCIL_KEEP                                   0x00
  5753. #define     V_02842C_STENCIL_ZERO                                   0x01
  5754. #define     V_02842C_STENCIL_ONES                                   0x02
  5755. #define     V_02842C_STENCIL_REPLACE_TEST                           0x03
  5756. #define     V_02842C_STENCIL_REPLACE_OP                             0x04
  5757. #define     V_02842C_STENCIL_ADD_CLAMP                              0x05
  5758. #define     V_02842C_STENCIL_SUB_CLAMP                              0x06
  5759. #define     V_02842C_STENCIL_INVERT                                 0x07
  5760. #define     V_02842C_STENCIL_ADD_WRAP                               0x08
  5761. #define     V_02842C_STENCIL_SUB_WRAP                               0x09
  5762. #define     V_02842C_STENCIL_AND                                    0x0A
  5763. #define     V_02842C_STENCIL_OR                                     0x0B
  5764. #define     V_02842C_STENCIL_XOR                                    0x0C
  5765. #define     V_02842C_STENCIL_NAND                                   0x0D
  5766. #define     V_02842C_STENCIL_NOR                                    0x0E
  5767. #define     V_02842C_STENCIL_XNOR                                   0x0F
  5768. #define   S_02842C_STENCILZPASS(x)                                    (((x) & 0x0F) << 4)
  5769. #define   G_02842C_STENCILZPASS(x)                                    (((x) >> 4) & 0x0F)
  5770. #define   C_02842C_STENCILZPASS                                       0xFFFFFF0F
  5771. #define     V_02842C_STENCIL_KEEP                                   0x00
  5772. #define     V_02842C_STENCIL_ZERO                                   0x01
  5773. #define     V_02842C_STENCIL_ONES                                   0x02
  5774. #define     V_02842C_STENCIL_REPLACE_TEST                           0x03
  5775. #define     V_02842C_STENCIL_REPLACE_OP                             0x04
  5776. #define     V_02842C_STENCIL_ADD_CLAMP                              0x05
  5777. #define     V_02842C_STENCIL_SUB_CLAMP                              0x06
  5778. #define     V_02842C_STENCIL_INVERT                                 0x07
  5779. #define     V_02842C_STENCIL_ADD_WRAP                               0x08
  5780. #define     V_02842C_STENCIL_SUB_WRAP                               0x09
  5781. #define     V_02842C_STENCIL_AND                                    0x0A
  5782. #define     V_02842C_STENCIL_OR                                     0x0B
  5783. #define     V_02842C_STENCIL_XOR                                    0x0C
  5784. #define     V_02842C_STENCIL_NAND                                   0x0D
  5785. #define     V_02842C_STENCIL_NOR                                    0x0E
  5786. #define     V_02842C_STENCIL_XNOR                                   0x0F
  5787. #define   S_02842C_STENCILZFAIL(x)                                    (((x) & 0x0F) << 8)
  5788. #define   G_02842C_STENCILZFAIL(x)                                    (((x) >> 8) & 0x0F)
  5789. #define   C_02842C_STENCILZFAIL                                       0xFFFFF0FF
  5790. #define     V_02842C_STENCIL_KEEP                                   0x00
  5791. #define     V_02842C_STENCIL_ZERO                                   0x01
  5792. #define     V_02842C_STENCIL_ONES                                   0x02
  5793. #define     V_02842C_STENCIL_REPLACE_TEST                           0x03
  5794. #define     V_02842C_STENCIL_REPLACE_OP                             0x04
  5795. #define     V_02842C_STENCIL_ADD_CLAMP                              0x05
  5796. #define     V_02842C_STENCIL_SUB_CLAMP                              0x06
  5797. #define     V_02842C_STENCIL_INVERT                                 0x07
  5798. #define     V_02842C_STENCIL_ADD_WRAP                               0x08
  5799. #define     V_02842C_STENCIL_SUB_WRAP                               0x09
  5800. #define     V_02842C_STENCIL_AND                                    0x0A
  5801. #define     V_02842C_STENCIL_OR                                     0x0B
  5802. #define     V_02842C_STENCIL_XOR                                    0x0C
  5803. #define     V_02842C_STENCIL_NAND                                   0x0D
  5804. #define     V_02842C_STENCIL_NOR                                    0x0E
  5805. #define     V_02842C_STENCIL_XNOR                                   0x0F
  5806. #define   S_02842C_STENCILFAIL_BF(x)                                  (((x) & 0x0F) << 12)
  5807. #define   G_02842C_STENCILFAIL_BF(x)                                  (((x) >> 12) & 0x0F)
  5808. #define   C_02842C_STENCILFAIL_BF                                     0xFFFF0FFF
  5809. #define     V_02842C_STENCIL_KEEP                                   0x00
  5810. #define     V_02842C_STENCIL_ZERO                                   0x01
  5811. #define     V_02842C_STENCIL_ONES                                   0x02
  5812. #define     V_02842C_STENCIL_REPLACE_TEST                           0x03
  5813. #define     V_02842C_STENCIL_REPLACE_OP                             0x04
  5814. #define     V_02842C_STENCIL_ADD_CLAMP                              0x05
  5815. #define     V_02842C_STENCIL_SUB_CLAMP                              0x06
  5816. #define     V_02842C_STENCIL_INVERT                                 0x07
  5817. #define     V_02842C_STENCIL_ADD_WRAP                               0x08
  5818. #define     V_02842C_STENCIL_SUB_WRAP                               0x09
  5819. #define     V_02842C_STENCIL_AND                                    0x0A
  5820. #define     V_02842C_STENCIL_OR                                     0x0B
  5821. #define     V_02842C_STENCIL_XOR                                    0x0C
  5822. #define     V_02842C_STENCIL_NAND                                   0x0D
  5823. #define     V_02842C_STENCIL_NOR                                    0x0E
  5824. #define     V_02842C_STENCIL_XNOR                                   0x0F
  5825. #define   S_02842C_STENCILZPASS_BF(x)                                 (((x) & 0x0F) << 16)
  5826. #define   G_02842C_STENCILZPASS_BF(x)                                 (((x) >> 16) & 0x0F)
  5827. #define   C_02842C_STENCILZPASS_BF                                    0xFFF0FFFF
  5828. #define     V_02842C_STENCIL_KEEP                                   0x00
  5829. #define     V_02842C_STENCIL_ZERO                                   0x01
  5830. #define     V_02842C_STENCIL_ONES                                   0x02
  5831. #define     V_02842C_STENCIL_REPLACE_TEST                           0x03
  5832. #define     V_02842C_STENCIL_REPLACE_OP                             0x04
  5833. #define     V_02842C_STENCIL_ADD_CLAMP                              0x05
  5834. #define     V_02842C_STENCIL_SUB_CLAMP                              0x06
  5835. #define     V_02842C_STENCIL_INVERT                                 0x07
  5836. #define     V_02842C_STENCIL_ADD_WRAP                               0x08
  5837. #define     V_02842C_STENCIL_SUB_WRAP                               0x09
  5838. #define     V_02842C_STENCIL_AND                                    0x0A
  5839. #define     V_02842C_STENCIL_OR                                     0x0B
  5840. #define     V_02842C_STENCIL_XOR                                    0x0C
  5841. #define     V_02842C_STENCIL_NAND                                   0x0D
  5842. #define     V_02842C_STENCIL_NOR                                    0x0E
  5843. #define     V_02842C_STENCIL_XNOR                                   0x0F
  5844. #define   S_02842C_STENCILZFAIL_BF(x)                                 (((x) & 0x0F) << 20)
  5845. #define   G_02842C_STENCILZFAIL_BF(x)                                 (((x) >> 20) & 0x0F)
  5846. #define   C_02842C_STENCILZFAIL_BF                                    0xFF0FFFFF
  5847. #define     V_02842C_STENCIL_KEEP                                   0x00
  5848. #define     V_02842C_STENCIL_ZERO                                   0x01
  5849. #define     V_02842C_STENCIL_ONES                                   0x02
  5850. #define     V_02842C_STENCIL_REPLACE_TEST                           0x03
  5851. #define     V_02842C_STENCIL_REPLACE_OP                             0x04
  5852. #define     V_02842C_STENCIL_ADD_CLAMP                              0x05
  5853. #define     V_02842C_STENCIL_SUB_CLAMP                              0x06
  5854. #define     V_02842C_STENCIL_INVERT                                 0x07
  5855. #define     V_02842C_STENCIL_ADD_WRAP                               0x08
  5856. #define     V_02842C_STENCIL_SUB_WRAP                               0x09
  5857. #define     V_02842C_STENCIL_AND                                    0x0A
  5858. #define     V_02842C_STENCIL_OR                                     0x0B
  5859. #define     V_02842C_STENCIL_XOR                                    0x0C
  5860. #define     V_02842C_STENCIL_NAND                                   0x0D
  5861. #define     V_02842C_STENCIL_NOR                                    0x0E
  5862. #define     V_02842C_STENCIL_XNOR                                   0x0F
  5863. #define R_028430_DB_STENCILREFMASK                                      0x028430
  5864. #define   S_028430_STENCILTESTVAL(x)                                  (((x) & 0xFF) << 0)
  5865. #define   G_028430_STENCILTESTVAL(x)                                  (((x) >> 0) & 0xFF)
  5866. #define   C_028430_STENCILTESTVAL                                     0xFFFFFF00
  5867. #define   S_028430_STENCILMASK(x)                                     (((x) & 0xFF) << 8)
  5868. #define   G_028430_STENCILMASK(x)                                     (((x) >> 8) & 0xFF)
  5869. #define   C_028430_STENCILMASK                                        0xFFFF00FF
  5870. #define   S_028430_STENCILWRITEMASK(x)                                (((x) & 0xFF) << 16)
  5871. #define   G_028430_STENCILWRITEMASK(x)                                (((x) >> 16) & 0xFF)
  5872. #define   C_028430_STENCILWRITEMASK                                   0xFF00FFFF
  5873. #define   S_028430_STENCILOPVAL(x)                                    (((x) & 0xFF) << 24)
  5874. #define   G_028430_STENCILOPVAL(x)                                    (((x) >> 24) & 0xFF)
  5875. #define   C_028430_STENCILOPVAL                                       0x00FFFFFF
  5876. #define R_028434_DB_STENCILREFMASK_BF                                   0x028434
  5877. #define   S_028434_STENCILTESTVAL_BF(x)                               (((x) & 0xFF) << 0)
  5878. #define   G_028434_STENCILTESTVAL_BF(x)                               (((x) >> 0) & 0xFF)
  5879. #define   C_028434_STENCILTESTVAL_BF                                  0xFFFFFF00
  5880. #define   S_028434_STENCILMASK_BF(x)                                  (((x) & 0xFF) << 8)
  5881. #define   G_028434_STENCILMASK_BF(x)                                  (((x) >> 8) & 0xFF)
  5882. #define   C_028434_STENCILMASK_BF                                     0xFFFF00FF
  5883. #define   S_028434_STENCILWRITEMASK_BF(x)                             (((x) & 0xFF) << 16)
  5884. #define   G_028434_STENCILWRITEMASK_BF(x)                             (((x) >> 16) & 0xFF)
  5885. #define   C_028434_STENCILWRITEMASK_BF                                0xFF00FFFF
  5886. #define   S_028434_STENCILOPVAL_BF(x)                                 (((x) & 0xFF) << 24)
  5887. #define   G_028434_STENCILOPVAL_BF(x)                                 (((x) >> 24) & 0xFF)
  5888. #define   C_028434_STENCILOPVAL_BF                                    0x00FFFFFF
  5889. #define R_02843C_PA_CL_VPORT_XSCALE_0                                   0x02843C
  5890. #define R_028440_PA_CL_VPORT_XOFFSET_0                                  0x028440
  5891. #define R_028444_PA_CL_VPORT_YSCALE_0                                   0x028444
  5892. #define R_028448_PA_CL_VPORT_YOFFSET_0                                  0x028448
  5893. #define R_02844C_PA_CL_VPORT_ZSCALE_0                                   0x02844C
  5894. #define R_028450_PA_CL_VPORT_ZOFFSET_0                                  0x028450
  5895. #define R_0285BC_PA_CL_UCP_0_X                                          0x0285BC
  5896. #define R_0285C0_PA_CL_UCP_0_Y                                          0x0285C0
  5897. #define R_0285C4_PA_CL_UCP_0_Z                                          0x0285C4
  5898. #define R_0285C8_PA_CL_UCP_0_W                                          0x0285C8
  5899. #define R_0285CC_PA_CL_UCP_1_X                                          0x0285CC
  5900. #define R_0285D0_PA_CL_UCP_1_Y                                          0x0285D0
  5901. #define R_0285D4_PA_CL_UCP_1_Z                                          0x0285D4
  5902. #define R_0285D8_PA_CL_UCP_1_W                                          0x0285D8
  5903. #define R_0285DC_PA_CL_UCP_2_X                                          0x0285DC
  5904. #define R_0285E0_PA_CL_UCP_2_Y                                          0x0285E0
  5905. #define R_0285E4_PA_CL_UCP_2_Z                                          0x0285E4
  5906. #define R_0285E8_PA_CL_UCP_2_W                                          0x0285E8
  5907. #define R_0285EC_PA_CL_UCP_3_X                                          0x0285EC
  5908. #define R_0285F0_PA_CL_UCP_3_Y                                          0x0285F0
  5909. #define R_0285F4_PA_CL_UCP_3_Z                                          0x0285F4
  5910. #define R_0285F8_PA_CL_UCP_3_W                                          0x0285F8
  5911. #define R_0285FC_PA_CL_UCP_4_X                                          0x0285FC
  5912. #define R_028600_PA_CL_UCP_4_Y                                          0x028600
  5913. #define R_028604_PA_CL_UCP_4_Z                                          0x028604
  5914. #define R_028608_PA_CL_UCP_4_W                                          0x028608
  5915. #define R_02860C_PA_CL_UCP_5_X                                          0x02860C
  5916. #define R_028610_PA_CL_UCP_5_Y                                          0x028610
  5917. #define R_028614_PA_CL_UCP_5_Z                                          0x028614
  5918. #define R_028618_PA_CL_UCP_5_W                                          0x028618
  5919. #define R_028644_SPI_PS_INPUT_CNTL_0                                    0x028644
  5920. #define   S_028644_OFFSET(x)                                          (((x) & 0x3F) << 0)
  5921. #define   G_028644_OFFSET(x)                                          (((x) >> 0) & 0x3F)
  5922. #define   C_028644_OFFSET                                             0xFFFFFFC0
  5923. #define   S_028644_DEFAULT_VAL(x)                                     (((x) & 0x03) << 8)
  5924. #define   G_028644_DEFAULT_VAL(x)                                     (((x) >> 8) & 0x03)
  5925. #define   C_028644_DEFAULT_VAL                                        0xFFFFFCFF
  5926. #define     V_028644_X_0_0F                                         0x00
  5927. #define   S_028644_FLAT_SHADE(x)                                      (((x) & 0x1) << 10)
  5928. #define   G_028644_FLAT_SHADE(x)                                      (((x) >> 10) & 0x1)
  5929. #define   C_028644_FLAT_SHADE                                         0xFFFFFBFF
  5930. #define   S_028644_CYL_WRAP(x)                                        (((x) & 0x0F) << 13)
  5931. #define   G_028644_CYL_WRAP(x)                                        (((x) >> 13) & 0x0F)
  5932. #define   C_028644_CYL_WRAP                                           0xFFFE1FFF
  5933. #define   S_028644_PT_SPRITE_TEX(x)                                   (((x) & 0x1) << 17)
  5934. #define   G_028644_PT_SPRITE_TEX(x)                                   (((x) >> 17) & 0x1)
  5935. #define   C_028644_PT_SPRITE_TEX                                      0xFFFDFFFF
  5936. /* CIK */
  5937. #define   S_028644_DUP(x)                                             (((x) & 0x1) << 18)
  5938. #define   G_028644_DUP(x)                                             (((x) >> 18) & 0x1)
  5939. #define   C_028644_DUP                                                0xFFFBFFFF
  5940. /*     */
  5941. #define R_028648_SPI_PS_INPUT_CNTL_1                                    0x028648
  5942. #define R_02864C_SPI_PS_INPUT_CNTL_2                                    0x02864C
  5943. #define R_028650_SPI_PS_INPUT_CNTL_3                                    0x028650
  5944. #define R_028654_SPI_PS_INPUT_CNTL_4                                    0x028654
  5945. #define R_028658_SPI_PS_INPUT_CNTL_5                                    0x028658
  5946. #define R_02865C_SPI_PS_INPUT_CNTL_6                                    0x02865C
  5947. #define R_028660_SPI_PS_INPUT_CNTL_7                                    0x028660
  5948. #define R_028664_SPI_PS_INPUT_CNTL_8                                    0x028664
  5949. #define R_028668_SPI_PS_INPUT_CNTL_9                                    0x028668
  5950. #define R_02866C_SPI_PS_INPUT_CNTL_10                                   0x02866C
  5951. #define R_028670_SPI_PS_INPUT_CNTL_11                                   0x028670
  5952. #define R_028674_SPI_PS_INPUT_CNTL_12                                   0x028674
  5953. #define R_028678_SPI_PS_INPUT_CNTL_13                                   0x028678
  5954. #define R_02867C_SPI_PS_INPUT_CNTL_14                                   0x02867C
  5955. #define R_028680_SPI_PS_INPUT_CNTL_15                                   0x028680
  5956. #define R_028684_SPI_PS_INPUT_CNTL_16                                   0x028684
  5957. #define R_028688_SPI_PS_INPUT_CNTL_17                                   0x028688
  5958. #define R_02868C_SPI_PS_INPUT_CNTL_18                                   0x02868C
  5959. #define R_028690_SPI_PS_INPUT_CNTL_19                                   0x028690
  5960. #define R_028694_SPI_PS_INPUT_CNTL_20                                   0x028694
  5961. #define R_028698_SPI_PS_INPUT_CNTL_21                                   0x028698
  5962. #define R_02869C_SPI_PS_INPUT_CNTL_22                                   0x02869C
  5963. #define R_0286A0_SPI_PS_INPUT_CNTL_23                                   0x0286A0
  5964. #define R_0286A4_SPI_PS_INPUT_CNTL_24                                   0x0286A4
  5965. #define R_0286A8_SPI_PS_INPUT_CNTL_25                                   0x0286A8
  5966. #define R_0286AC_SPI_PS_INPUT_CNTL_26                                   0x0286AC
  5967. #define R_0286B0_SPI_PS_INPUT_CNTL_27                                   0x0286B0
  5968. #define R_0286B4_SPI_PS_INPUT_CNTL_28                                   0x0286B4
  5969. #define R_0286B8_SPI_PS_INPUT_CNTL_29                                   0x0286B8
  5970. #define R_0286BC_SPI_PS_INPUT_CNTL_30                                   0x0286BC
  5971. #define R_0286C0_SPI_PS_INPUT_CNTL_31                                   0x0286C0
  5972. #define R_0286C4_SPI_VS_OUT_CONFIG                                      0x0286C4
  5973. #define   S_0286C4_VS_EXPORT_COUNT(x)                                 (((x) & 0x1F) << 1)
  5974. #define   G_0286C4_VS_EXPORT_COUNT(x)                                 (((x) >> 1) & 0x1F)
  5975. #define   C_0286C4_VS_EXPORT_COUNT                                    0xFFFFFFC1
  5976. #define   S_0286C4_VS_HALF_PACK(x)                                    (((x) & 0x1) << 6)
  5977. #define   G_0286C4_VS_HALF_PACK(x)                                    (((x) >> 6) & 0x1)
  5978. #define   C_0286C4_VS_HALF_PACK                                       0xFFFFFFBF
  5979. #define   S_0286C4_VS_EXPORTS_FOG(x)                                  (((x) & 0x1) << 7) /* not on CIK */
  5980. #define   G_0286C4_VS_EXPORTS_FOG(x)                                  (((x) >> 7) & 0x1) /* not on CIK */
  5981. #define   C_0286C4_VS_EXPORTS_FOG                                     0xFFFFFF7F /* not on CIK */
  5982. #define   S_0286C4_VS_OUT_FOG_VEC_ADDR(x)                             (((x) & 0x1F) << 8) /* not on CIK */
  5983. #define   G_0286C4_VS_OUT_FOG_VEC_ADDR(x)                             (((x) >> 8) & 0x1F) /* not on CIK */
  5984. #define   C_0286C4_VS_OUT_FOG_VEC_ADDR                                0xFFFFE0FF /* not on CIK */
  5985. #define R_0286CC_SPI_PS_INPUT_ENA                                       0x0286CC
  5986. #define   S_0286CC_PERSP_SAMPLE_ENA(x)                                (((x) & 0x1) << 0)
  5987. #define   G_0286CC_PERSP_SAMPLE_ENA(x)                                (((x) >> 0) & 0x1)
  5988. #define   C_0286CC_PERSP_SAMPLE_ENA                                   0xFFFFFFFE
  5989. #define   S_0286CC_PERSP_CENTER_ENA(x)                                (((x) & 0x1) << 1)
  5990. #define   G_0286CC_PERSP_CENTER_ENA(x)                                (((x) >> 1) & 0x1)
  5991. #define   C_0286CC_PERSP_CENTER_ENA                                   0xFFFFFFFD
  5992. #define   S_0286CC_PERSP_CENTROID_ENA(x)                              (((x) & 0x1) << 2)
  5993. #define   G_0286CC_PERSP_CENTROID_ENA(x)                              (((x) >> 2) & 0x1)
  5994. #define   C_0286CC_PERSP_CENTROID_ENA                                 0xFFFFFFFB
  5995. #define   S_0286CC_PERSP_PULL_MODEL_ENA(x)                            (((x) & 0x1) << 3)
  5996. #define   G_0286CC_PERSP_PULL_MODEL_ENA(x)                            (((x) >> 3) & 0x1)
  5997. #define   C_0286CC_PERSP_PULL_MODEL_ENA                               0xFFFFFFF7
  5998. #define   S_0286CC_LINEAR_SAMPLE_ENA(x)                               (((x) & 0x1) << 4)
  5999. #define   G_0286CC_LINEAR_SAMPLE_ENA(x)                               (((x) >> 4) & 0x1)
  6000. #define   C_0286CC_LINEAR_SAMPLE_ENA                                  0xFFFFFFEF
  6001. #define   S_0286CC_LINEAR_CENTER_ENA(x)                               (((x) & 0x1) << 5)
  6002. #define   G_0286CC_LINEAR_CENTER_ENA(x)                               (((x) >> 5) & 0x1)
  6003. #define   C_0286CC_LINEAR_CENTER_ENA                                  0xFFFFFFDF
  6004. #define   S_0286CC_LINEAR_CENTROID_ENA(x)                             (((x) & 0x1) << 6)
  6005. #define   G_0286CC_LINEAR_CENTROID_ENA(x)                             (((x) >> 6) & 0x1)
  6006. #define   C_0286CC_LINEAR_CENTROID_ENA                                0xFFFFFFBF
  6007. #define   S_0286CC_LINE_STIPPLE_TEX_ENA(x)                            (((x) & 0x1) << 7)
  6008. #define   G_0286CC_LINE_STIPPLE_TEX_ENA(x)                            (((x) >> 7) & 0x1)
  6009. #define   C_0286CC_LINE_STIPPLE_TEX_ENA                               0xFFFFFF7F
  6010. #define   S_0286CC_POS_X_FLOAT_ENA(x)                                 (((x) & 0x1) << 8)
  6011. #define   G_0286CC_POS_X_FLOAT_ENA(x)                                 (((x) >> 8) & 0x1)
  6012. #define   C_0286CC_POS_X_FLOAT_ENA                                    0xFFFFFEFF
  6013. #define   S_0286CC_POS_Y_FLOAT_ENA(x)                                 (((x) & 0x1) << 9)
  6014. #define   G_0286CC_POS_Y_FLOAT_ENA(x)                                 (((x) >> 9) & 0x1)
  6015. #define   C_0286CC_POS_Y_FLOAT_ENA                                    0xFFFFFDFF
  6016. #define   S_0286CC_POS_Z_FLOAT_ENA(x)                                 (((x) & 0x1) << 10)
  6017. #define   G_0286CC_POS_Z_FLOAT_ENA(x)                                 (((x) >> 10) & 0x1)
  6018. #define   C_0286CC_POS_Z_FLOAT_ENA                                    0xFFFFFBFF
  6019. #define   S_0286CC_POS_W_FLOAT_ENA(x)                                 (((x) & 0x1) << 11)
  6020. #define   G_0286CC_POS_W_FLOAT_ENA(x)                                 (((x) >> 11) & 0x1)
  6021. #define   C_0286CC_POS_W_FLOAT_ENA                                    0xFFFFF7FF
  6022. #define   S_0286CC_FRONT_FACE_ENA(x)                                  (((x) & 0x1) << 12)
  6023. #define   G_0286CC_FRONT_FACE_ENA(x)                                  (((x) >> 12) & 0x1)
  6024. #define   C_0286CC_FRONT_FACE_ENA                                     0xFFFFEFFF
  6025. #define   S_0286CC_ANCILLARY_ENA(x)                                   (((x) & 0x1) << 13)
  6026. #define   G_0286CC_ANCILLARY_ENA(x)                                   (((x) >> 13) & 0x1)
  6027. #define   C_0286CC_ANCILLARY_ENA                                      0xFFFFDFFF
  6028. #define   S_0286CC_SAMPLE_COVERAGE_ENA(x)                             (((x) & 0x1) << 14)
  6029. #define   G_0286CC_SAMPLE_COVERAGE_ENA(x)                             (((x) >> 14) & 0x1)
  6030. #define   C_0286CC_SAMPLE_COVERAGE_ENA                                0xFFFFBFFF
  6031. #define   S_0286CC_POS_FIXED_PT_ENA(x)                                (((x) & 0x1) << 15)
  6032. #define   G_0286CC_POS_FIXED_PT_ENA(x)                                (((x) >> 15) & 0x1)
  6033. #define   C_0286CC_POS_FIXED_PT_ENA                                   0xFFFF7FFF
  6034. #define R_0286D0_SPI_PS_INPUT_ADDR                                      0x0286D0
  6035. #define   S_0286D0_PERSP_SAMPLE_ENA(x)                                (((x) & 0x1) << 0)
  6036. #define   G_0286D0_PERSP_SAMPLE_ENA(x)                                (((x) >> 0) & 0x1)
  6037. #define   C_0286D0_PERSP_SAMPLE_ENA                                   0xFFFFFFFE
  6038. #define   S_0286D0_PERSP_CENTER_ENA(x)                                (((x) & 0x1) << 1)
  6039. #define   G_0286D0_PERSP_CENTER_ENA(x)                                (((x) >> 1) & 0x1)
  6040. #define   C_0286D0_PERSP_CENTER_ENA                                   0xFFFFFFFD
  6041. #define   S_0286D0_PERSP_CENTROID_ENA(x)                              (((x) & 0x1) << 2)
  6042. #define   G_0286D0_PERSP_CENTROID_ENA(x)                              (((x) >> 2) & 0x1)
  6043. #define   C_0286D0_PERSP_CENTROID_ENA                                 0xFFFFFFFB
  6044. #define   S_0286D0_PERSP_PULL_MODEL_ENA(x)                            (((x) & 0x1) << 3)
  6045. #define   G_0286D0_PERSP_PULL_MODEL_ENA(x)                            (((x) >> 3) & 0x1)
  6046. #define   C_0286D0_PERSP_PULL_MODEL_ENA                               0xFFFFFFF7
  6047. #define   S_0286D0_LINEAR_SAMPLE_ENA(x)                               (((x) & 0x1) << 4)
  6048. #define   G_0286D0_LINEAR_SAMPLE_ENA(x)                               (((x) >> 4) & 0x1)
  6049. #define   C_0286D0_LINEAR_SAMPLE_ENA                                  0xFFFFFFEF
  6050. #define   S_0286D0_LINEAR_CENTER_ENA(x)                               (((x) & 0x1) << 5)
  6051. #define   G_0286D0_LINEAR_CENTER_ENA(x)                               (((x) >> 5) & 0x1)
  6052. #define   C_0286D0_LINEAR_CENTER_ENA                                  0xFFFFFFDF
  6053. #define   S_0286D0_LINEAR_CENTROID_ENA(x)                             (((x) & 0x1) << 6)
  6054. #define   G_0286D0_LINEAR_CENTROID_ENA(x)                             (((x) >> 6) & 0x1)
  6055. #define   C_0286D0_LINEAR_CENTROID_ENA                                0xFFFFFFBF
  6056. #define   S_0286D0_LINE_STIPPLE_TEX_ENA(x)                            (((x) & 0x1) << 7)
  6057. #define   G_0286D0_LINE_STIPPLE_TEX_ENA(x)                            (((x) >> 7) & 0x1)
  6058. #define   C_0286D0_LINE_STIPPLE_TEX_ENA                               0xFFFFFF7F
  6059. #define   S_0286D0_POS_X_FLOAT_ENA(x)                                 (((x) & 0x1) << 8)
  6060. #define   G_0286D0_POS_X_FLOAT_ENA(x)                                 (((x) >> 8) & 0x1)
  6061. #define   C_0286D0_POS_X_FLOAT_ENA                                    0xFFFFFEFF
  6062. #define   S_0286D0_POS_Y_FLOAT_ENA(x)                                 (((x) & 0x1) << 9)
  6063. #define   G_0286D0_POS_Y_FLOAT_ENA(x)                                 (((x) >> 9) & 0x1)
  6064. #define   C_0286D0_POS_Y_FLOAT_ENA                                    0xFFFFFDFF
  6065. #define   S_0286D0_POS_Z_FLOAT_ENA(x)                                 (((x) & 0x1) << 10)
  6066. #define   G_0286D0_POS_Z_FLOAT_ENA(x)                                 (((x) >> 10) & 0x1)
  6067. #define   C_0286D0_POS_Z_FLOAT_ENA                                    0xFFFFFBFF
  6068. #define   S_0286D0_POS_W_FLOAT_ENA(x)                                 (((x) & 0x1) << 11)
  6069. #define   G_0286D0_POS_W_FLOAT_ENA(x)                                 (((x) >> 11) & 0x1)
  6070. #define   C_0286D0_POS_W_FLOAT_ENA                                    0xFFFFF7FF
  6071. #define   S_0286D0_FRONT_FACE_ENA(x)                                  (((x) & 0x1) << 12)
  6072. #define   G_0286D0_FRONT_FACE_ENA(x)                                  (((x) >> 12) & 0x1)
  6073. #define   C_0286D0_FRONT_FACE_ENA                                     0xFFFFEFFF
  6074. #define   S_0286D0_ANCILLARY_ENA(x)                                   (((x) & 0x1) << 13)
  6075. #define   G_0286D0_ANCILLARY_ENA(x)                                   (((x) >> 13) & 0x1)
  6076. #define   C_0286D0_ANCILLARY_ENA                                      0xFFFFDFFF
  6077. #define   S_0286D0_SAMPLE_COVERAGE_ENA(x)                             (((x) & 0x1) << 14)
  6078. #define   G_0286D0_SAMPLE_COVERAGE_ENA(x)                             (((x) >> 14) & 0x1)
  6079. #define   C_0286D0_SAMPLE_COVERAGE_ENA                                0xFFFFBFFF
  6080. #define   S_0286D0_POS_FIXED_PT_ENA(x)                                (((x) & 0x1) << 15)
  6081. #define   G_0286D0_POS_FIXED_PT_ENA(x)                                (((x) >> 15) & 0x1)
  6082. #define   C_0286D0_POS_FIXED_PT_ENA                                   0xFFFF7FFF
  6083. #define R_0286D4_SPI_INTERP_CONTROL_0                                   0x0286D4
  6084. #define   S_0286D4_FLAT_SHADE_ENA(x)                                  (((x) & 0x1) << 0)
  6085. #define   G_0286D4_FLAT_SHADE_ENA(x)                                  (((x) >> 0) & 0x1)
  6086. #define   C_0286D4_FLAT_SHADE_ENA                                     0xFFFFFFFE
  6087. #define   S_0286D4_PNT_SPRITE_ENA(x)                                  (((x) & 0x1) << 1)
  6088. #define   G_0286D4_PNT_SPRITE_ENA(x)                                  (((x) >> 1) & 0x1)
  6089. #define   C_0286D4_PNT_SPRITE_ENA                                     0xFFFFFFFD
  6090. #define   S_0286D4_PNT_SPRITE_OVRD_X(x)                               (((x) & 0x07) << 2)
  6091. #define   G_0286D4_PNT_SPRITE_OVRD_X(x)                               (((x) >> 2) & 0x07)
  6092. #define   C_0286D4_PNT_SPRITE_OVRD_X                                  0xFFFFFFE3
  6093. #define     V_0286D4_SPI_PNT_SPRITE_SEL_0                           0x00
  6094. #define     V_0286D4_SPI_PNT_SPRITE_SEL_1                           0x01
  6095. #define     V_0286D4_SPI_PNT_SPRITE_SEL_S                           0x02
  6096. #define     V_0286D4_SPI_PNT_SPRITE_SEL_T                           0x03
  6097. #define     V_0286D4_SPI_PNT_SPRITE_SEL_NONE                        0x04
  6098. #define   S_0286D4_PNT_SPRITE_OVRD_Y(x)                               (((x) & 0x07) << 5)
  6099. #define   G_0286D4_PNT_SPRITE_OVRD_Y(x)                               (((x) >> 5) & 0x07)
  6100. #define   C_0286D4_PNT_SPRITE_OVRD_Y                                  0xFFFFFF1F
  6101. #define     V_0286D4_SPI_PNT_SPRITE_SEL_0                           0x00
  6102. #define     V_0286D4_SPI_PNT_SPRITE_SEL_1                           0x01
  6103. #define     V_0286D4_SPI_PNT_SPRITE_SEL_S                           0x02
  6104. #define     V_0286D4_SPI_PNT_SPRITE_SEL_T                           0x03
  6105. #define     V_0286D4_SPI_PNT_SPRITE_SEL_NONE                        0x04
  6106. #define   S_0286D4_PNT_SPRITE_OVRD_Z(x)                               (((x) & 0x07) << 8)
  6107. #define   G_0286D4_PNT_SPRITE_OVRD_Z(x)                               (((x) >> 8) & 0x07)
  6108. #define   C_0286D4_PNT_SPRITE_OVRD_Z                                  0xFFFFF8FF
  6109. #define     V_0286D4_SPI_PNT_SPRITE_SEL_0                           0x00
  6110. #define     V_0286D4_SPI_PNT_SPRITE_SEL_1                           0x01
  6111. #define     V_0286D4_SPI_PNT_SPRITE_SEL_S                           0x02
  6112. #define     V_0286D4_SPI_PNT_SPRITE_SEL_T                           0x03
  6113. #define     V_0286D4_SPI_PNT_SPRITE_SEL_NONE                        0x04
  6114. #define   S_0286D4_PNT_SPRITE_OVRD_W(x)                               (((x) & 0x07) << 11)
  6115. #define   G_0286D4_PNT_SPRITE_OVRD_W(x)                               (((x) >> 11) & 0x07)
  6116. #define   C_0286D4_PNT_SPRITE_OVRD_W                                  0xFFFFC7FF
  6117. #define     V_0286D4_SPI_PNT_SPRITE_SEL_0                           0x00
  6118. #define     V_0286D4_SPI_PNT_SPRITE_SEL_1                           0x01
  6119. #define     V_0286D4_SPI_PNT_SPRITE_SEL_S                           0x02
  6120. #define     V_0286D4_SPI_PNT_SPRITE_SEL_T                           0x03
  6121. #define     V_0286D4_SPI_PNT_SPRITE_SEL_NONE                        0x04
  6122. #define   S_0286D4_PNT_SPRITE_TOP_1(x)                                (((x) & 0x1) << 14)
  6123. #define   G_0286D4_PNT_SPRITE_TOP_1(x)                                (((x) >> 14) & 0x1)
  6124. #define   C_0286D4_PNT_SPRITE_TOP_1                                   0xFFFFBFFF
  6125. #define R_0286D8_SPI_PS_IN_CONTROL                                      0x0286D8
  6126. #define   S_0286D8_NUM_INTERP(x)                                      (((x) & 0x3F) << 0)
  6127. #define   G_0286D8_NUM_INTERP(x)                                      (((x) >> 0) & 0x3F)
  6128. #define   C_0286D8_NUM_INTERP                                         0xFFFFFFC0
  6129. #define   S_0286D8_PARAM_GEN(x)                                       (((x) & 0x1) << 6)
  6130. #define   G_0286D8_PARAM_GEN(x)                                       (((x) >> 6) & 0x1)
  6131. #define   C_0286D8_PARAM_GEN                                          0xFFFFFFBF
  6132. #define   S_0286D8_FOG_ADDR(x)                                        (((x) & 0x7F) << 7) /* not on CIK */
  6133. #define   G_0286D8_FOG_ADDR(x)                                        (((x) >> 7) & 0x7F) /* not on CIK */
  6134. #define   C_0286D8_FOG_ADDR                                           0xFFFFC07F /* not on CIK */
  6135. #define   S_0286D8_BC_OPTIMIZE_DISABLE(x)                             (((x) & 0x1) << 14)
  6136. #define   G_0286D8_BC_OPTIMIZE_DISABLE(x)                             (((x) >> 14) & 0x1)
  6137. #define   C_0286D8_BC_OPTIMIZE_DISABLE                                0xFFFFBFFF
  6138. #define   S_0286D8_PASS_FOG_THROUGH_PS(x)                             (((x) & 0x1) << 15) /* not on CIK */
  6139. #define   G_0286D8_PASS_FOG_THROUGH_PS(x)                             (((x) >> 15) & 0x1) /* not on CIK */
  6140. #define   C_0286D8_PASS_FOG_THROUGH_PS                                0xFFFF7FFF /* not on CIK */
  6141. #define R_0286E0_SPI_BARYC_CNTL                                         0x0286E0
  6142. #define   S_0286E0_PERSP_CENTER_CNTL(x)                               (((x) & 0x1) << 0)
  6143. #define   G_0286E0_PERSP_CENTER_CNTL(x)                               (((x) >> 0) & 0x1)
  6144. #define   C_0286E0_PERSP_CENTER_CNTL                                  0xFFFFFFFE
  6145. #define   S_0286E0_PERSP_CENTROID_CNTL(x)                             (((x) & 0x1) << 4)
  6146. #define   G_0286E0_PERSP_CENTROID_CNTL(x)                             (((x) >> 4) & 0x1)
  6147. #define   C_0286E0_PERSP_CENTROID_CNTL                                0xFFFFFFEF
  6148. #define   S_0286E0_LINEAR_CENTER_CNTL(x)                              (((x) & 0x1) << 8)
  6149. #define   G_0286E0_LINEAR_CENTER_CNTL(x)                              (((x) >> 8) & 0x1)
  6150. #define   C_0286E0_LINEAR_CENTER_CNTL                                 0xFFFFFEFF
  6151. #define   S_0286E0_LINEAR_CENTROID_CNTL(x)                            (((x) & 0x1) << 12)
  6152. #define   G_0286E0_LINEAR_CENTROID_CNTL(x)                            (((x) >> 12) & 0x1)
  6153. #define   C_0286E0_LINEAR_CENTROID_CNTL                               0xFFFFEFFF
  6154. #define   S_0286E0_POS_FLOAT_LOCATION(x)                              (((x) & 0x03) << 16)
  6155. #define   G_0286E0_POS_FLOAT_LOCATION(x)                              (((x) >> 16) & 0x03)
  6156. #define   C_0286E0_POS_FLOAT_LOCATION                                 0xFFFCFFFF
  6157. #define     V_0286E0_X_CALCULATE_PER_PIXEL_FLOATING_POINT_POSITION_AT 0x00
  6158. #define   S_0286E0_POS_FLOAT_ULC(x)                                   (((x) & 0x1) << 20)
  6159. #define   G_0286E0_POS_FLOAT_ULC(x)                                   (((x) >> 20) & 0x1)
  6160. #define   C_0286E0_POS_FLOAT_ULC                                      0xFFEFFFFF
  6161. #define   S_0286E0_FRONT_FACE_ALL_BITS(x)                             (((x) & 0x1) << 24)
  6162. #define   G_0286E0_FRONT_FACE_ALL_BITS(x)                             (((x) >> 24) & 0x1)
  6163. #define   C_0286E0_FRONT_FACE_ALL_BITS                                0xFEFFFFFF
  6164. #define R_0286E8_SPI_TMPRING_SIZE                                       0x0286E8
  6165. #define   S_0286E8_WAVES(x)                                           (((x) & 0xFFF) << 0)
  6166. #define   G_0286E8_WAVES(x)                                           (((x) >> 0) & 0xFFF)
  6167. #define   C_0286E8_WAVES                                              0xFFFFF000
  6168. #define   S_0286E8_WAVESIZE(x)                                        (((x) & 0x1FFF) << 12)
  6169. #define   G_0286E8_WAVESIZE(x)                                        (((x) >> 12) & 0x1FFF)
  6170. #define   C_0286E8_WAVESIZE                                           0xFE000FFF
  6171. #define R_028704_SPI_WAVE_MGMT_1                                        0x028704 /* not on CIK */
  6172. #define   S_028704_NUM_PS_WAVES(x)                                    (((x) & 0x3F) << 0)
  6173. #define   G_028704_NUM_PS_WAVES(x)                                    (((x) >> 0) & 0x3F)
  6174. #define   C_028704_NUM_PS_WAVES                                       0xFFFFFFC0
  6175. #define   S_028704_NUM_VS_WAVES(x)                                    (((x) & 0x3F) << 6)
  6176. #define   G_028704_NUM_VS_WAVES(x)                                    (((x) >> 6) & 0x3F)
  6177. #define   C_028704_NUM_VS_WAVES                                       0xFFFFF03F
  6178. #define   S_028704_NUM_GS_WAVES(x)                                    (((x) & 0x3F) << 12)
  6179. #define   G_028704_NUM_GS_WAVES(x)                                    (((x) >> 12) & 0x3F)
  6180. #define   C_028704_NUM_GS_WAVES                                       0xFFFC0FFF
  6181. #define   S_028704_NUM_ES_WAVES(x)                                    (((x) & 0x3F) << 18)
  6182. #define   G_028704_NUM_ES_WAVES(x)                                    (((x) >> 18) & 0x3F)
  6183. #define   C_028704_NUM_ES_WAVES                                       0xFF03FFFF
  6184. #define   S_028704_NUM_HS_WAVES(x)                                    (((x) & 0x3F) << 24)
  6185. #define   G_028704_NUM_HS_WAVES(x)                                    (((x) >> 24) & 0x3F)
  6186. #define   C_028704_NUM_HS_WAVES                                       0xC0FFFFFF
  6187. #define R_028708_SPI_WAVE_MGMT_2                                        0x028708 /* not on CIK */
  6188. #define   S_028708_NUM_LS_WAVES(x)                                    (((x) & 0x3F) << 0)
  6189. #define   G_028708_NUM_LS_WAVES(x)                                    (((x) >> 0) & 0x3F)
  6190. #define   C_028708_NUM_LS_WAVES                                       0xFFFFFFC0
  6191. #define R_02870C_SPI_SHADER_POS_FORMAT                                  0x02870C
  6192. #define   S_02870C_POS0_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 0)
  6193. #define   G_02870C_POS0_EXPORT_FORMAT(x)                              (((x) >> 0) & 0x0F)
  6194. #define   C_02870C_POS0_EXPORT_FORMAT                                 0xFFFFFFF0
  6195. #define     V_02870C_SPI_SHADER_NONE                                0x00
  6196. #define     V_02870C_SPI_SHADER_1COMP                               0x01
  6197. #define     V_02870C_SPI_SHADER_2COMP                               0x02
  6198. #define     V_02870C_SPI_SHADER_4COMPRESS                           0x03
  6199. #define     V_02870C_SPI_SHADER_4COMP                               0x04
  6200. #define   S_02870C_POS1_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 4)
  6201. #define   G_02870C_POS1_EXPORT_FORMAT(x)                              (((x) >> 4) & 0x0F)
  6202. #define   C_02870C_POS1_EXPORT_FORMAT                                 0xFFFFFF0F
  6203. #define     V_02870C_SPI_SHADER_NONE                                0x00
  6204. #define     V_02870C_SPI_SHADER_1COMP                               0x01
  6205. #define     V_02870C_SPI_SHADER_2COMP                               0x02
  6206. #define     V_02870C_SPI_SHADER_4COMPRESS                           0x03
  6207. #define     V_02870C_SPI_SHADER_4COMP                               0x04
  6208. #define   S_02870C_POS2_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 8)
  6209. #define   G_02870C_POS2_EXPORT_FORMAT(x)                              (((x) >> 8) & 0x0F)
  6210. #define   C_02870C_POS2_EXPORT_FORMAT                                 0xFFFFF0FF
  6211. #define     V_02870C_SPI_SHADER_NONE                                0x00
  6212. #define     V_02870C_SPI_SHADER_1COMP                               0x01
  6213. #define     V_02870C_SPI_SHADER_2COMP                               0x02
  6214. #define     V_02870C_SPI_SHADER_4COMPRESS                           0x03
  6215. #define     V_02870C_SPI_SHADER_4COMP                               0x04
  6216. #define   S_02870C_POS3_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 12)
  6217. #define   G_02870C_POS3_EXPORT_FORMAT(x)                              (((x) >> 12) & 0x0F)
  6218. #define   C_02870C_POS3_EXPORT_FORMAT                                 0xFFFF0FFF
  6219. #define     V_02870C_SPI_SHADER_NONE                                0x00
  6220. #define     V_02870C_SPI_SHADER_1COMP                               0x01
  6221. #define     V_02870C_SPI_SHADER_2COMP                               0x02
  6222. #define     V_02870C_SPI_SHADER_4COMPRESS                           0x03
  6223. #define     V_02870C_SPI_SHADER_4COMP                               0x04
  6224. #define R_028710_SPI_SHADER_Z_FORMAT                                    0x028710
  6225. #define   S_028710_Z_EXPORT_FORMAT(x)                                 (((x) & 0x0F) << 0)
  6226. #define   G_028710_Z_EXPORT_FORMAT(x)                                 (((x) >> 0) & 0x0F)
  6227. #define   C_028710_Z_EXPORT_FORMAT                                    0xFFFFFFF0
  6228. #define     V_028710_SPI_SHADER_ZERO                                0x00
  6229. #define     V_028710_SPI_SHADER_32_R                                0x01
  6230. #define     V_028710_SPI_SHADER_32_GR                               0x02
  6231. #define     V_028710_SPI_SHADER_32_AR                               0x03
  6232. #define     V_028710_SPI_SHADER_FP16_ABGR                           0x04
  6233. #define     V_028710_SPI_SHADER_UNORM16_ABGR                        0x05
  6234. #define     V_028710_SPI_SHADER_SNORM16_ABGR                        0x06
  6235. #define     V_028710_SPI_SHADER_UINT16_ABGR                         0x07
  6236. #define     V_028710_SPI_SHADER_SINT16_ABGR                         0x08
  6237. #define     V_028710_SPI_SHADER_32_ABGR                             0x09
  6238. #define R_028714_SPI_SHADER_COL_FORMAT                                  0x028714
  6239. #define   S_028714_COL0_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 0)
  6240. #define   G_028714_COL0_EXPORT_FORMAT(x)                              (((x) >> 0) & 0x0F)
  6241. #define   C_028714_COL0_EXPORT_FORMAT                                 0xFFFFFFF0
  6242. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6243. #define     V_028714_SPI_SHADER_32_R                                0x01
  6244. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6245. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6246. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6247. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6248. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6249. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6250. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6251. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6252. #define   S_028714_COL1_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 4)
  6253. #define   G_028714_COL1_EXPORT_FORMAT(x)                              (((x) >> 4) & 0x0F)
  6254. #define   C_028714_COL1_EXPORT_FORMAT                                 0xFFFFFF0F
  6255. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6256. #define     V_028714_SPI_SHADER_32_R                                0x01
  6257. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6258. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6259. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6260. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6261. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6262. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6263. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6264. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6265. #define   S_028714_COL2_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 8)
  6266. #define   G_028714_COL2_EXPORT_FORMAT(x)                              (((x) >> 8) & 0x0F)
  6267. #define   C_028714_COL2_EXPORT_FORMAT                                 0xFFFFF0FF
  6268. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6269. #define     V_028714_SPI_SHADER_32_R                                0x01
  6270. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6271. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6272. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6273. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6274. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6275. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6276. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6277. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6278. #define   S_028714_COL3_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 12)
  6279. #define   G_028714_COL3_EXPORT_FORMAT(x)                              (((x) >> 12) & 0x0F)
  6280. #define   C_028714_COL3_EXPORT_FORMAT                                 0xFFFF0FFF
  6281. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6282. #define     V_028714_SPI_SHADER_32_R                                0x01
  6283. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6284. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6285. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6286. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6287. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6288. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6289. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6290. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6291. #define   S_028714_COL4_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 16)
  6292. #define   G_028714_COL4_EXPORT_FORMAT(x)                              (((x) >> 16) & 0x0F)
  6293. #define   C_028714_COL4_EXPORT_FORMAT                                 0xFFF0FFFF
  6294. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6295. #define     V_028714_SPI_SHADER_32_R                                0x01
  6296. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6297. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6298. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6299. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6300. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6301. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6302. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6303. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6304. #define   S_028714_COL5_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 20)
  6305. #define   G_028714_COL5_EXPORT_FORMAT(x)                              (((x) >> 20) & 0x0F)
  6306. #define   C_028714_COL5_EXPORT_FORMAT                                 0xFF0FFFFF
  6307. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6308. #define     V_028714_SPI_SHADER_32_R                                0x01
  6309. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6310. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6311. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6312. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6313. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6314. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6315. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6316. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6317. #define   S_028714_COL6_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 24)
  6318. #define   G_028714_COL6_EXPORT_FORMAT(x)                              (((x) >> 24) & 0x0F)
  6319. #define   C_028714_COL6_EXPORT_FORMAT                                 0xF0FFFFFF
  6320. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6321. #define     V_028714_SPI_SHADER_32_R                                0x01
  6322. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6323. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6324. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6325. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6326. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6327. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6328. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6329. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6330. #define   S_028714_COL7_EXPORT_FORMAT(x)                              (((x) & 0x0F) << 28)
  6331. #define   G_028714_COL7_EXPORT_FORMAT(x)                              (((x) >> 28) & 0x0F)
  6332. #define   C_028714_COL7_EXPORT_FORMAT                                 0x0FFFFFFF
  6333. #define     V_028714_SPI_SHADER_ZERO                                0x00
  6334. #define     V_028714_SPI_SHADER_32_R                                0x01
  6335. #define     V_028714_SPI_SHADER_32_GR                               0x02
  6336. #define     V_028714_SPI_SHADER_32_AR                               0x03
  6337. #define     V_028714_SPI_SHADER_FP16_ABGR                           0x04
  6338. #define     V_028714_SPI_SHADER_UNORM16_ABGR                        0x05
  6339. #define     V_028714_SPI_SHADER_SNORM16_ABGR                        0x06
  6340. #define     V_028714_SPI_SHADER_UINT16_ABGR                         0x07
  6341. #define     V_028714_SPI_SHADER_SINT16_ABGR                         0x08
  6342. #define     V_028714_SPI_SHADER_32_ABGR                             0x09
  6343. #define R_028780_CB_BLEND0_CONTROL                                      0x028780
  6344. #define   S_028780_COLOR_SRCBLEND(x)                                  (((x) & 0x1F) << 0)
  6345. #define   G_028780_COLOR_SRCBLEND(x)                                  (((x) >> 0) & 0x1F)
  6346. #define   C_028780_COLOR_SRCBLEND                                     0xFFFFFFE0
  6347. #define     V_028780_BLEND_ZERO                                     0x00
  6348. #define     V_028780_BLEND_ONE                                      0x01
  6349. #define     V_028780_BLEND_SRC_COLOR                                0x02
  6350. #define     V_028780_BLEND_ONE_MINUS_SRC_COLOR                      0x03
  6351. #define     V_028780_BLEND_SRC_ALPHA                                0x04
  6352. #define     V_028780_BLEND_ONE_MINUS_SRC_ALPHA                      0x05
  6353. #define     V_028780_BLEND_DST_ALPHA                                0x06
  6354. #define     V_028780_BLEND_ONE_MINUS_DST_ALPHA                      0x07
  6355. #define     V_028780_BLEND_DST_COLOR                                0x08
  6356. #define     V_028780_BLEND_ONE_MINUS_DST_COLOR                      0x09
  6357. #define     V_028780_BLEND_SRC_ALPHA_SATURATE                       0x0A
  6358. #define     V_028780_BLEND_CONSTANT_COLOR                           0x0D
  6359. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_COLOR                 0x0E
  6360. #define     V_028780_BLEND_SRC1_COLOR                               0x0F
  6361. #define     V_028780_BLEND_INV_SRC1_COLOR                           0x10
  6362. #define     V_028780_BLEND_SRC1_ALPHA                               0x11
  6363. #define     V_028780_BLEND_INV_SRC1_ALPHA                           0x12
  6364. #define     V_028780_BLEND_CONSTANT_ALPHA                           0x13
  6365. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_ALPHA                 0x14
  6366. #define   S_028780_COLOR_COMB_FCN(x)                                  (((x) & 0x07) << 5)
  6367. #define   G_028780_COLOR_COMB_FCN(x)                                  (((x) >> 5) & 0x07)
  6368. #define   C_028780_COLOR_COMB_FCN                                     0xFFFFFF1F
  6369. #define     V_028780_COMB_DST_PLUS_SRC                              0x00
  6370. #define     V_028780_COMB_SRC_MINUS_DST                             0x01
  6371. #define     V_028780_COMB_MIN_DST_SRC                               0x02
  6372. #define     V_028780_COMB_MAX_DST_SRC                               0x03
  6373. #define     V_028780_COMB_DST_MINUS_SRC                             0x04
  6374. #define   S_028780_COLOR_DESTBLEND(x)                                 (((x) & 0x1F) << 8)
  6375. #define   G_028780_COLOR_DESTBLEND(x)                                 (((x) >> 8) & 0x1F)
  6376. #define   C_028780_COLOR_DESTBLEND                                    0xFFFFE0FF
  6377. #define     V_028780_BLEND_ZERO                                     0x00
  6378. #define     V_028780_BLEND_ONE                                      0x01
  6379. #define     V_028780_BLEND_SRC_COLOR                                0x02
  6380. #define     V_028780_BLEND_ONE_MINUS_SRC_COLOR                      0x03
  6381. #define     V_028780_BLEND_SRC_ALPHA                                0x04
  6382. #define     V_028780_BLEND_ONE_MINUS_SRC_ALPHA                      0x05
  6383. #define     V_028780_BLEND_DST_ALPHA                                0x06
  6384. #define     V_028780_BLEND_ONE_MINUS_DST_ALPHA                      0x07
  6385. #define     V_028780_BLEND_DST_COLOR                                0x08
  6386. #define     V_028780_BLEND_ONE_MINUS_DST_COLOR                      0x09
  6387. #define     V_028780_BLEND_SRC_ALPHA_SATURATE                       0x0A
  6388. #define     V_028780_BLEND_CONSTANT_COLOR                           0x0D
  6389. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_COLOR                 0x0E
  6390. #define     V_028780_BLEND_SRC1_COLOR                               0x0F
  6391. #define     V_028780_BLEND_INV_SRC1_COLOR                           0x10
  6392. #define     V_028780_BLEND_SRC1_ALPHA                               0x11
  6393. #define     V_028780_BLEND_INV_SRC1_ALPHA                           0x12
  6394. #define     V_028780_BLEND_CONSTANT_ALPHA                           0x13
  6395. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_ALPHA                 0x14
  6396. #define   S_028780_ALPHA_SRCBLEND(x)                                  (((x) & 0x1F) << 16)
  6397. #define   G_028780_ALPHA_SRCBLEND(x)                                  (((x) >> 16) & 0x1F)
  6398. #define   C_028780_ALPHA_SRCBLEND                                     0xFFE0FFFF
  6399. #define     V_028780_BLEND_ZERO                                     0x00
  6400. #define     V_028780_BLEND_ONE                                      0x01
  6401. #define     V_028780_BLEND_SRC_COLOR                                0x02
  6402. #define     V_028780_BLEND_ONE_MINUS_SRC_COLOR                      0x03
  6403. #define     V_028780_BLEND_SRC_ALPHA                                0x04
  6404. #define     V_028780_BLEND_ONE_MINUS_SRC_ALPHA                      0x05
  6405. #define     V_028780_BLEND_DST_ALPHA                                0x06
  6406. #define     V_028780_BLEND_ONE_MINUS_DST_ALPHA                      0x07
  6407. #define     V_028780_BLEND_DST_COLOR                                0x08
  6408. #define     V_028780_BLEND_ONE_MINUS_DST_COLOR                      0x09
  6409. #define     V_028780_BLEND_SRC_ALPHA_SATURATE                       0x0A
  6410. #define     V_028780_BLEND_CONSTANT_COLOR                           0x0D
  6411. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_COLOR                 0x0E
  6412. #define     V_028780_BLEND_SRC1_COLOR                               0x0F
  6413. #define     V_028780_BLEND_INV_SRC1_COLOR                           0x10
  6414. #define     V_028780_BLEND_SRC1_ALPHA                               0x11
  6415. #define     V_028780_BLEND_INV_SRC1_ALPHA                           0x12
  6416. #define     V_028780_BLEND_CONSTANT_ALPHA                           0x13
  6417. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_ALPHA                 0x14
  6418. #define   S_028780_ALPHA_COMB_FCN(x)                                  (((x) & 0x07) << 21)
  6419. #define   G_028780_ALPHA_COMB_FCN(x)                                  (((x) >> 21) & 0x07)
  6420. #define   C_028780_ALPHA_COMB_FCN                                     0xFF1FFFFF
  6421. #define     V_028780_COMB_DST_PLUS_SRC                              0x00
  6422. #define     V_028780_COMB_SRC_MINUS_DST                             0x01
  6423. #define     V_028780_COMB_MIN_DST_SRC                               0x02
  6424. #define     V_028780_COMB_MAX_DST_SRC                               0x03
  6425. #define     V_028780_COMB_DST_MINUS_SRC                             0x04
  6426. #define   S_028780_ALPHA_DESTBLEND(x)                                 (((x) & 0x1F) << 24)
  6427. #define   G_028780_ALPHA_DESTBLEND(x)                                 (((x) >> 24) & 0x1F)
  6428. #define   C_028780_ALPHA_DESTBLEND                                    0xE0FFFFFF
  6429. #define     V_028780_BLEND_ZERO                                     0x00
  6430. #define     V_028780_BLEND_ONE                                      0x01
  6431. #define     V_028780_BLEND_SRC_COLOR                                0x02
  6432. #define     V_028780_BLEND_ONE_MINUS_SRC_COLOR                      0x03
  6433. #define     V_028780_BLEND_SRC_ALPHA                                0x04
  6434. #define     V_028780_BLEND_ONE_MINUS_SRC_ALPHA                      0x05
  6435. #define     V_028780_BLEND_DST_ALPHA                                0x06
  6436. #define     V_028780_BLEND_ONE_MINUS_DST_ALPHA                      0x07
  6437. #define     V_028780_BLEND_DST_COLOR                                0x08
  6438. #define     V_028780_BLEND_ONE_MINUS_DST_COLOR                      0x09
  6439. #define     V_028780_BLEND_SRC_ALPHA_SATURATE                       0x0A
  6440. #define     V_028780_BLEND_CONSTANT_COLOR                           0x0D
  6441. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_COLOR                 0x0E
  6442. #define     V_028780_BLEND_SRC1_COLOR                               0x0F
  6443. #define     V_028780_BLEND_INV_SRC1_COLOR                           0x10
  6444. #define     V_028780_BLEND_SRC1_ALPHA                               0x11
  6445. #define     V_028780_BLEND_INV_SRC1_ALPHA                           0x12
  6446. #define     V_028780_BLEND_CONSTANT_ALPHA                           0x13
  6447. #define     V_028780_BLEND_ONE_MINUS_CONSTANT_ALPHA                 0x14
  6448. #define   S_028780_SEPARATE_ALPHA_BLEND(x)                            (((x) & 0x1) << 29)
  6449. #define   G_028780_SEPARATE_ALPHA_BLEND(x)                            (((x) >> 29) & 0x1)
  6450. #define   C_028780_SEPARATE_ALPHA_BLEND                               0xDFFFFFFF
  6451. #define   S_028780_ENABLE(x)                                          (((x) & 0x1) << 30)
  6452. #define   G_028780_ENABLE(x)                                          (((x) >> 30) & 0x1)
  6453. #define   C_028780_ENABLE                                             0xBFFFFFFF
  6454. #define   S_028780_DISABLE_ROP3(x)                                    (((x) & 0x1) << 31)
  6455. #define   G_028780_DISABLE_ROP3(x)                                    (((x) >> 31) & 0x1)
  6456. #define   C_028780_DISABLE_ROP3                                       0x7FFFFFFF
  6457. #define R_028784_CB_BLEND1_CONTROL                                      0x028784
  6458. #define R_028788_CB_BLEND2_CONTROL                                      0x028788
  6459. #define R_02878C_CB_BLEND3_CONTROL                                      0x02878C
  6460. #define R_028790_CB_BLEND4_CONTROL                                      0x028790
  6461. #define R_028794_CB_BLEND5_CONTROL                                      0x028794
  6462. #define R_028798_CB_BLEND6_CONTROL                                      0x028798
  6463. #define R_02879C_CB_BLEND7_CONTROL                                      0x02879C
  6464. #define R_0287D4_PA_CL_POINT_X_RAD                                      0x0287D4
  6465. #define R_0287D8_PA_CL_POINT_Y_RAD                                      0x0287D8
  6466. #define R_0287DC_PA_CL_POINT_SIZE                                       0x0287DC
  6467. #define R_0287E0_PA_CL_POINT_CULL_RAD                                   0x0287E0
  6468. #define R_0287E4_VGT_DMA_BASE_HI                                        0x0287E4
  6469. #define   S_0287E4_BASE_ADDR(x)                                       (((x) & 0xFF) << 0)
  6470. #define   G_0287E4_BASE_ADDR(x)                                       (((x) >> 0) & 0xFF)
  6471. #define   C_0287E4_BASE_ADDR                                          0xFFFFFF00
  6472. #define R_0287E8_VGT_DMA_BASE                                           0x0287E8
  6473. #define R_0287F0_VGT_DRAW_INITIATOR                                     0x0287F0
  6474. #define   S_0287F0_SOURCE_SELECT(x)                                   (((x) & 0x03) << 0)
  6475. #define   G_0287F0_SOURCE_SELECT(x)                                   (((x) >> 0) & 0x03)
  6476. #define   C_0287F0_SOURCE_SELECT                                      0xFFFFFFFC
  6477. #define     V_0287F0_DI_SRC_SEL_DMA                                 0x00
  6478. #define     V_0287F0_DI_SRC_SEL_IMMEDIATE                           0x01 /* not on CIK */
  6479. #define     V_0287F0_DI_SRC_SEL_AUTO_INDEX                          0x02
  6480. #define     V_0287F0_DI_SRC_SEL_RESERVED                            0x03
  6481. #define   S_0287F0_MAJOR_MODE(x)                                      (((x) & 0x03) << 2)
  6482. #define   G_0287F0_MAJOR_MODE(x)                                      (((x) >> 2) & 0x03)
  6483. #define   C_0287F0_MAJOR_MODE                                         0xFFFFFFF3
  6484. #define     V_0287F0_DI_MAJOR_MODE_0                                0x00
  6485. #define     V_0287F0_DI_MAJOR_MODE_1                                0x01
  6486. #define   S_0287F0_NOT_EOP(x)                                         (((x) & 0x1) << 5)
  6487. #define   G_0287F0_NOT_EOP(x)                                         (((x) >> 5) & 0x1)
  6488. #define   C_0287F0_NOT_EOP                                            0xFFFFFFDF
  6489. #define   S_0287F0_USE_OPAQUE(x)                                      (((x) & 0x1) << 6)
  6490. #define   G_0287F0_USE_OPAQUE(x)                                      (((x) >> 6) & 0x1)
  6491. #define   C_0287F0_USE_OPAQUE                                         0xFFFFFFBF
  6492. #define R_0287F4_VGT_IMMED_DATA                                         0x0287F4 /* not on CIK */
  6493. #define R_028800_DB_DEPTH_CONTROL                                       0x028800
  6494. #define   S_028800_STENCIL_ENABLE(x)                                  (((x) & 0x1) << 0)
  6495. #define   G_028800_STENCIL_ENABLE(x)                                  (((x) >> 0) & 0x1)
  6496. #define   C_028800_STENCIL_ENABLE                                     0xFFFFFFFE
  6497. #define   S_028800_Z_ENABLE(x)                                        (((x) & 0x1) << 1)
  6498. #define   G_028800_Z_ENABLE(x)                                        (((x) >> 1) & 0x1)
  6499. #define   C_028800_Z_ENABLE                                           0xFFFFFFFD
  6500. #define   S_028800_Z_WRITE_ENABLE(x)                                  (((x) & 0x1) << 2)
  6501. #define   G_028800_Z_WRITE_ENABLE(x)                                  (((x) >> 2) & 0x1)
  6502. #define   C_028800_Z_WRITE_ENABLE                                     0xFFFFFFFB
  6503. #define   S_028800_DEPTH_BOUNDS_ENABLE(x)                             (((x) & 0x1) << 3)
  6504. #define   G_028800_DEPTH_BOUNDS_ENABLE(x)                             (((x) >> 3) & 0x1)
  6505. #define   C_028800_DEPTH_BOUNDS_ENABLE                                0xFFFFFFF7
  6506. #define   S_028800_ZFUNC(x)                                           (((x) & 0x07) << 4)
  6507. #define   G_028800_ZFUNC(x)                                           (((x) >> 4) & 0x07)
  6508. #define   C_028800_ZFUNC                                              0xFFFFFF8F
  6509. #define     V_028800_FRAG_NEVER                                     0x00
  6510. #define     V_028800_FRAG_LESS                                      0x01
  6511. #define     V_028800_FRAG_EQUAL                                     0x02
  6512. #define     V_028800_FRAG_LEQUAL                                    0x03
  6513. #define     V_028800_FRAG_GREATER                                   0x04
  6514. #define     V_028800_FRAG_NOTEQUAL                                  0x05
  6515. #define     V_028800_FRAG_GEQUAL                                    0x06
  6516. #define     V_028800_FRAG_ALWAYS                                    0x07
  6517. #define   S_028800_BACKFACE_ENABLE(x)                                 (((x) & 0x1) << 7)
  6518. #define   G_028800_BACKFACE_ENABLE(x)                                 (((x) >> 7) & 0x1)
  6519. #define   C_028800_BACKFACE_ENABLE                                    0xFFFFFF7F
  6520. #define   S_028800_STENCILFUNC(x)                                     (((x) & 0x07) << 8)
  6521. #define   G_028800_STENCILFUNC(x)                                     (((x) >> 8) & 0x07)
  6522. #define   C_028800_STENCILFUNC                                        0xFFFFF8FF
  6523. #define     V_028800_REF_NEVER                                      0x00
  6524. #define     V_028800_REF_LESS                                       0x01
  6525. #define     V_028800_REF_EQUAL                                      0x02
  6526. #define     V_028800_REF_LEQUAL                                     0x03
  6527. #define     V_028800_REF_GREATER                                    0x04
  6528. #define     V_028800_REF_NOTEQUAL                                   0x05
  6529. #define     V_028800_REF_GEQUAL                                     0x06
  6530. #define     V_028800_REF_ALWAYS                                     0x07
  6531. #define   S_028800_STENCILFUNC_BF(x)                                  (((x) & 0x07) << 20)
  6532. #define   G_028800_STENCILFUNC_BF(x)                                  (((x) >> 20) & 0x07)
  6533. #define   C_028800_STENCILFUNC_BF                                     0xFF8FFFFF
  6534. #define     V_028800_REF_NEVER                                      0x00
  6535. #define     V_028800_REF_LESS                                       0x01
  6536. #define     V_028800_REF_EQUAL                                      0x02
  6537. #define     V_028800_REF_LEQUAL                                     0x03
  6538. #define     V_028800_REF_GREATER                                    0x04
  6539. #define     V_028800_REF_NOTEQUAL                                   0x05
  6540. #define     V_028800_REF_GEQUAL                                     0x06
  6541. #define     V_028800_REF_ALWAYS                                     0x07
  6542. #define   S_028800_ENABLE_COLOR_WRITES_ON_DEPTH_FAIL(x)               (((x) & 0x1) << 30)
  6543. #define   G_028800_ENABLE_COLOR_WRITES_ON_DEPTH_FAIL(x)               (((x) >> 30) & 0x1)
  6544. #define   C_028800_ENABLE_COLOR_WRITES_ON_DEPTH_FAIL                  0xBFFFFFFF
  6545. #define   S_028800_DISABLE_COLOR_WRITES_ON_DEPTH_PASS(x)              (((x) & 0x1) << 31)
  6546. #define   G_028800_DISABLE_COLOR_WRITES_ON_DEPTH_PASS(x)              (((x) >> 31) & 0x1)
  6547. #define   C_028800_DISABLE_COLOR_WRITES_ON_DEPTH_PASS                 0x7FFFFFFF
  6548. #define R_028804_DB_EQAA                                                0x028804
  6549. #define R_028808_CB_COLOR_CONTROL                                       0x028808
  6550. #define   S_028808_DEGAMMA_ENABLE(x)                                  (((x) & 0x1) << 3)
  6551. #define   G_028808_DEGAMMA_ENABLE(x)                                  (((x) >> 3) & 0x1)
  6552. #define   C_028808_DEGAMMA_ENABLE                                     0xFFFFFFF7
  6553. #define   S_028808_MODE(x)                                            (((x) & 0x07) << 4)
  6554. #define   G_028808_MODE(x)                                            (((x) >> 4) & 0x07)
  6555. #define   C_028808_MODE                                               0xFFFFFF8F
  6556. #define     V_028808_CB_DISABLE                                     0x00
  6557. #define     V_028808_CB_NORMAL                                      0x01
  6558. #define     V_028808_CB_ELIMINATE_FAST_CLEAR                        0x02
  6559. #define     V_028808_CB_RESOLVE                                     0x03
  6560. #define     V_028808_CB_FMASK_DECOMPRESS                            0x05
  6561. #define   S_028808_ROP3(x)                                            (((x) & 0xFF) << 16)
  6562. #define   G_028808_ROP3(x)                                            (((x) >> 16) & 0xFF)
  6563. #define   C_028808_ROP3                                               0xFF00FFFF
  6564. #define     V_028808_X_0X00                                         0x00
  6565. #define     V_028808_X_0X05                                         0x05
  6566. #define     V_028808_X_0X0A                                         0x0A
  6567. #define     V_028808_X_0X0F                                         0x0F
  6568. #define     V_028808_X_0X11                                         0x11
  6569. #define     V_028808_X_0X22                                         0x22
  6570. #define     V_028808_X_0X33                                         0x33
  6571. #define     V_028808_X_0X44                                         0x44
  6572. #define     V_028808_X_0X50                                         0x50
  6573. #define     V_028808_X_0X55                                         0x55
  6574. #define     V_028808_X_0X5A                                         0x5A
  6575. #define     V_028808_X_0X5F                                         0x5F
  6576. #define     V_028808_X_0X66                                         0x66
  6577. #define     V_028808_X_0X77                                         0x77
  6578. #define     V_028808_X_0X88                                         0x88
  6579. #define     V_028808_X_0X99                                         0x99
  6580. #define     V_028808_X_0XA0                                         0xA0
  6581. #define     V_028808_X_0XA5                                         0xA5
  6582. #define     V_028808_X_0XAA                                         0xAA
  6583. #define     V_028808_X_0XAF                                         0xAF
  6584. #define     V_028808_X_0XBB                                         0xBB
  6585. #define     V_028808_X_0XCC                                         0xCC
  6586. #define     V_028808_X_0XDD                                         0xDD
  6587. #define     V_028808_X_0XEE                                         0xEE
  6588. #define     V_028808_X_0XF0                                         0xF0
  6589. #define     V_028808_X_0XF5                                         0xF5
  6590. #define     V_028808_X_0XFA                                         0xFA
  6591. #define     V_028808_X_0XFF                                         0xFF
  6592. #define R_02880C_DB_SHADER_CONTROL                                      0x02880C
  6593. #define   S_02880C_Z_EXPORT_ENABLE(x)                                 (((x) & 0x1) << 0)
  6594. #define   G_02880C_Z_EXPORT_ENABLE(x)                                 (((x) >> 0) & 0x1)
  6595. #define   C_02880C_Z_EXPORT_ENABLE                                    0xFFFFFFFE
  6596. #define   S_02880C_STENCIL_TEST_VAL_EXPORT_ENABLE(x)                  (((x) & 0x1) << 1)
  6597. #define   G_02880C_STENCIL_TEST_VAL_EXPORT_ENABLE(x)                  (((x) >> 1) & 0x1)
  6598. #define   C_02880C_STENCIL_TEST_VAL_EXPORT_ENABLE                     0xFFFFFFFD
  6599. #define   S_02880C_STENCIL_OP_VAL_EXPORT_ENABLE(x)                    (((x) & 0x1) << 2)
  6600. #define   G_02880C_STENCIL_OP_VAL_EXPORT_ENABLE(x)                    (((x) >> 2) & 0x1)
  6601. #define   C_02880C_STENCIL_OP_VAL_EXPORT_ENABLE                       0xFFFFFFFB
  6602. #define   S_02880C_Z_ORDER(x)                                         (((x) & 0x03) << 4)
  6603. #define   G_02880C_Z_ORDER(x)                                         (((x) >> 4) & 0x03)
  6604. #define   C_02880C_Z_ORDER                                            0xFFFFFFCF
  6605. #define     V_02880C_LATE_Z                                         0x00
  6606. #define     V_02880C_EARLY_Z_THEN_LATE_Z                            0x01
  6607. #define     V_02880C_RE_Z                                           0x02
  6608. #define     V_02880C_EARLY_Z_THEN_RE_Z                              0x03
  6609. #define   S_02880C_KILL_ENABLE(x)                                     (((x) & 0x1) << 6)
  6610. #define   G_02880C_KILL_ENABLE(x)                                     (((x) >> 6) & 0x1)
  6611. #define   C_02880C_KILL_ENABLE                                        0xFFFFFFBF
  6612. #define   S_02880C_COVERAGE_TO_MASK_ENABLE(x)                         (((x) & 0x1) << 7)
  6613. #define   G_02880C_COVERAGE_TO_MASK_ENABLE(x)                         (((x) >> 7) & 0x1)
  6614. #define   C_02880C_COVERAGE_TO_MASK_ENABLE                            0xFFFFFF7F
  6615. #define   S_02880C_MASK_EXPORT_ENABLE(x)                              (((x) & 0x1) << 8)
  6616. #define   G_02880C_MASK_EXPORT_ENABLE(x)                              (((x) >> 8) & 0x1)
  6617. #define   C_02880C_MASK_EXPORT_ENABLE                                 0xFFFFFEFF
  6618. #define   S_02880C_EXEC_ON_HIER_FAIL(x)                               (((x) & 0x1) << 9)
  6619. #define   G_02880C_EXEC_ON_HIER_FAIL(x)                               (((x) >> 9) & 0x1)
  6620. #define   C_02880C_EXEC_ON_HIER_FAIL                                  0xFFFFFDFF
  6621. #define   S_02880C_EXEC_ON_NOOP(x)                                    (((x) & 0x1) << 10)
  6622. #define   G_02880C_EXEC_ON_NOOP(x)                                    (((x) >> 10) & 0x1)
  6623. #define   C_02880C_EXEC_ON_NOOP                                       0xFFFFFBFF
  6624. #define   S_02880C_ALPHA_TO_MASK_DISABLE(x)                           (((x) & 0x1) << 11)
  6625. #define   G_02880C_ALPHA_TO_MASK_DISABLE(x)                           (((x) >> 11) & 0x1)
  6626. #define   C_02880C_ALPHA_TO_MASK_DISABLE                              0xFFFFF7FF
  6627. #define   S_02880C_DEPTH_BEFORE_SHADER(x)                             (((x) & 0x1) << 12)
  6628. #define   G_02880C_DEPTH_BEFORE_SHADER(x)                             (((x) >> 12) & 0x1)
  6629. #define   C_02880C_DEPTH_BEFORE_SHADER                                0xFFFFEFFF
  6630. /* CIK */
  6631. #define   S_02880C_CONSERVATIVE_Z_EXPORT(x)                           (((x) & 0x03) << 13)
  6632. #define   G_02880C_CONSERVATIVE_Z_EXPORT(x)                           (((x) >> 13) & 0x03)
  6633. #define   C_02880C_CONSERVATIVE_Z_EXPORT                              0xFFFF9FFF
  6634. /*     */
  6635. #define R_028810_PA_CL_CLIP_CNTL                                        0x028810
  6636. #define   S_028810_UCP_ENA_0(x)                                       (((x) & 0x1) << 0)
  6637. #define   G_028810_UCP_ENA_0(x)                                       (((x) >> 0) & 0x1)
  6638. #define   C_028810_UCP_ENA_0                                          0xFFFFFFFE
  6639. #define   S_028810_UCP_ENA_1(x)                                       (((x) & 0x1) << 1)
  6640. #define   G_028810_UCP_ENA_1(x)                                       (((x) >> 1) & 0x1)
  6641. #define   C_028810_UCP_ENA_1                                          0xFFFFFFFD
  6642. #define   S_028810_UCP_ENA_2(x)                                       (((x) & 0x1) << 2)
  6643. #define   G_028810_UCP_ENA_2(x)                                       (((x) >> 2) & 0x1)
  6644. #define   C_028810_UCP_ENA_2                                          0xFFFFFFFB
  6645. #define   S_028810_UCP_ENA_3(x)                                       (((x) & 0x1) << 3)
  6646. #define   G_028810_UCP_ENA_3(x)                                       (((x) >> 3) & 0x1)
  6647. #define   C_028810_UCP_ENA_3                                          0xFFFFFFF7
  6648. #define   S_028810_UCP_ENA_4(x)                                       (((x) & 0x1) << 4)
  6649. #define   G_028810_UCP_ENA_4(x)                                       (((x) >> 4) & 0x1)
  6650. #define   C_028810_UCP_ENA_4                                          0xFFFFFFEF
  6651. #define   S_028810_UCP_ENA_5(x)                                       (((x) & 0x1) << 5)
  6652. #define   G_028810_UCP_ENA_5(x)                                       (((x) >> 5) & 0x1)
  6653. #define   C_028810_UCP_ENA_5                                          0xFFFFFFDF
  6654. #define   S_028810_PS_UCP_Y_SCALE_NEG(x)                              (((x) & 0x1) << 13)
  6655. #define   G_028810_PS_UCP_Y_SCALE_NEG(x)                              (((x) >> 13) & 0x1)
  6656. #define   C_028810_PS_UCP_Y_SCALE_NEG                                 0xFFFFDFFF
  6657. #define   S_028810_PS_UCP_MODE(x)                                     (((x) & 0x03) << 14)
  6658. #define   G_028810_PS_UCP_MODE(x)                                     (((x) >> 14) & 0x03)
  6659. #define   C_028810_PS_UCP_MODE                                        0xFFFF3FFF
  6660. #define   S_028810_CLIP_DISABLE(x)                                    (((x) & 0x1) << 16)
  6661. #define   G_028810_CLIP_DISABLE(x)                                    (((x) >> 16) & 0x1)
  6662. #define   C_028810_CLIP_DISABLE                                       0xFFFEFFFF
  6663. #define   S_028810_UCP_CULL_ONLY_ENA(x)                               (((x) & 0x1) << 17)
  6664. #define   G_028810_UCP_CULL_ONLY_ENA(x)                               (((x) >> 17) & 0x1)
  6665. #define   C_028810_UCP_CULL_ONLY_ENA                                  0xFFFDFFFF
  6666. #define   S_028810_BOUNDARY_EDGE_FLAG_ENA(x)                          (((x) & 0x1) << 18)
  6667. #define   G_028810_BOUNDARY_EDGE_FLAG_ENA(x)                          (((x) >> 18) & 0x1)
  6668. #define   C_028810_BOUNDARY_EDGE_FLAG_ENA                             0xFFFBFFFF
  6669. #define   S_028810_DX_CLIP_SPACE_DEF(x)                               (((x) & 0x1) << 19)
  6670. #define   G_028810_DX_CLIP_SPACE_DEF(x)                               (((x) >> 19) & 0x1)
  6671. #define   C_028810_DX_CLIP_SPACE_DEF                                  0xFFF7FFFF
  6672. #define   S_028810_DIS_CLIP_ERR_DETECT(x)                             (((x) & 0x1) << 20)
  6673. #define   G_028810_DIS_CLIP_ERR_DETECT(x)                             (((x) >> 20) & 0x1)
  6674. #define   C_028810_DIS_CLIP_ERR_DETECT                                0xFFEFFFFF
  6675. #define   S_028810_VTX_KILL_OR(x)                                     (((x) & 0x1) << 21)
  6676. #define   G_028810_VTX_KILL_OR(x)                                     (((x) >> 21) & 0x1)
  6677. #define   C_028810_VTX_KILL_OR                                        0xFFDFFFFF
  6678. #define   S_028810_DX_RASTERIZATION_KILL(x)                           (((x) & 0x1) << 22)
  6679. #define   G_028810_DX_RASTERIZATION_KILL(x)                           (((x) >> 22) & 0x1)
  6680. #define   C_028810_DX_RASTERIZATION_KILL                              0xFFBFFFFF
  6681. #define   S_028810_DX_LINEAR_ATTR_CLIP_ENA(x)                         (((x) & 0x1) << 24)
  6682. #define   G_028810_DX_LINEAR_ATTR_CLIP_ENA(x)                         (((x) >> 24) & 0x1)
  6683. #define   C_028810_DX_LINEAR_ATTR_CLIP_ENA                            0xFEFFFFFF
  6684. #define   S_028810_VTE_VPORT_PROVOKE_DISABLE(x)                       (((x) & 0x1) << 25)
  6685. #define   G_028810_VTE_VPORT_PROVOKE_DISABLE(x)                       (((x) >> 25) & 0x1)
  6686. #define   C_028810_VTE_VPORT_PROVOKE_DISABLE                          0xFDFFFFFF
  6687. #define   S_028810_ZCLIP_NEAR_DISABLE(x)                              (((x) & 0x1) << 26)
  6688. #define   G_028810_ZCLIP_NEAR_DISABLE(x)                              (((x) >> 26) & 0x1)
  6689. #define   C_028810_ZCLIP_NEAR_DISABLE                                 0xFBFFFFFF
  6690. #define   S_028810_ZCLIP_FAR_DISABLE(x)                               (((x) & 0x1) << 27)
  6691. #define   G_028810_ZCLIP_FAR_DISABLE(x)                               (((x) >> 27) & 0x1)
  6692. #define   C_028810_ZCLIP_FAR_DISABLE                                  0xF7FFFFFF
  6693. #define R_028814_PA_SU_SC_MODE_CNTL                                     0x028814
  6694. #define   S_028814_CULL_FRONT(x)                                      (((x) & 0x1) << 0)
  6695. #define   G_028814_CULL_FRONT(x)                                      (((x) >> 0) & 0x1)
  6696. #define   C_028814_CULL_FRONT                                         0xFFFFFFFE
  6697. #define   S_028814_CULL_BACK(x)                                       (((x) & 0x1) << 1)
  6698. #define   G_028814_CULL_BACK(x)                                       (((x) >> 1) & 0x1)
  6699. #define   C_028814_CULL_BACK                                          0xFFFFFFFD
  6700. #define   S_028814_FACE(x)                                            (((x) & 0x1) << 2)
  6701. #define   G_028814_FACE(x)                                            (((x) >> 2) & 0x1)
  6702. #define   C_028814_FACE                                               0xFFFFFFFB
  6703. #define   S_028814_POLY_MODE(x)                                       (((x) & 0x03) << 3)
  6704. #define   G_028814_POLY_MODE(x)                                       (((x) >> 3) & 0x03)
  6705. #define   C_028814_POLY_MODE                                          0xFFFFFFE7
  6706. #define     V_028814_X_DISABLE_POLY_MODE                            0x00
  6707. #define     V_028814_X_DUAL_MODE                                    0x01
  6708. #define   S_028814_POLYMODE_FRONT_PTYPE(x)                            (((x) & 0x07) << 5)
  6709. #define   G_028814_POLYMODE_FRONT_PTYPE(x)                            (((x) >> 5) & 0x07)
  6710. #define   C_028814_POLYMODE_FRONT_PTYPE                               0xFFFFFF1F
  6711. #define     V_028814_X_DRAW_POINTS                                  0x00
  6712. #define     V_028814_X_DRAW_LINES                                   0x01
  6713. #define     V_028814_X_DRAW_TRIANGLES                               0x02
  6714. #define   S_028814_POLYMODE_BACK_PTYPE(x)                             (((x) & 0x07) << 8)
  6715. #define   G_028814_POLYMODE_BACK_PTYPE(x)                             (((x) >> 8) & 0x07)
  6716. #define   C_028814_POLYMODE_BACK_PTYPE                                0xFFFFF8FF
  6717. #define     V_028814_X_DRAW_POINTS                                  0x00
  6718. #define     V_028814_X_DRAW_LINES                                   0x01
  6719. #define     V_028814_X_DRAW_TRIANGLES                               0x02
  6720. #define   S_028814_POLY_OFFSET_FRONT_ENABLE(x)                        (((x) & 0x1) << 11)
  6721. #define   G_028814_POLY_OFFSET_FRONT_ENABLE(x)                        (((x) >> 11) & 0x1)
  6722. #define   C_028814_POLY_OFFSET_FRONT_ENABLE                           0xFFFFF7FF
  6723. #define   S_028814_POLY_OFFSET_BACK_ENABLE(x)                         (((x) & 0x1) << 12)
  6724. #define   G_028814_POLY_OFFSET_BACK_ENABLE(x)                         (((x) >> 12) & 0x1)
  6725. #define   C_028814_POLY_OFFSET_BACK_ENABLE                            0xFFFFEFFF
  6726. #define   S_028814_POLY_OFFSET_PARA_ENABLE(x)                         (((x) & 0x1) << 13)
  6727. #define   G_028814_POLY_OFFSET_PARA_ENABLE(x)                         (((x) >> 13) & 0x1)
  6728. #define   C_028814_POLY_OFFSET_PARA_ENABLE                            0xFFFFDFFF
  6729. #define   S_028814_VTX_WINDOW_OFFSET_ENABLE(x)                        (((x) & 0x1) << 16)
  6730. #define   G_028814_VTX_WINDOW_OFFSET_ENABLE(x)                        (((x) >> 16) & 0x1)
  6731. #define   C_028814_VTX_WINDOW_OFFSET_ENABLE                           0xFFFEFFFF
  6732. #define   S_028814_PROVOKING_VTX_LAST(x)                              (((x) & 0x1) << 19)
  6733. #define   G_028814_PROVOKING_VTX_LAST(x)                              (((x) >> 19) & 0x1)
  6734. #define   C_028814_PROVOKING_VTX_LAST                                 0xFFF7FFFF
  6735. #define   S_028814_PERSP_CORR_DIS(x)                                  (((x) & 0x1) << 20)
  6736. #define   G_028814_PERSP_CORR_DIS(x)                                  (((x) >> 20) & 0x1)
  6737. #define   C_028814_PERSP_CORR_DIS                                     0xFFEFFFFF
  6738. #define   S_028814_MULTI_PRIM_IB_ENA(x)                               (((x) & 0x1) << 21)
  6739. #define   G_028814_MULTI_PRIM_IB_ENA(x)                               (((x) >> 21) & 0x1)
  6740. #define   C_028814_MULTI_PRIM_IB_ENA                                  0xFFDFFFFF
  6741. #define R_028818_PA_CL_VTE_CNTL                                         0x028818
  6742. #define   S_028818_VPORT_X_SCALE_ENA(x)                               (((x) & 0x1) << 0)
  6743. #define   G_028818_VPORT_X_SCALE_ENA(x)                               (((x) >> 0) & 0x1)
  6744. #define   C_028818_VPORT_X_SCALE_ENA                                  0xFFFFFFFE
  6745. #define   S_028818_VPORT_X_OFFSET_ENA(x)                              (((x) & 0x1) << 1)
  6746. #define   G_028818_VPORT_X_OFFSET_ENA(x)                              (((x) >> 1) & 0x1)
  6747. #define   C_028818_VPORT_X_OFFSET_ENA                                 0xFFFFFFFD
  6748. #define   S_028818_VPORT_Y_SCALE_ENA(x)                               (((x) & 0x1) << 2)
  6749. #define   G_028818_VPORT_Y_SCALE_ENA(x)                               (((x) >> 2) & 0x1)
  6750. #define   C_028818_VPORT_Y_SCALE_ENA                                  0xFFFFFFFB
  6751. #define   S_028818_VPORT_Y_OFFSET_ENA(x)                              (((x) & 0x1) << 3)
  6752. #define   G_028818_VPORT_Y_OFFSET_ENA(x)                              (((x) >> 3) & 0x1)
  6753. #define   C_028818_VPORT_Y_OFFSET_ENA                                 0xFFFFFFF7
  6754. #define   S_028818_VPORT_Z_SCALE_ENA(x)                               (((x) & 0x1) << 4)
  6755. #define   G_028818_VPORT_Z_SCALE_ENA(x)                               (((x) >> 4) & 0x1)
  6756. #define   C_028818_VPORT_Z_SCALE_ENA                                  0xFFFFFFEF
  6757. #define   S_028818_VPORT_Z_OFFSET_ENA(x)                              (((x) & 0x1) << 5)
  6758. #define   G_028818_VPORT_Z_OFFSET_ENA(x)                              (((x) >> 5) & 0x1)
  6759. #define   C_028818_VPORT_Z_OFFSET_ENA                                 0xFFFFFFDF
  6760. #define   S_028818_VTX_XY_FMT(x)                                      (((x) & 0x1) << 8)
  6761. #define   G_028818_VTX_XY_FMT(x)                                      (((x) >> 8) & 0x1)
  6762. #define   C_028818_VTX_XY_FMT                                         0xFFFFFEFF
  6763. #define   S_028818_VTX_Z_FMT(x)                                       (((x) & 0x1) << 9)
  6764. #define   G_028818_VTX_Z_FMT(x)                                       (((x) >> 9) & 0x1)
  6765. #define   C_028818_VTX_Z_FMT                                          0xFFFFFDFF
  6766. #define   S_028818_VTX_W0_FMT(x)                                      (((x) & 0x1) << 10)
  6767. #define   G_028818_VTX_W0_FMT(x)                                      (((x) >> 10) & 0x1)
  6768. #define   C_028818_VTX_W0_FMT                                         0xFFFFFBFF
  6769. #define R_02881C_PA_CL_VS_OUT_CNTL                                      0x02881C
  6770. #define   S_02881C_CLIP_DIST_ENA_0(x)                                 (((x) & 0x1) << 0)
  6771. #define   G_02881C_CLIP_DIST_ENA_0(x)                                 (((x) >> 0) & 0x1)
  6772. #define   C_02881C_CLIP_DIST_ENA_0                                    0xFFFFFFFE
  6773. #define   S_02881C_CLIP_DIST_ENA_1(x)                                 (((x) & 0x1) << 1)
  6774. #define   G_02881C_CLIP_DIST_ENA_1(x)                                 (((x) >> 1) & 0x1)
  6775. #define   C_02881C_CLIP_DIST_ENA_1                                    0xFFFFFFFD
  6776. #define   S_02881C_CLIP_DIST_ENA_2(x)                                 (((x) & 0x1) << 2)
  6777. #define   G_02881C_CLIP_DIST_ENA_2(x)                                 (((x) >> 2) & 0x1)
  6778. #define   C_02881C_CLIP_DIST_ENA_2                                    0xFFFFFFFB
  6779. #define   S_02881C_CLIP_DIST_ENA_3(x)                                 (((x) & 0x1) << 3)
  6780. #define   G_02881C_CLIP_DIST_ENA_3(x)                                 (((x) >> 3) & 0x1)
  6781. #define   C_02881C_CLIP_DIST_ENA_3                                    0xFFFFFFF7
  6782. #define   S_02881C_CLIP_DIST_ENA_4(x)                                 (((x) & 0x1) << 4)
  6783. #define   G_02881C_CLIP_DIST_ENA_4(x)                                 (((x) >> 4) & 0x1)
  6784. #define   C_02881C_CLIP_DIST_ENA_4                                    0xFFFFFFEF
  6785. #define   S_02881C_CLIP_DIST_ENA_5(x)                                 (((x) & 0x1) << 5)
  6786. #define   G_02881C_CLIP_DIST_ENA_5(x)                                 (((x) >> 5) & 0x1)
  6787. #define   C_02881C_CLIP_DIST_ENA_5                                    0xFFFFFFDF
  6788. #define   S_02881C_CLIP_DIST_ENA_6(x)                                 (((x) & 0x1) << 6)
  6789. #define   G_02881C_CLIP_DIST_ENA_6(x)                                 (((x) >> 6) & 0x1)
  6790. #define   C_02881C_CLIP_DIST_ENA_6                                    0xFFFFFFBF
  6791. #define   S_02881C_CLIP_DIST_ENA_7(x)                                 (((x) & 0x1) << 7)
  6792. #define   G_02881C_CLIP_DIST_ENA_7(x)                                 (((x) >> 7) & 0x1)
  6793. #define   C_02881C_CLIP_DIST_ENA_7                                    0xFFFFFF7F
  6794. #define   S_02881C_CULL_DIST_ENA_0(x)                                 (((x) & 0x1) << 8)
  6795. #define   G_02881C_CULL_DIST_ENA_0(x)                                 (((x) >> 8) & 0x1)
  6796. #define   C_02881C_CULL_DIST_ENA_0                                    0xFFFFFEFF
  6797. #define   S_02881C_CULL_DIST_ENA_1(x)                                 (((x) & 0x1) << 9)
  6798. #define   G_02881C_CULL_DIST_ENA_1(x)                                 (((x) >> 9) & 0x1)
  6799. #define   C_02881C_CULL_DIST_ENA_1                                    0xFFFFFDFF
  6800. #define   S_02881C_CULL_DIST_ENA_2(x)                                 (((x) & 0x1) << 10)
  6801. #define   G_02881C_CULL_DIST_ENA_2(x)                                 (((x) >> 10) & 0x1)
  6802. #define   C_02881C_CULL_DIST_ENA_2                                    0xFFFFFBFF
  6803. #define   S_02881C_CULL_DIST_ENA_3(x)                                 (((x) & 0x1) << 11)
  6804. #define   G_02881C_CULL_DIST_ENA_3(x)                                 (((x) >> 11) & 0x1)
  6805. #define   C_02881C_CULL_DIST_ENA_3                                    0xFFFFF7FF
  6806. #define   S_02881C_CULL_DIST_ENA_4(x)                                 (((x) & 0x1) << 12)
  6807. #define   G_02881C_CULL_DIST_ENA_4(x)                                 (((x) >> 12) & 0x1)
  6808. #define   C_02881C_CULL_DIST_ENA_4                                    0xFFFFEFFF
  6809. #define   S_02881C_CULL_DIST_ENA_5(x)                                 (((x) & 0x1) << 13)
  6810. #define   G_02881C_CULL_DIST_ENA_5(x)                                 (((x) >> 13) & 0x1)
  6811. #define   C_02881C_CULL_DIST_ENA_5                                    0xFFFFDFFF
  6812. #define   S_02881C_CULL_DIST_ENA_6(x)                                 (((x) & 0x1) << 14)
  6813. #define   G_02881C_CULL_DIST_ENA_6(x)                                 (((x) >> 14) & 0x1)
  6814. #define   C_02881C_CULL_DIST_ENA_6                                    0xFFFFBFFF
  6815. #define   S_02881C_CULL_DIST_ENA_7(x)                                 (((x) & 0x1) << 15)
  6816. #define   G_02881C_CULL_DIST_ENA_7(x)                                 (((x) >> 15) & 0x1)
  6817. #define   C_02881C_CULL_DIST_ENA_7                                    0xFFFF7FFF
  6818. #define   S_02881C_USE_VTX_POINT_SIZE(x)                              (((x) & 0x1) << 16)
  6819. #define   G_02881C_USE_VTX_POINT_SIZE(x)                              (((x) >> 16) & 0x1)
  6820. #define   C_02881C_USE_VTX_POINT_SIZE                                 0xFFFEFFFF
  6821. #define   S_02881C_USE_VTX_EDGE_FLAG(x)                               (((x) & 0x1) << 17)
  6822. #define   G_02881C_USE_VTX_EDGE_FLAG(x)                               (((x) >> 17) & 0x1)
  6823. #define   C_02881C_USE_VTX_EDGE_FLAG                                  0xFFFDFFFF
  6824. #define   S_02881C_USE_VTX_RENDER_TARGET_INDX(x)                      (((x) & 0x1) << 18)
  6825. #define   G_02881C_USE_VTX_RENDER_TARGET_INDX(x)                      (((x) >> 18) & 0x1)
  6826. #define   C_02881C_USE_VTX_RENDER_TARGET_INDX                         0xFFFBFFFF
  6827. #define   S_02881C_USE_VTX_VIEWPORT_INDX(x)                           (((x) & 0x1) << 19)
  6828. #define   G_02881C_USE_VTX_VIEWPORT_INDX(x)                           (((x) >> 19) & 0x1)
  6829. #define   C_02881C_USE_VTX_VIEWPORT_INDX                              0xFFF7FFFF
  6830. #define   S_02881C_USE_VTX_KILL_FLAG(x)                               (((x) & 0x1) << 20)
  6831. #define   G_02881C_USE_VTX_KILL_FLAG(x)                               (((x) >> 20) & 0x1)
  6832. #define   C_02881C_USE_VTX_KILL_FLAG                                  0xFFEFFFFF
  6833. #define   S_02881C_VS_OUT_MISC_VEC_ENA(x)                             (((x) & 0x1) << 21)
  6834. #define   G_02881C_VS_OUT_MISC_VEC_ENA(x)                             (((x) >> 21) & 0x1)
  6835. #define   C_02881C_VS_OUT_MISC_VEC_ENA                                0xFFDFFFFF
  6836. #define   S_02881C_VS_OUT_CCDIST0_VEC_ENA(x)                          (((x) & 0x1) << 22)
  6837. #define   G_02881C_VS_OUT_CCDIST0_VEC_ENA(x)                          (((x) >> 22) & 0x1)
  6838. #define   C_02881C_VS_OUT_CCDIST0_VEC_ENA                             0xFFBFFFFF
  6839. #define   S_02881C_VS_OUT_CCDIST1_VEC_ENA(x)                          (((x) & 0x1) << 23)
  6840. #define   G_02881C_VS_OUT_CCDIST1_VEC_ENA(x)                          (((x) >> 23) & 0x1)
  6841. #define   C_02881C_VS_OUT_CCDIST1_VEC_ENA                             0xFF7FFFFF
  6842. #define   S_02881C_VS_OUT_MISC_SIDE_BUS_ENA(x)                        (((x) & 0x1) << 24)
  6843. #define   G_02881C_VS_OUT_MISC_SIDE_BUS_ENA(x)                        (((x) >> 24) & 0x1)
  6844. #define   C_02881C_VS_OUT_MISC_SIDE_BUS_ENA                           0xFEFFFFFF
  6845. #define   S_02881C_USE_VTX_GS_CUT_FLAG(x)                             (((x) & 0x1) << 25)
  6846. #define   G_02881C_USE_VTX_GS_CUT_FLAG(x)                             (((x) >> 25) & 0x1)
  6847. #define   C_02881C_USE_VTX_GS_CUT_FLAG                                0xFDFFFFFF
  6848. #define R_028820_PA_CL_NANINF_CNTL                                      0x028820
  6849. #define   S_028820_VTE_XY_INF_DISCARD(x)                              (((x) & 0x1) << 0)
  6850. #define   G_028820_VTE_XY_INF_DISCARD(x)                              (((x) >> 0) & 0x1)
  6851. #define   C_028820_VTE_XY_INF_DISCARD                                 0xFFFFFFFE
  6852. #define   S_028820_VTE_Z_INF_DISCARD(x)                               (((x) & 0x1) << 1)
  6853. #define   G_028820_VTE_Z_INF_DISCARD(x)                               (((x) >> 1) & 0x1)
  6854. #define   C_028820_VTE_Z_INF_DISCARD                                  0xFFFFFFFD
  6855. #define   S_028820_VTE_W_INF_DISCARD(x)                               (((x) & 0x1) << 2)
  6856. #define   G_028820_VTE_W_INF_DISCARD(x)                               (((x) >> 2) & 0x1)
  6857. #define   C_028820_VTE_W_INF_DISCARD                                  0xFFFFFFFB
  6858. #define   S_028820_VTE_0XNANINF_IS_0(x)                               (((x) & 0x1) << 3)
  6859. #define   G_028820_VTE_0XNANINF_IS_0(x)                               (((x) >> 3) & 0x1)
  6860. #define   C_028820_VTE_0XNANINF_IS_0                                  0xFFFFFFF7
  6861. #define   S_028820_VTE_XY_NAN_RETAIN(x)                               (((x) & 0x1) << 4)
  6862. #define   G_028820_VTE_XY_NAN_RETAIN(x)                               (((x) >> 4) & 0x1)
  6863. #define   C_028820_VTE_XY_NAN_RETAIN                                  0xFFFFFFEF
  6864. #define   S_028820_VTE_Z_NAN_RETAIN(x)                                (((x) & 0x1) << 5)
  6865. #define   G_028820_VTE_Z_NAN_RETAIN(x)                                (((x) >> 5) & 0x1)
  6866. #define   C_028820_VTE_Z_NAN_RETAIN                                   0xFFFFFFDF
  6867. #define   S_028820_VTE_W_NAN_RETAIN(x)                                (((x) & 0x1) << 6)
  6868. #define   G_028820_VTE_W_NAN_RETAIN(x)                                (((x) >> 6) & 0x1)
  6869. #define   C_028820_VTE_W_NAN_RETAIN                                   0xFFFFFFBF
  6870. #define   S_028820_VTE_W_RECIP_NAN_IS_0(x)                            (((x) & 0x1) << 7)
  6871. #define   G_028820_VTE_W_RECIP_NAN_IS_0(x)                            (((x) >> 7) & 0x1)
  6872. #define   C_028820_VTE_W_RECIP_NAN_IS_0                               0xFFFFFF7F
  6873. #define   S_028820_VS_XY_NAN_TO_INF(x)                                (((x) & 0x1) << 8)
  6874. #define   G_028820_VS_XY_NAN_TO_INF(x)                                (((x) >> 8) & 0x1)
  6875. #define   C_028820_VS_XY_NAN_TO_INF                                   0xFFFFFEFF
  6876. #define   S_028820_VS_XY_INF_RETAIN(x)                                (((x) & 0x1) << 9)
  6877. #define   G_028820_VS_XY_INF_RETAIN(x)                                (((x) >> 9) & 0x1)
  6878. #define   C_028820_VS_XY_INF_RETAIN                                   0xFFFFFDFF
  6879. #define   S_028820_VS_Z_NAN_TO_INF(x)                                 (((x) & 0x1) << 10)
  6880. #define   G_028820_VS_Z_NAN_TO_INF(x)                                 (((x) >> 10) & 0x1)
  6881. #define   C_028820_VS_Z_NAN_TO_INF                                    0xFFFFFBFF
  6882. #define   S_028820_VS_Z_INF_RETAIN(x)                                 (((x) & 0x1) << 11)
  6883. #define   G_028820_VS_Z_INF_RETAIN(x)                                 (((x) >> 11) & 0x1)
  6884. #define   C_028820_VS_Z_INF_RETAIN                                    0xFFFFF7FF
  6885. #define   S_028820_VS_W_NAN_TO_INF(x)                                 (((x) & 0x1) << 12)
  6886. #define   G_028820_VS_W_NAN_TO_INF(x)                                 (((x) >> 12) & 0x1)
  6887. #define   C_028820_VS_W_NAN_TO_INF                                    0xFFFFEFFF
  6888. #define   S_028820_VS_W_INF_RETAIN(x)                                 (((x) & 0x1) << 13)
  6889. #define   G_028820_VS_W_INF_RETAIN(x)                                 (((x) >> 13) & 0x1)
  6890. #define   C_028820_VS_W_INF_RETAIN                                    0xFFFFDFFF
  6891. #define   S_028820_VS_CLIP_DIST_INF_DISCARD(x)                        (((x) & 0x1) << 14)
  6892. #define   G_028820_VS_CLIP_DIST_INF_DISCARD(x)                        (((x) >> 14) & 0x1)
  6893. #define   C_028820_VS_CLIP_DIST_INF_DISCARD                           0xFFFFBFFF
  6894. #define   S_028820_VTE_NO_OUTPUT_NEG_0(x)                             (((x) & 0x1) << 20)
  6895. #define   G_028820_VTE_NO_OUTPUT_NEG_0(x)                             (((x) >> 20) & 0x1)
  6896. #define   C_028820_VTE_NO_OUTPUT_NEG_0                                0xFFEFFFFF
  6897. #define R_028824_PA_SU_LINE_STIPPLE_CNTL                                0x028824
  6898. #define   S_028824_LINE_STIPPLE_RESET(x)                              (((x) & 0x03) << 0)
  6899. #define   G_028824_LINE_STIPPLE_RESET(x)                              (((x) >> 0) & 0x03)
  6900. #define   C_028824_LINE_STIPPLE_RESET                                 0xFFFFFFFC
  6901. #define   S_028824_EXPAND_FULL_LENGTH(x)                              (((x) & 0x1) << 2)
  6902. #define   G_028824_EXPAND_FULL_LENGTH(x)                              (((x) >> 2) & 0x1)
  6903. #define   C_028824_EXPAND_FULL_LENGTH                                 0xFFFFFFFB
  6904. #define   S_028824_FRACTIONAL_ACCUM(x)                                (((x) & 0x1) << 3)
  6905. #define   G_028824_FRACTIONAL_ACCUM(x)                                (((x) >> 3) & 0x1)
  6906. #define   C_028824_FRACTIONAL_ACCUM                                   0xFFFFFFF7
  6907. #define   S_028824_DIAMOND_ADJUST(x)                                  (((x) & 0x1) << 4)
  6908. #define   G_028824_DIAMOND_ADJUST(x)                                  (((x) >> 4) & 0x1)
  6909. #define   C_028824_DIAMOND_ADJUST                                     0xFFFFFFEF
  6910. #define R_028828_PA_SU_LINE_STIPPLE_SCALE                               0x028828
  6911. #define R_02882C_PA_SU_PRIM_FILTER_CNTL                                 0x02882C
  6912. #define   S_02882C_TRIANGLE_FILTER_DISABLE(x)                         (((x) & 0x1) << 0)
  6913. #define   G_02882C_TRIANGLE_FILTER_DISABLE(x)                         (((x) >> 0) & 0x1)
  6914. #define   C_02882C_TRIANGLE_FILTER_DISABLE                            0xFFFFFFFE
  6915. #define   S_02882C_LINE_FILTER_DISABLE(x)                             (((x) & 0x1) << 1)
  6916. #define   G_02882C_LINE_FILTER_DISABLE(x)                             (((x) >> 1) & 0x1)
  6917. #define   C_02882C_LINE_FILTER_DISABLE                                0xFFFFFFFD
  6918. #define   S_02882C_POINT_FILTER_DISABLE(x)                            (((x) & 0x1) << 2)
  6919. #define   G_02882C_POINT_FILTER_DISABLE(x)                            (((x) >> 2) & 0x1)
  6920. #define   C_02882C_POINT_FILTER_DISABLE                               0xFFFFFFFB
  6921. #define   S_02882C_RECTANGLE_FILTER_DISABLE(x)                        (((x) & 0x1) << 3)
  6922. #define   G_02882C_RECTANGLE_FILTER_DISABLE(x)                        (((x) >> 3) & 0x1)
  6923. #define   C_02882C_RECTANGLE_FILTER_DISABLE                           0xFFFFFFF7
  6924. #define   S_02882C_TRIANGLE_EXPAND_ENA(x)                             (((x) & 0x1) << 4)
  6925. #define   G_02882C_TRIANGLE_EXPAND_ENA(x)                             (((x) >> 4) & 0x1)
  6926. #define   C_02882C_TRIANGLE_EXPAND_ENA                                0xFFFFFFEF
  6927. #define   S_02882C_LINE_EXPAND_ENA(x)                                 (((x) & 0x1) << 5)
  6928. #define   G_02882C_LINE_EXPAND_ENA(x)                                 (((x) >> 5) & 0x1)
  6929. #define   C_02882C_LINE_EXPAND_ENA                                    0xFFFFFFDF
  6930. #define   S_02882C_POINT_EXPAND_ENA(x)                                (((x) & 0x1) << 6)
  6931. #define   G_02882C_POINT_EXPAND_ENA(x)                                (((x) >> 6) & 0x1)
  6932. #define   C_02882C_POINT_EXPAND_ENA                                   0xFFFFFFBF
  6933. #define   S_02882C_RECTANGLE_EXPAND_ENA(x)                            (((x) & 0x1) << 7)
  6934. #define   G_02882C_RECTANGLE_EXPAND_ENA(x)                            (((x) >> 7) & 0x1)
  6935. #define   C_02882C_RECTANGLE_EXPAND_ENA                               0xFFFFFF7F
  6936. #define   S_02882C_PRIM_EXPAND_CONSTANT(x)                            (((x) & 0xFF) << 8)
  6937. #define   G_02882C_PRIM_EXPAND_CONSTANT(x)                            (((x) >> 8) & 0xFF)
  6938. #define   C_02882C_PRIM_EXPAND_CONSTANT                               0xFFFF00FF
  6939. /* CIK */
  6940. #define   S_02882C_XMAX_RIGHT_EXCLUSION(x)                            (((x) & 0x1) << 30)
  6941. #define   G_02882C_XMAX_RIGHT_EXCLUSION(x)                            (((x) >> 30) & 0x1)
  6942. #define   C_02882C_XMAX_RIGHT_EXCLUSION                               0xBFFFFFFF
  6943. #define   S_02882C_YMAX_BOTTOM_EXCLUSION(x)                           (((x) & 0x1) << 31)
  6944. #define   G_02882C_YMAX_BOTTOM_EXCLUSION(x)                           (((x) >> 31) & 0x1)
  6945. #define   C_02882C_YMAX_BOTTOM_EXCLUSION                              0x7FFFFFFF
  6946. /*     */
  6947. #define R_028A00_PA_SU_POINT_SIZE                                       0x028A00
  6948. #define   S_028A00_HEIGHT(x)                                          (((x) & 0xFFFF) << 0)
  6949. #define   G_028A00_HEIGHT(x)                                          (((x) >> 0) & 0xFFFF)
  6950. #define   C_028A00_HEIGHT                                             0xFFFF0000
  6951. #define   S_028A00_WIDTH(x)                                           (((x) & 0xFFFF) << 16)
  6952. #define   G_028A00_WIDTH(x)                                           (((x) >> 16) & 0xFFFF)
  6953. #define   C_028A00_WIDTH                                              0x0000FFFF
  6954. #define R_028A04_PA_SU_POINT_MINMAX                                     0x028A04
  6955. #define   S_028A04_MIN_SIZE(x)                                        (((x) & 0xFFFF) << 0)
  6956. #define   G_028A04_MIN_SIZE(x)                                        (((x) >> 0) & 0xFFFF)
  6957. #define   C_028A04_MIN_SIZE                                           0xFFFF0000
  6958. #define   S_028A04_MAX_SIZE(x)                                        (((x) & 0xFFFF) << 16)
  6959. #define   G_028A04_MAX_SIZE(x)                                        (((x) >> 16) & 0xFFFF)
  6960. #define   C_028A04_MAX_SIZE                                           0x0000FFFF
  6961. #define R_028A08_PA_SU_LINE_CNTL                                        0x028A08
  6962. #define   S_028A08_WIDTH(x)                                           (((x) & 0xFFFF) << 0)
  6963. #define   G_028A08_WIDTH(x)                                           (((x) >> 0) & 0xFFFF)
  6964. #define   C_028A08_WIDTH                                              0xFFFF0000
  6965. #define R_028A0C_PA_SC_LINE_STIPPLE                                     0x028A0C
  6966. #define   S_028A0C_LINE_PATTERN(x)                                    (((x) & 0xFFFF) << 0)
  6967. #define   G_028A0C_LINE_PATTERN(x)                                    (((x) >> 0) & 0xFFFF)
  6968. #define   C_028A0C_LINE_PATTERN                                       0xFFFF0000
  6969. #define   S_028A0C_REPEAT_COUNT(x)                                    (((x) & 0xFF) << 16)
  6970. #define   G_028A0C_REPEAT_COUNT(x)                                    (((x) >> 16) & 0xFF)
  6971. #define   C_028A0C_REPEAT_COUNT                                       0xFF00FFFF
  6972. #define   S_028A0C_PATTERN_BIT_ORDER(x)                               (((x) & 0x1) << 28)
  6973. #define   G_028A0C_PATTERN_BIT_ORDER(x)                               (((x) >> 28) & 0x1)
  6974. #define   C_028A0C_PATTERN_BIT_ORDER                                  0xEFFFFFFF
  6975. #define   S_028A0C_AUTO_RESET_CNTL(x)                                 (((x) & 0x03) << 29)
  6976. #define   G_028A0C_AUTO_RESET_CNTL(x)                                 (((x) >> 29) & 0x03)
  6977. #define   C_028A0C_AUTO_RESET_CNTL                                    0x9FFFFFFF
  6978. #define R_028A10_VGT_OUTPUT_PATH_CNTL                                   0x028A10
  6979. #define   S_028A10_PATH_SELECT(x)                                     (((x) & 0x07) << 0)
  6980. #define   G_028A10_PATH_SELECT(x)                                     (((x) >> 0) & 0x07)
  6981. #define   C_028A10_PATH_SELECT                                        0xFFFFFFF8
  6982. #define     V_028A10_VGT_OUTPATH_VTX_REUSE                          0x00
  6983. #define     V_028A10_VGT_OUTPATH_TESS_EN                            0x01
  6984. #define     V_028A10_VGT_OUTPATH_PASSTHRU                           0x02
  6985. #define     V_028A10_VGT_OUTPATH_GS_BLOCK                           0x03
  6986. #define     V_028A10_VGT_OUTPATH_HS_BLOCK                           0x04
  6987. #define R_028A14_VGT_HOS_CNTL                                           0x028A14
  6988. #define   S_028A14_TESS_MODE(x)                                       (((x) & 0x03) << 0)
  6989. #define   G_028A14_TESS_MODE(x)                                       (((x) >> 0) & 0x03)
  6990. #define   C_028A14_TESS_MODE                                          0xFFFFFFFC
  6991. #define R_028A18_VGT_HOS_MAX_TESS_LEVEL                                 0x028A18
  6992. #define R_028A1C_VGT_HOS_MIN_TESS_LEVEL                                 0x028A1C
  6993. #define R_028A20_VGT_HOS_REUSE_DEPTH                                    0x028A20
  6994. #define   S_028A20_REUSE_DEPTH(x)                                     (((x) & 0xFF) << 0)
  6995. #define   G_028A20_REUSE_DEPTH(x)                                     (((x) >> 0) & 0xFF)
  6996. #define   C_028A20_REUSE_DEPTH                                        0xFFFFFF00
  6997. #define R_028A24_VGT_GROUP_PRIM_TYPE                                    0x028A24
  6998. #define   S_028A24_PRIM_TYPE(x)                                       (((x) & 0x1F) << 0)
  6999. #define   G_028A24_PRIM_TYPE(x)                                       (((x) >> 0) & 0x1F)
  7000. #define   C_028A24_PRIM_TYPE                                          0xFFFFFFE0
  7001. #define     V_028A24_VGT_GRP_3D_POINT                               0x00
  7002. #define     V_028A24_VGT_GRP_3D_LINE                                0x01
  7003. #define     V_028A24_VGT_GRP_3D_TRI                                 0x02
  7004. #define     V_028A24_VGT_GRP_3D_RECT                                0x03
  7005. #define     V_028A24_VGT_GRP_3D_QUAD                                0x04
  7006. #define     V_028A24_VGT_GRP_2D_COPY_RECT_V0                        0x05
  7007. #define     V_028A24_VGT_GRP_2D_COPY_RECT_V1                        0x06
  7008. #define     V_028A24_VGT_GRP_2D_COPY_RECT_V2                        0x07
  7009. #define     V_028A24_VGT_GRP_2D_COPY_RECT_V3                        0x08
  7010. #define     V_028A24_VGT_GRP_2D_FILL_RECT                           0x09
  7011. #define     V_028A24_VGT_GRP_2D_LINE                                0x0A
  7012. #define     V_028A24_VGT_GRP_2D_TRI                                 0x0B
  7013. #define     V_028A24_VGT_GRP_PRIM_INDEX_LINE                        0x0C
  7014. #define     V_028A24_VGT_GRP_PRIM_INDEX_TRI                         0x0D
  7015. #define     V_028A24_VGT_GRP_PRIM_INDEX_QUAD                        0x0E
  7016. #define     V_028A24_VGT_GRP_3D_LINE_ADJ                            0x0F
  7017. #define     V_028A24_VGT_GRP_3D_TRI_ADJ                             0x10
  7018. #define     V_028A24_VGT_GRP_3D_PATCH                               0x11
  7019. #define   S_028A24_RETAIN_ORDER(x)                                    (((x) & 0x1) << 14)
  7020. #define   G_028A24_RETAIN_ORDER(x)                                    (((x) >> 14) & 0x1)
  7021. #define   C_028A24_RETAIN_ORDER                                       0xFFFFBFFF
  7022. #define   S_028A24_RETAIN_QUADS(x)                                    (((x) & 0x1) << 15)
  7023. #define   G_028A24_RETAIN_QUADS(x)                                    (((x) >> 15) & 0x1)
  7024. #define   C_028A24_RETAIN_QUADS                                       0xFFFF7FFF
  7025. #define   S_028A24_PRIM_ORDER(x)                                      (((x) & 0x07) << 16)
  7026. #define   G_028A24_PRIM_ORDER(x)                                      (((x) >> 16) & 0x07)
  7027. #define   C_028A24_PRIM_ORDER                                         0xFFF8FFFF
  7028. #define     V_028A24_VGT_GRP_LIST                                   0x00
  7029. #define     V_028A24_VGT_GRP_STRIP                                  0x01
  7030. #define     V_028A24_VGT_GRP_FAN                                    0x02
  7031. #define     V_028A24_VGT_GRP_LOOP                                   0x03
  7032. #define     V_028A24_VGT_GRP_POLYGON                                0x04
  7033. #define R_028A28_VGT_GROUP_FIRST_DECR                                   0x028A28
  7034. #define   S_028A28_FIRST_DECR(x)                                      (((x) & 0x0F) << 0)
  7035. #define   G_028A28_FIRST_DECR(x)                                      (((x) >> 0) & 0x0F)
  7036. #define   C_028A28_FIRST_DECR                                         0xFFFFFFF0
  7037. #define R_028A2C_VGT_GROUP_DECR                                         0x028A2C
  7038. #define   S_028A2C_DECR(x)                                            (((x) & 0x0F) << 0)
  7039. #define   G_028A2C_DECR(x)                                            (((x) >> 0) & 0x0F)
  7040. #define   C_028A2C_DECR                                               0xFFFFFFF0
  7041. #define R_028A30_VGT_GROUP_VECT_0_CNTL                                  0x028A30
  7042. #define   S_028A30_COMP_X_EN(x)                                       (((x) & 0x1) << 0)
  7043. #define   G_028A30_COMP_X_EN(x)                                       (((x) >> 0) & 0x1)
  7044. #define   C_028A30_COMP_X_EN                                          0xFFFFFFFE
  7045. #define   S_028A30_COMP_Y_EN(x)                                       (((x) & 0x1) << 1)
  7046. #define   G_028A30_COMP_Y_EN(x)                                       (((x) >> 1) & 0x1)
  7047. #define   C_028A30_COMP_Y_EN                                          0xFFFFFFFD
  7048. #define   S_028A30_COMP_Z_EN(x)                                       (((x) & 0x1) << 2)
  7049. #define   G_028A30_COMP_Z_EN(x)                                       (((x) >> 2) & 0x1)
  7050. #define   C_028A30_COMP_Z_EN                                          0xFFFFFFFB
  7051. #define   S_028A30_COMP_W_EN(x)                                       (((x) & 0x1) << 3)
  7052. #define   G_028A30_COMP_W_EN(x)                                       (((x) >> 3) & 0x1)
  7053. #define   C_028A30_COMP_W_EN                                          0xFFFFFFF7
  7054. #define   S_028A30_STRIDE(x)                                          (((x) & 0xFF) << 8)
  7055. #define   G_028A30_STRIDE(x)                                          (((x) >> 8) & 0xFF)
  7056. #define   C_028A30_STRIDE                                             0xFFFF00FF
  7057. #define   S_028A30_SHIFT(x)                                           (((x) & 0xFF) << 16)
  7058. #define   G_028A30_SHIFT(x)                                           (((x) >> 16) & 0xFF)
  7059. #define   C_028A30_SHIFT                                              0xFF00FFFF
  7060. #define R_028A34_VGT_GROUP_VECT_1_CNTL                                  0x028A34
  7061. #define   S_028A34_COMP_X_EN(x)                                       (((x) & 0x1) << 0)
  7062. #define   G_028A34_COMP_X_EN(x)                                       (((x) >> 0) & 0x1)
  7063. #define   C_028A34_COMP_X_EN                                          0xFFFFFFFE
  7064. #define   S_028A34_COMP_Y_EN(x)                                       (((x) & 0x1) << 1)
  7065. #define   G_028A34_COMP_Y_EN(x)                                       (((x) >> 1) & 0x1)
  7066. #define   C_028A34_COMP_Y_EN                                          0xFFFFFFFD
  7067. #define   S_028A34_COMP_Z_EN(x)                                       (((x) & 0x1) << 2)
  7068. #define   G_028A34_COMP_Z_EN(x)                                       (((x) >> 2) & 0x1)
  7069. #define   C_028A34_COMP_Z_EN                                          0xFFFFFFFB
  7070. #define   S_028A34_COMP_W_EN(x)                                       (((x) & 0x1) << 3)
  7071. #define   G_028A34_COMP_W_EN(x)                                       (((x) >> 3) & 0x1)
  7072. #define   C_028A34_COMP_W_EN                                          0xFFFFFFF7
  7073. #define   S_028A34_STRIDE(x)                                          (((x) & 0xFF) << 8)
  7074. #define   G_028A34_STRIDE(x)                                          (((x) >> 8) & 0xFF)
  7075. #define   C_028A34_STRIDE                                             0xFFFF00FF
  7076. #define   S_028A34_SHIFT(x)                                           (((x) & 0xFF) << 16)
  7077. #define   G_028A34_SHIFT(x)                                           (((x) >> 16) & 0xFF)
  7078. #define   C_028A34_SHIFT                                              0xFF00FFFF
  7079. #define R_028A38_VGT_GROUP_VECT_0_FMT_CNTL                              0x028A38
  7080. #define   S_028A38_X_CONV(x)                                          (((x) & 0x0F) << 0)
  7081. #define   G_028A38_X_CONV(x)                                          (((x) >> 0) & 0x0F)
  7082. #define   C_028A38_X_CONV                                             0xFFFFFFF0
  7083. #define     V_028A38_VGT_GRP_INDEX_16                               0x00
  7084. #define     V_028A38_VGT_GRP_INDEX_32                               0x01
  7085. #define     V_028A38_VGT_GRP_UINT_16                                0x02
  7086. #define     V_028A38_VGT_GRP_UINT_32                                0x03
  7087. #define     V_028A38_VGT_GRP_SINT_16                                0x04
  7088. #define     V_028A38_VGT_GRP_SINT_32                                0x05
  7089. #define     V_028A38_VGT_GRP_FLOAT_32                               0x06
  7090. #define     V_028A38_VGT_GRP_AUTO_PRIM                              0x07
  7091. #define     V_028A38_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7092. #define   S_028A38_X_OFFSET(x)                                        (((x) & 0x0F) << 4)
  7093. #define   G_028A38_X_OFFSET(x)                                        (((x) >> 4) & 0x0F)
  7094. #define   C_028A38_X_OFFSET                                           0xFFFFFF0F
  7095. #define   S_028A38_Y_CONV(x)                                          (((x) & 0x0F) << 8)
  7096. #define   G_028A38_Y_CONV(x)                                          (((x) >> 8) & 0x0F)
  7097. #define   C_028A38_Y_CONV                                             0xFFFFF0FF
  7098. #define     V_028A38_VGT_GRP_INDEX_16                               0x00
  7099. #define     V_028A38_VGT_GRP_INDEX_32                               0x01
  7100. #define     V_028A38_VGT_GRP_UINT_16                                0x02
  7101. #define     V_028A38_VGT_GRP_UINT_32                                0x03
  7102. #define     V_028A38_VGT_GRP_SINT_16                                0x04
  7103. #define     V_028A38_VGT_GRP_SINT_32                                0x05
  7104. #define     V_028A38_VGT_GRP_FLOAT_32                               0x06
  7105. #define     V_028A38_VGT_GRP_AUTO_PRIM                              0x07
  7106. #define     V_028A38_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7107. #define   S_028A38_Y_OFFSET(x)                                        (((x) & 0x0F) << 12)
  7108. #define   G_028A38_Y_OFFSET(x)                                        (((x) >> 12) & 0x0F)
  7109. #define   C_028A38_Y_OFFSET                                           0xFFFF0FFF
  7110. #define   S_028A38_Z_CONV(x)                                          (((x) & 0x0F) << 16)
  7111. #define   G_028A38_Z_CONV(x)                                          (((x) >> 16) & 0x0F)
  7112. #define   C_028A38_Z_CONV                                             0xFFF0FFFF
  7113. #define     V_028A38_VGT_GRP_INDEX_16                               0x00
  7114. #define     V_028A38_VGT_GRP_INDEX_32                               0x01
  7115. #define     V_028A38_VGT_GRP_UINT_16                                0x02
  7116. #define     V_028A38_VGT_GRP_UINT_32                                0x03
  7117. #define     V_028A38_VGT_GRP_SINT_16                                0x04
  7118. #define     V_028A38_VGT_GRP_SINT_32                                0x05
  7119. #define     V_028A38_VGT_GRP_FLOAT_32                               0x06
  7120. #define     V_028A38_VGT_GRP_AUTO_PRIM                              0x07
  7121. #define     V_028A38_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7122. #define   S_028A38_Z_OFFSET(x)                                        (((x) & 0x0F) << 20)
  7123. #define   G_028A38_Z_OFFSET(x)                                        (((x) >> 20) & 0x0F)
  7124. #define   C_028A38_Z_OFFSET                                           0xFF0FFFFF
  7125. #define   S_028A38_W_CONV(x)                                          (((x) & 0x0F) << 24)
  7126. #define   G_028A38_W_CONV(x)                                          (((x) >> 24) & 0x0F)
  7127. #define   C_028A38_W_CONV                                             0xF0FFFFFF
  7128. #define     V_028A38_VGT_GRP_INDEX_16                               0x00
  7129. #define     V_028A38_VGT_GRP_INDEX_32                               0x01
  7130. #define     V_028A38_VGT_GRP_UINT_16                                0x02
  7131. #define     V_028A38_VGT_GRP_UINT_32                                0x03
  7132. #define     V_028A38_VGT_GRP_SINT_16                                0x04
  7133. #define     V_028A38_VGT_GRP_SINT_32                                0x05
  7134. #define     V_028A38_VGT_GRP_FLOAT_32                               0x06
  7135. #define     V_028A38_VGT_GRP_AUTO_PRIM                              0x07
  7136. #define     V_028A38_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7137. #define   S_028A38_W_OFFSET(x)                                        (((x) & 0x0F) << 28)
  7138. #define   G_028A38_W_OFFSET(x)                                        (((x) >> 28) & 0x0F)
  7139. #define   C_028A38_W_OFFSET                                           0x0FFFFFFF
  7140. #define R_028A3C_VGT_GROUP_VECT_1_FMT_CNTL                              0x028A3C
  7141. #define   S_028A3C_X_CONV(x)                                          (((x) & 0x0F) << 0)
  7142. #define   G_028A3C_X_CONV(x)                                          (((x) >> 0) & 0x0F)
  7143. #define   C_028A3C_X_CONV                                             0xFFFFFFF0
  7144. #define     V_028A3C_VGT_GRP_INDEX_16                               0x00
  7145. #define     V_028A3C_VGT_GRP_INDEX_32                               0x01
  7146. #define     V_028A3C_VGT_GRP_UINT_16                                0x02
  7147. #define     V_028A3C_VGT_GRP_UINT_32                                0x03
  7148. #define     V_028A3C_VGT_GRP_SINT_16                                0x04
  7149. #define     V_028A3C_VGT_GRP_SINT_32                                0x05
  7150. #define     V_028A3C_VGT_GRP_FLOAT_32                               0x06
  7151. #define     V_028A3C_VGT_GRP_AUTO_PRIM                              0x07
  7152. #define     V_028A3C_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7153. #define   S_028A3C_X_OFFSET(x)                                        (((x) & 0x0F) << 4)
  7154. #define   G_028A3C_X_OFFSET(x)                                        (((x) >> 4) & 0x0F)
  7155. #define   C_028A3C_X_OFFSET                                           0xFFFFFF0F
  7156. #define   S_028A3C_Y_CONV(x)                                          (((x) & 0x0F) << 8)
  7157. #define   G_028A3C_Y_CONV(x)                                          (((x) >> 8) & 0x0F)
  7158. #define   C_028A3C_Y_CONV                                             0xFFFFF0FF
  7159. #define     V_028A3C_VGT_GRP_INDEX_16                               0x00
  7160. #define     V_028A3C_VGT_GRP_INDEX_32                               0x01
  7161. #define     V_028A3C_VGT_GRP_UINT_16                                0x02
  7162. #define     V_028A3C_VGT_GRP_UINT_32                                0x03
  7163. #define     V_028A3C_VGT_GRP_SINT_16                                0x04
  7164. #define     V_028A3C_VGT_GRP_SINT_32                                0x05
  7165. #define     V_028A3C_VGT_GRP_FLOAT_32                               0x06
  7166. #define     V_028A3C_VGT_GRP_AUTO_PRIM                              0x07
  7167. #define     V_028A3C_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7168. #define   S_028A3C_Y_OFFSET(x)                                        (((x) & 0x0F) << 12)
  7169. #define   G_028A3C_Y_OFFSET(x)                                        (((x) >> 12) & 0x0F)
  7170. #define   C_028A3C_Y_OFFSET                                           0xFFFF0FFF
  7171. #define   S_028A3C_Z_CONV(x)                                          (((x) & 0x0F) << 16)
  7172. #define   G_028A3C_Z_CONV(x)                                          (((x) >> 16) & 0x0F)
  7173. #define   C_028A3C_Z_CONV                                             0xFFF0FFFF
  7174. #define     V_028A3C_VGT_GRP_INDEX_16                               0x00
  7175. #define     V_028A3C_VGT_GRP_INDEX_32                               0x01
  7176. #define     V_028A3C_VGT_GRP_UINT_16                                0x02
  7177. #define     V_028A3C_VGT_GRP_UINT_32                                0x03
  7178. #define     V_028A3C_VGT_GRP_SINT_16                                0x04
  7179. #define     V_028A3C_VGT_GRP_SINT_32                                0x05
  7180. #define     V_028A3C_VGT_GRP_FLOAT_32                               0x06
  7181. #define     V_028A3C_VGT_GRP_AUTO_PRIM                              0x07
  7182. #define     V_028A3C_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7183. #define   S_028A3C_Z_OFFSET(x)                                        (((x) & 0x0F) << 20)
  7184. #define   G_028A3C_Z_OFFSET(x)                                        (((x) >> 20) & 0x0F)
  7185. #define   C_028A3C_Z_OFFSET                                           0xFF0FFFFF
  7186. #define   S_028A3C_W_CONV(x)                                          (((x) & 0x0F) << 24)
  7187. #define   G_028A3C_W_CONV(x)                                          (((x) >> 24) & 0x0F)
  7188. #define   C_028A3C_W_CONV                                             0xF0FFFFFF
  7189. #define     V_028A3C_VGT_GRP_INDEX_16                               0x00
  7190. #define     V_028A3C_VGT_GRP_INDEX_32                               0x01
  7191. #define     V_028A3C_VGT_GRP_UINT_16                                0x02
  7192. #define     V_028A3C_VGT_GRP_UINT_32                                0x03
  7193. #define     V_028A3C_VGT_GRP_SINT_16                                0x04
  7194. #define     V_028A3C_VGT_GRP_SINT_32                                0x05
  7195. #define     V_028A3C_VGT_GRP_FLOAT_32                               0x06
  7196. #define     V_028A3C_VGT_GRP_AUTO_PRIM                              0x07
  7197. #define     V_028A3C_VGT_GRP_FIX_1_23_TO_FLOAT                      0x08
  7198. #define   S_028A3C_W_OFFSET(x)                                        (((x) & 0x0F) << 28)
  7199. #define   G_028A3C_W_OFFSET(x)                                        (((x) >> 28) & 0x0F)
  7200. #define   C_028A3C_W_OFFSET                                           0x0FFFFFFF
  7201. #define R_028A40_VGT_GS_MODE                                            0x028A40
  7202. #define   S_028A40_MODE(x)                                            (((x) & 0x07) << 0)
  7203. #define   G_028A40_MODE(x)                                            (((x) >> 0) & 0x07)
  7204. #define   C_028A40_MODE                                               0xFFFFFFF8
  7205. #define     V_028A40_GS_OFF                                         0x00
  7206. #define     V_028A40_GS_SCENARIO_A                                  0x01
  7207. #define     V_028A40_GS_SCENARIO_B                                  0x02
  7208. #define     V_028A40_GS_SCENARIO_G                                  0x03
  7209. #define     V_028A40_GS_SCENARIO_C                                  0x04
  7210. #define     V_028A40_SPRITE_EN                                      0x05
  7211. #define   S_028A40_CUT_MODE(x)                                        (((x) & 0x03) << 4)
  7212. #define   G_028A40_CUT_MODE(x)                                        (((x) >> 4) & 0x03)
  7213. #define   C_028A40_CUT_MODE                                           0xFFFFFFCF
  7214. #define     V_028A40_GS_CUT_1024                                    0x00
  7215. #define     V_028A40_GS_CUT_512                                     0x01
  7216. #define     V_028A40_GS_CUT_256                                     0x02
  7217. #define     V_028A40_GS_CUT_128                                     0x03
  7218. #define   S_028A40_GS_C_PACK_EN(x)                                    (((x) & 0x1) << 11)
  7219. #define   G_028A40_GS_C_PACK_EN(x)                                    (((x) >> 11) & 0x1)
  7220. #define   C_028A40_GS_C_PACK_EN                                       0xFFFFF7FF
  7221. #define   S_028A40_ES_PASSTHRU(x)                                     (((x) & 0x1) << 13)
  7222. #define   G_028A40_ES_PASSTHRU(x)                                     (((x) >> 13) & 0x1)
  7223. #define   C_028A40_ES_PASSTHRU                                        0xFFFFDFFF
  7224. #define   S_028A40_COMPUTE_MODE(x)                                    (((x) & 0x1) << 14)
  7225. #define   G_028A40_COMPUTE_MODE(x)                                    (((x) >> 14) & 0x1)
  7226. #define   C_028A40_COMPUTE_MODE                                       0xFFFFBFFF
  7227. #define   S_028A40_FAST_COMPUTE_MODE(x)                               (((x) & 0x1) << 15)
  7228. #define   G_028A40_FAST_COMPUTE_MODE(x)                               (((x) >> 15) & 0x1)
  7229. #define   C_028A40_FAST_COMPUTE_MODE                                  0xFFFF7FFF
  7230. #define   S_028A40_ELEMENT_INFO_EN(x)                                 (((x) & 0x1) << 16)
  7231. #define   G_028A40_ELEMENT_INFO_EN(x)                                 (((x) >> 16) & 0x1)
  7232. #define   C_028A40_ELEMENT_INFO_EN                                    0xFFFEFFFF
  7233. #define   S_028A40_PARTIAL_THD_AT_EOI(x)                              (((x) & 0x1) << 17)
  7234. #define   G_028A40_PARTIAL_THD_AT_EOI(x)                              (((x) >> 17) & 0x1)
  7235. #define   C_028A40_PARTIAL_THD_AT_EOI                                 0xFFFDFFFF
  7236. #define   S_028A40_SUPPRESS_CUTS(x)                                   (((x) & 0x1) << 18)
  7237. #define   G_028A40_SUPPRESS_CUTS(x)                                   (((x) >> 18) & 0x1)
  7238. #define   C_028A40_SUPPRESS_CUTS                                      0xFFFBFFFF
  7239. #define   S_028A40_ES_WRITE_OPTIMIZE(x)                               (((x) & 0x1) << 19)
  7240. #define   G_028A40_ES_WRITE_OPTIMIZE(x)                               (((x) >> 19) & 0x1)
  7241. #define   C_028A40_ES_WRITE_OPTIMIZE                                  0xFFF7FFFF
  7242. #define   S_028A40_GS_WRITE_OPTIMIZE(x)                               (((x) & 0x1) << 20)
  7243. #define   G_028A40_GS_WRITE_OPTIMIZE(x)                               (((x) >> 20) & 0x1)
  7244. #define   C_028A40_GS_WRITE_OPTIMIZE                                  0xFFEFFFFF
  7245. /* CIK */
  7246. #define   S_028A40_ONCHIP(x)                                          (((x) & 0x03) << 21)
  7247. #define   G_028A40_ONCHIP(x)                                          (((x) >> 21) & 0x03)
  7248. #define   C_028A40_ONCHIP                                             0xFF9FFFFF
  7249. #define     V_028A40_X_0_OFFCHIP_GS                                 0x00
  7250. #define     V_028A40_X_3_ES_AND_GS_ARE_ONCHIP                       0x03
  7251. #define R_028A44_VGT_GS_ONCHIP_CNTL                                     0x028A44
  7252. #define   S_028A44_ES_VERTS_PER_SUBGRP(x)                             (((x) & 0x7FF) << 0)
  7253. #define   G_028A44_ES_VERTS_PER_SUBGRP(x)                             (((x) >> 0) & 0x7FF)
  7254. #define   C_028A44_ES_VERTS_PER_SUBGRP                                0xFFFFF800
  7255. #define   S_028A44_GS_PRIMS_PER_SUBGRP(x)                             (((x) & 0x7FF) << 11)
  7256. #define   G_028A44_GS_PRIMS_PER_SUBGRP(x)                             (((x) >> 11) & 0x7FF)
  7257. #define   C_028A44_GS_PRIMS_PER_SUBGRP                                0xFFC007FF
  7258. /*     */
  7259. #define R_028A48_PA_SC_MODE_CNTL_0                                      0x028A48
  7260. #define   S_028A48_MSAA_ENABLE(x)                                     (((x) & 0x1) << 0)
  7261. #define   G_028A48_MSAA_ENABLE(x)                                     (((x) >> 0) & 0x1)
  7262. #define   C_028A48_MSAA_ENABLE                                        0xFFFFFFFE
  7263. #define   S_028A48_VPORT_SCISSOR_ENABLE(x)                            (((x) & 0x1) << 1)
  7264. #define   G_028A48_VPORT_SCISSOR_ENABLE(x)                            (((x) >> 1) & 0x1)
  7265. #define   C_028A48_VPORT_SCISSOR_ENABLE                               0xFFFFFFFD
  7266. #define   S_028A48_LINE_STIPPLE_ENABLE(x)                             (((x) & 0x1) << 2)
  7267. #define   G_028A48_LINE_STIPPLE_ENABLE(x)                             (((x) >> 2) & 0x1)
  7268. #define   C_028A48_LINE_STIPPLE_ENABLE                                0xFFFFFFFB
  7269. #define   S_028A48_SEND_UNLIT_STILES_TO_PKR(x)                        (((x) & 0x1) << 3)
  7270. #define   G_028A48_SEND_UNLIT_STILES_TO_PKR(x)                        (((x) >> 3) & 0x1)
  7271. #define   C_028A48_SEND_UNLIT_STILES_TO_PKR                           0xFFFFFFF7
  7272. #define R_028A4C_PA_SC_MODE_CNTL_1                                      0x028A4C
  7273. #define   S_028A4C_WALK_SIZE(x)                                       (((x) & 0x1) << 0)
  7274. #define   G_028A4C_WALK_SIZE(x)                                       (((x) >> 0) & 0x1)
  7275. #define   C_028A4C_WALK_SIZE                                          0xFFFFFFFE
  7276. #define   S_028A4C_WALK_ALIGNMENT(x)                                  (((x) & 0x1) << 1)
  7277. #define   G_028A4C_WALK_ALIGNMENT(x)                                  (((x) >> 1) & 0x1)
  7278. #define   C_028A4C_WALK_ALIGNMENT                                     0xFFFFFFFD
  7279. #define   S_028A4C_WALK_ALIGN8_PRIM_FITS_ST(x)                        (((x) & 0x1) << 2)
  7280. #define   G_028A4C_WALK_ALIGN8_PRIM_FITS_ST(x)                        (((x) >> 2) & 0x1)
  7281. #define   C_028A4C_WALK_ALIGN8_PRIM_FITS_ST                           0xFFFFFFFB
  7282. #define   S_028A4C_WALK_FENCE_ENABLE(x)                               (((x) & 0x1) << 3)
  7283. #define   G_028A4C_WALK_FENCE_ENABLE(x)                               (((x) >> 3) & 0x1)
  7284. #define   C_028A4C_WALK_FENCE_ENABLE                                  0xFFFFFFF7
  7285. #define   S_028A4C_WALK_FENCE_SIZE(x)                                 (((x) & 0x07) << 4)
  7286. #define   G_028A4C_WALK_FENCE_SIZE(x)                                 (((x) >> 4) & 0x07)
  7287. #define   C_028A4C_WALK_FENCE_SIZE                                    0xFFFFFF8F
  7288. #define   S_028A4C_SUPERTILE_WALK_ORDER_ENABLE(x)                     (((x) & 0x1) << 7)
  7289. #define   G_028A4C_SUPERTILE_WALK_ORDER_ENABLE(x)                     (((x) >> 7) & 0x1)
  7290. #define   C_028A4C_SUPERTILE_WALK_ORDER_ENABLE                        0xFFFFFF7F
  7291. #define   S_028A4C_TILE_WALK_ORDER_ENABLE(x)                          (((x) & 0x1) << 8)
  7292. #define   G_028A4C_TILE_WALK_ORDER_ENABLE(x)                          (((x) >> 8) & 0x1)
  7293. #define   C_028A4C_TILE_WALK_ORDER_ENABLE                             0xFFFFFEFF
  7294. #define   S_028A4C_TILE_COVER_DISABLE(x)                              (((x) & 0x1) << 9)
  7295. #define   G_028A4C_TILE_COVER_DISABLE(x)                              (((x) >> 9) & 0x1)
  7296. #define   C_028A4C_TILE_COVER_DISABLE                                 0xFFFFFDFF
  7297. #define   S_028A4C_TILE_COVER_NO_SCISSOR(x)                           (((x) & 0x1) << 10)
  7298. #define   G_028A4C_TILE_COVER_NO_SCISSOR(x)                           (((x) >> 10) & 0x1)
  7299. #define   C_028A4C_TILE_COVER_NO_SCISSOR                              0xFFFFFBFF
  7300. #define   S_028A4C_ZMM_LINE_EXTENT(x)                                 (((x) & 0x1) << 11)
  7301. #define   G_028A4C_ZMM_LINE_EXTENT(x)                                 (((x) >> 11) & 0x1)
  7302. #define   C_028A4C_ZMM_LINE_EXTENT                                    0xFFFFF7FF
  7303. #define   S_028A4C_ZMM_LINE_OFFSET(x)                                 (((x) & 0x1) << 12)
  7304. #define   G_028A4C_ZMM_LINE_OFFSET(x)                                 (((x) >> 12) & 0x1)
  7305. #define   C_028A4C_ZMM_LINE_OFFSET                                    0xFFFFEFFF
  7306. #define   S_028A4C_ZMM_RECT_EXTENT(x)                                 (((x) & 0x1) << 13)
  7307. #define   G_028A4C_ZMM_RECT_EXTENT(x)                                 (((x) >> 13) & 0x1)
  7308. #define   C_028A4C_ZMM_RECT_EXTENT                                    0xFFFFDFFF
  7309. #define   S_028A4C_KILL_PIX_POST_HI_Z(x)                              (((x) & 0x1) << 14)
  7310. #define   G_028A4C_KILL_PIX_POST_HI_Z(x)                              (((x) >> 14) & 0x1)
  7311. #define   C_028A4C_KILL_PIX_POST_HI_Z                                 0xFFFFBFFF
  7312. #define   S_028A4C_KILL_PIX_POST_DETAIL_MASK(x)                       (((x) & 0x1) << 15)
  7313. #define   G_028A4C_KILL_PIX_POST_DETAIL_MASK(x)                       (((x) >> 15) & 0x1)
  7314. #define   C_028A4C_KILL_PIX_POST_DETAIL_MASK                          0xFFFF7FFF
  7315. #define   S_028A4C_PS_ITER_SAMPLE(x)                                  (((x) & 0x1) << 16)
  7316. #define   G_028A4C_PS_ITER_SAMPLE(x)                                  (((x) >> 16) & 0x1)
  7317. #define   C_028A4C_PS_ITER_SAMPLE                                     0xFFFEFFFF
  7318. #define   S_028A4C_MULTI_SHADER_ENGINE_PRIM_DISC(x)                   (((x) & 0x1) << 17)
  7319. #define   G_028A4C_MULTI_SHADER_ENGINE_PRIM_DISC(x)                   (((x) >> 17) & 0x1)
  7320. #define   C_028A4C_MULTI_SHADER_ENGINE_PRIM_DISC                      0xFFFDFFFF
  7321. #define   S_028A4C_FORCE_EOV_CNTDWN_ENABLE(x)                         (((x) & 0x1) << 25)
  7322. #define   G_028A4C_FORCE_EOV_CNTDWN_ENABLE(x)                         (((x) >> 25) & 0x1)
  7323. #define   C_028A4C_FORCE_EOV_CNTDWN_ENABLE                            0xFDFFFFFF
  7324. #define   S_028A4C_FORCE_EOV_REZ_ENABLE(x)                            (((x) & 0x1) << 26)
  7325. #define   G_028A4C_FORCE_EOV_REZ_ENABLE(x)                            (((x) >> 26) & 0x1)
  7326. #define   C_028A4C_FORCE_EOV_REZ_ENABLE                               0xFBFFFFFF
  7327. #define   S_028A4C_OUT_OF_ORDER_PRIMITIVE_ENABLE(x)                   (((x) & 0x1) << 27)
  7328. #define   G_028A4C_OUT_OF_ORDER_PRIMITIVE_ENABLE(x)                   (((x) >> 27) & 0x1)
  7329. #define   C_028A4C_OUT_OF_ORDER_PRIMITIVE_ENABLE                      0xF7FFFFFF
  7330. #define   S_028A4C_OUT_OF_ORDER_WATER_MARK(x)                         (((x) & 0x07) << 28)
  7331. #define   G_028A4C_OUT_OF_ORDER_WATER_MARK(x)                         (((x) >> 28) & 0x07)
  7332. #define   C_028A4C_OUT_OF_ORDER_WATER_MARK                            0x8FFFFFFF
  7333. #define R_028A50_VGT_ENHANCE                                            0x028A50
  7334. #define R_028A54_VGT_GS_PER_ES                                          0x028A54
  7335. #define   S_028A54_GS_PER_ES(x)                                       (((x) & 0x7FF) << 0)
  7336. #define   G_028A54_GS_PER_ES(x)                                       (((x) >> 0) & 0x7FF)
  7337. #define   C_028A54_GS_PER_ES                                          0xFFFFF800
  7338. #define R_028A58_VGT_ES_PER_GS                                          0x028A58
  7339. #define   S_028A58_ES_PER_GS(x)                                       (((x) & 0x7FF) << 0)
  7340. #define   G_028A58_ES_PER_GS(x)                                       (((x) >> 0) & 0x7FF)
  7341. #define   C_028A58_ES_PER_GS                                          0xFFFFF800
  7342. #define R_028A5C_VGT_GS_PER_VS                                          0x028A5C
  7343. #define   S_028A5C_GS_PER_VS(x)                                       (((x) & 0x0F) << 0)
  7344. #define   G_028A5C_GS_PER_VS(x)                                       (((x) >> 0) & 0x0F)
  7345. #define   C_028A5C_GS_PER_VS                                          0xFFFFFFF0
  7346. #define R_028A60_VGT_GSVS_RING_OFFSET_1                                 0x028A60
  7347. #define   S_028A60_OFFSET(x)                                          (((x) & 0x7FFF) << 0)
  7348. #define   G_028A60_OFFSET(x)                                          (((x) >> 0) & 0x7FFF)
  7349. #define   C_028A60_OFFSET                                             0xFFFF8000
  7350. #define R_028A64_VGT_GSVS_RING_OFFSET_2                                 0x028A64
  7351. #define   S_028A64_OFFSET(x)                                          (((x) & 0x7FFF) << 0)
  7352. #define   G_028A64_OFFSET(x)                                          (((x) >> 0) & 0x7FFF)
  7353. #define   C_028A64_OFFSET                                             0xFFFF8000
  7354. #define R_028A68_VGT_GSVS_RING_OFFSET_3                                 0x028A68
  7355. #define   S_028A68_OFFSET(x)                                          (((x) & 0x7FFF) << 0)
  7356. #define   G_028A68_OFFSET(x)                                          (((x) >> 0) & 0x7FFF)
  7357. #define   C_028A68_OFFSET                                             0xFFFF8000
  7358. #define R_028A6C_VGT_GS_OUT_PRIM_TYPE                                   0x028A6C
  7359. #define   S_028A6C_OUTPRIM_TYPE(x)                                    (((x) & 0x3F) << 0)
  7360. #define   G_028A6C_OUTPRIM_TYPE(x)                                    (((x) >> 0) & 0x3F)
  7361. #define   C_028A6C_OUTPRIM_TYPE                                       0xFFFFFFC0
  7362. #define   S_028A6C_OUTPRIM_TYPE_1(x)                                  (((x) & 0x3F) << 8)
  7363. #define   G_028A6C_OUTPRIM_TYPE_1(x)                                  (((x) >> 8) & 0x3F)
  7364. #define   C_028A6C_OUTPRIM_TYPE_1                                     0xFFFFC0FF
  7365. #define   S_028A6C_OUTPRIM_TYPE_2(x)                                  (((x) & 0x3F) << 16)
  7366. #define   G_028A6C_OUTPRIM_TYPE_2(x)                                  (((x) >> 16) & 0x3F)
  7367. #define   C_028A6C_OUTPRIM_TYPE_2                                     0xFFC0FFFF
  7368. #define   S_028A6C_OUTPRIM_TYPE_3(x)                                  (((x) & 0x3F) << 22)
  7369. #define   G_028A6C_OUTPRIM_TYPE_3(x)                                  (((x) >> 22) & 0x3F)
  7370. #define   C_028A6C_OUTPRIM_TYPE_3                                     0xF03FFFFF
  7371. #define   S_028A6C_UNIQUE_TYPE_PER_STREAM(x)                          (((x) & 0x1) << 31)
  7372. #define   G_028A6C_UNIQUE_TYPE_PER_STREAM(x)                          (((x) >> 31) & 0x1)
  7373. #define   C_028A6C_UNIQUE_TYPE_PER_STREAM                             0x7FFFFFFF
  7374. #define R_028A70_IA_ENHANCE                                             0x028A70
  7375. #define R_028A74_VGT_DMA_SIZE                                           0x028A74
  7376. #define R_028A78_VGT_DMA_MAX_SIZE                                       0x028A78
  7377. #define R_028A7C_VGT_DMA_INDEX_TYPE                                     0x028A7C
  7378. #define   S_028A7C_INDEX_TYPE(x)                                      (((x) & 0x03) << 0)
  7379. #define   G_028A7C_INDEX_TYPE(x)                                      (((x) >> 0) & 0x03)
  7380. #define   C_028A7C_INDEX_TYPE                                         0xFFFFFFFC
  7381. #define     V_028A7C_VGT_INDEX_16                                   0x00
  7382. #define     V_028A7C_VGT_INDEX_32                                   0x01
  7383. #define   S_028A7C_SWAP_MODE(x)                                       (((x) & 0x03) << 2)
  7384. #define   G_028A7C_SWAP_MODE(x)                                       (((x) >> 2) & 0x03)
  7385. #define   C_028A7C_SWAP_MODE                                          0xFFFFFFF3
  7386. #define     V_028A7C_VGT_DMA_SWAP_NONE                              0x00
  7387. #define     V_028A7C_VGT_DMA_SWAP_16_BIT                            0x01
  7388. #define     V_028A7C_VGT_DMA_SWAP_32_BIT                            0x02
  7389. #define     V_028A7C_VGT_DMA_SWAP_WORD                              0x03
  7390. /* CIK */
  7391. #define   S_028A7C_BUF_TYPE(x)                                        (((x) & 0x03) << 4)
  7392. #define   G_028A7C_BUF_TYPE(x)                                        (((x) >> 4) & 0x03)
  7393. #define   C_028A7C_BUF_TYPE                                           0xFFFFFFCF
  7394. #define     V_028A7C_VGT_DMA_BUF_MEM                                0x00
  7395. #define     V_028A7C_VGT_DMA_BUF_RING                               0x01
  7396. #define     V_028A7C_VGT_DMA_BUF_SETUP                              0x02
  7397. #define   S_028A7C_RDREQ_POLICY(x)                                    (((x) & 0x03) << 6)
  7398. #define   G_028A7C_RDREQ_POLICY(x)                                    (((x) >> 6) & 0x03)
  7399. #define   C_028A7C_RDREQ_POLICY                                       0xFFFFFF3F
  7400. #define     V_028A7C_VGT_POLICY_LRU                                 0x00
  7401. #define     V_028A7C_VGT_POLICY_STREAM                              0x01
  7402. #define   S_028A7C_ATC(x)                                             (((x) & 0x1) << 8)
  7403. #define   G_028A7C_ATC(x)                                             (((x) >> 8) & 0x1)
  7404. #define   C_028A7C_ATC                                                0xFFFFFEFF
  7405. #define   S_028A7C_NOT_EOP(x)                                         (((x) & 0x1) << 9)
  7406. #define   G_028A7C_NOT_EOP(x)                                         (((x) >> 9) & 0x1)
  7407. #define   C_028A7C_NOT_EOP                                            0xFFFFFDFF
  7408. #define   S_028A7C_REQ_PATH(x)                                        (((x) & 0x1) << 10)
  7409. #define   G_028A7C_REQ_PATH(x)                                        (((x) >> 10) & 0x1)
  7410. #define   C_028A7C_REQ_PATH                                           0xFFFFFBFF
  7411. /*     */
  7412. #define R_028A84_VGT_PRIMITIVEID_EN                                     0x028A84
  7413. #define   S_028A84_PRIMITIVEID_EN(x)                                  (((x) & 0x1) << 0)
  7414. #define   G_028A84_PRIMITIVEID_EN(x)                                  (((x) >> 0) & 0x1)
  7415. #define   C_028A84_PRIMITIVEID_EN                                     0xFFFFFFFE
  7416. #define   S_028A84_DISABLE_RESET_ON_EOI(x)                            (((x) & 0x1) << 1) /* not on CIK */
  7417. #define   G_028A84_DISABLE_RESET_ON_EOI(x)                            (((x) >> 1) & 0x1) /* not on CIK */
  7418. #define   C_028A84_DISABLE_RESET_ON_EOI                               0xFFFFFFFD /* not on CIK */
  7419. #define R_028A88_VGT_DMA_NUM_INSTANCES                                  0x028A88
  7420. #define R_028A8C_VGT_PRIMITIVEID_RESET                                  0x028A8C
  7421. #define R_028A90_VGT_EVENT_INITIATOR                                    0x028A90
  7422. #define   S_028A90_EVENT_TYPE(x)                                      (((x) & 0x3F) << 0)
  7423. #define   G_028A90_EVENT_TYPE(x)                                      (((x) >> 0) & 0x3F)
  7424. #define   C_028A90_EVENT_TYPE                                         0xFFFFFFC0
  7425. #define     V_028A90_SAMPLE_STREAMOUTSTATS1                         0x01
  7426. #define     V_028A90_SAMPLE_STREAMOUTSTATS2                         0x02
  7427. #define     V_028A90_SAMPLE_STREAMOUTSTATS3                         0x03
  7428. #define     V_028A90_CACHE_FLUSH_TS                                 0x04
  7429. #define     V_028A90_CONTEXT_DONE                                   0x05
  7430. #define     V_028A90_CACHE_FLUSH                                    0x06
  7431. #define     V_028A90_CS_PARTIAL_FLUSH                               0x07
  7432. #define     V_028A90_VGT_STREAMOUT_SYNC                             0x08
  7433. #define     V_028A90_VGT_STREAMOUT_RESET                            0x0A
  7434. #define     V_028A90_END_OF_PIPE_INCR_DE                            0x0B
  7435. #define     V_028A90_END_OF_PIPE_IB_END                             0x0C
  7436. #define     V_028A90_RST_PIX_CNT                                    0x0D
  7437. #define     V_028A90_VS_PARTIAL_FLUSH                               0x0F
  7438. #define     V_028A90_PS_PARTIAL_FLUSH                               0x10
  7439. #define     V_028A90_FLUSH_HS_OUTPUT                                0x11
  7440. #define     V_028A90_FLUSH_LS_OUTPUT                                0x12
  7441. #define     V_028A90_CACHE_FLUSH_AND_INV_TS_EVENT                   0x14
  7442. #define     V_028A90_ZPASS_DONE                                     0x15 /* not on CIK */
  7443. #define     V_028A90_CACHE_FLUSH_AND_INV_EVENT                      0x16
  7444. #define     V_028A90_PERFCOUNTER_START                              0x17
  7445. #define     V_028A90_PERFCOUNTER_STOP                               0x18
  7446. #define     V_028A90_PIPELINESTAT_START                             0x19
  7447. #define     V_028A90_PIPELINESTAT_STOP                              0x1A
  7448. #define     V_028A90_PERFCOUNTER_SAMPLE                             0x1B
  7449. #define     V_028A90_FLUSH_ES_OUTPUT                                0x1C
  7450. #define     V_028A90_FLUSH_GS_OUTPUT                                0x1D
  7451. #define     V_028A90_SAMPLE_PIPELINESTAT                            0x1E
  7452. #define     V_028A90_SO_VGTSTREAMOUT_FLUSH                          0x1F
  7453. #define     V_028A90_SAMPLE_STREAMOUTSTATS                          0x20
  7454. #define     V_028A90_RESET_VTX_CNT                                  0x21
  7455. #define     V_028A90_BLOCK_CONTEXT_DONE                             0x22
  7456. #define     V_028A90_CS_CONTEXT_DONE                                0x23
  7457. #define     V_028A90_VGT_FLUSH                                      0x24
  7458. #define     V_028A90_SC_SEND_DB_VPZ                                 0x27
  7459. #define     V_028A90_BOTTOM_OF_PIPE_TS                              0x28
  7460. #define     V_028A90_DB_CACHE_FLUSH_AND_INV                         0x2A
  7461. #define     V_028A90_FLUSH_AND_INV_DB_DATA_TS                       0x2B
  7462. #define     V_028A90_FLUSH_AND_INV_DB_META                          0x2C
  7463. #define     V_028A90_FLUSH_AND_INV_CB_DATA_TS                       0x2D
  7464. #define     V_028A90_FLUSH_AND_INV_CB_META                          0x2E
  7465. #define     V_028A90_CS_DONE                                        0x2F
  7466. #define     V_028A90_PS_DONE                                        0x30
  7467. #define     V_028A90_FLUSH_AND_INV_CB_PIXEL_DATA                    0x31
  7468. #define     V_028A90_THREAD_TRACE_START                             0x33
  7469. #define     V_028A90_THREAD_TRACE_STOP                              0x34
  7470. #define     V_028A90_THREAD_TRACE_MARKER                            0x35
  7471. #define     V_028A90_THREAD_TRACE_FLUSH                             0x36
  7472. #define     V_028A90_THREAD_TRACE_FINISH                            0x37
  7473. /* CIK */
  7474. #define     V_028A90_PIXEL_PIPE_STAT_CONTROL                        0x38
  7475. #define     V_028A90_PIXEL_PIPE_STAT_DUMP                           0x39
  7476. #define     V_028A90_PIXEL_PIPE_STAT_RESET                          0x40
  7477. /*     */
  7478. #define   S_028A90_ADDRESS_HI(x)                                      (((x) & 0x1FF) << 18)
  7479. #define   G_028A90_ADDRESS_HI(x)                                      (((x) >> 18) & 0x1FF)
  7480. #define   C_028A90_ADDRESS_HI                                         0xF803FFFF
  7481. #define   S_028A90_EXTENDED_EVENT(x)                                  (((x) & 0x1) << 27)
  7482. #define   G_028A90_EXTENDED_EVENT(x)                                  (((x) >> 27) & 0x1)
  7483. #define   C_028A90_EXTENDED_EVENT                                     0xF7FFFFFF
  7484. #define R_028A94_VGT_MULTI_PRIM_IB_RESET_EN                             0x028A94
  7485. #define   S_028A94_RESET_EN(x)                                        (((x) & 0x1) << 0)
  7486. #define   G_028A94_RESET_EN(x)                                        (((x) >> 0) & 0x1)
  7487. #define   C_028A94_RESET_EN                                           0xFFFFFFFE
  7488. #define R_028AA0_VGT_INSTANCE_STEP_RATE_0                               0x028AA0
  7489. #define R_028AA4_VGT_INSTANCE_STEP_RATE_1                               0x028AA4
  7490. #define R_028AA8_IA_MULTI_VGT_PARAM                                     0x028AA8
  7491. #define   S_028AA8_PRIMGROUP_SIZE(x)                                  (((x) & 0xFFFF) << 0)
  7492. #define   G_028AA8_PRIMGROUP_SIZE(x)                                  (((x) >> 0) & 0xFFFF)
  7493. #define   C_028AA8_PRIMGROUP_SIZE                                     0xFFFF0000
  7494. #define   S_028AA8_PARTIAL_VS_WAVE_ON(x)                              (((x) & 0x1) << 16)
  7495. #define   G_028AA8_PARTIAL_VS_WAVE_ON(x)                              (((x) >> 16) & 0x1)
  7496. #define   C_028AA8_PARTIAL_VS_WAVE_ON                                 0xFFFEFFFF
  7497. #define   S_028AA8_SWITCH_ON_EOP(x)                                   (((x) & 0x1) << 17)
  7498. #define   G_028AA8_SWITCH_ON_EOP(x)                                   (((x) >> 17) & 0x1)
  7499. #define   C_028AA8_SWITCH_ON_EOP                                      0xFFFDFFFF
  7500. #define   S_028AA8_PARTIAL_ES_WAVE_ON(x)                              (((x) & 0x1) << 18)
  7501. #define   G_028AA8_PARTIAL_ES_WAVE_ON(x)                              (((x) >> 18) & 0x1)
  7502. #define   C_028AA8_PARTIAL_ES_WAVE_ON                                 0xFFFBFFFF
  7503. #define   S_028AA8_SWITCH_ON_EOI(x)                                   (((x) & 0x1) << 19)
  7504. #define   G_028AA8_SWITCH_ON_EOI(x)                                   (((x) >> 19) & 0x1)
  7505. #define   C_028AA8_SWITCH_ON_EOI                                      0xFFF7FFFF
  7506. /* CIK */
  7507. #define   S_028AA8_WD_SWITCH_ON_EOP(x)                                (((x) & 0x1) << 20)
  7508. #define   G_028AA8_WD_SWITCH_ON_EOP(x)                                (((x) >> 20) & 0x1)
  7509. #define   C_028AA8_WD_SWITCH_ON_EOP                                   0xFFEFFFFF
  7510. /*     */
  7511. #define R_028AAC_VGT_ESGS_RING_ITEMSIZE                                 0x028AAC
  7512. #define   S_028AAC_ITEMSIZE(x)                                        (((x) & 0x7FFF) << 0)
  7513. #define   G_028AAC_ITEMSIZE(x)                                        (((x) >> 0) & 0x7FFF)
  7514. #define   C_028AAC_ITEMSIZE                                           0xFFFF8000
  7515. #define R_028AB0_VGT_GSVS_RING_ITEMSIZE                                 0x028AB0
  7516. #define   S_028AB0_ITEMSIZE(x)                                        (((x) & 0x7FFF) << 0)
  7517. #define   G_028AB0_ITEMSIZE(x)                                        (((x) >> 0) & 0x7FFF)
  7518. #define   C_028AB0_ITEMSIZE                                           0xFFFF8000
  7519. #define R_028AB4_VGT_REUSE_OFF                                          0x028AB4
  7520. #define   S_028AB4_REUSE_OFF(x)                                       (((x) & 0x1) << 0)
  7521. #define   G_028AB4_REUSE_OFF(x)                                       (((x) >> 0) & 0x1)
  7522. #define   C_028AB4_REUSE_OFF                                          0xFFFFFFFE
  7523. #define R_028AB8_VGT_VTX_CNT_EN                                         0x028AB8
  7524. #define   S_028AB8_VTX_CNT_EN(x)                                      (((x) & 0x1) << 0)
  7525. #define   G_028AB8_VTX_CNT_EN(x)                                      (((x) >> 0) & 0x1)
  7526. #define   C_028AB8_VTX_CNT_EN                                         0xFFFFFFFE
  7527. #define R_028ABC_DB_HTILE_SURFACE                                       0x028ABC
  7528. #define   S_028ABC_LINEAR(x)                                          (((x) & 0x1) << 0)
  7529. #define   G_028ABC_LINEAR(x)                                          (((x) >> 0) & 0x1)
  7530. #define   C_028ABC_LINEAR                                             0xFFFFFFFE
  7531. #define   S_028ABC_FULL_CACHE(x)                                      (((x) & 0x1) << 1)
  7532. #define   G_028ABC_FULL_CACHE(x)                                      (((x) >> 1) & 0x1)
  7533. #define   C_028ABC_FULL_CACHE                                         0xFFFFFFFD
  7534. #define   S_028ABC_HTILE_USES_PRELOAD_WIN(x)                          (((x) & 0x1) << 2)
  7535. #define   G_028ABC_HTILE_USES_PRELOAD_WIN(x)                          (((x) >> 2) & 0x1)
  7536. #define   C_028ABC_HTILE_USES_PRELOAD_WIN                             0xFFFFFFFB
  7537. #define   S_028ABC_PRELOAD(x)                                         (((x) & 0x1) << 3)
  7538. #define   G_028ABC_PRELOAD(x)                                         (((x) >> 3) & 0x1)
  7539. #define   C_028ABC_PRELOAD                                            0xFFFFFFF7
  7540. #define   S_028ABC_PREFETCH_WIDTH(x)                                  (((x) & 0x3F) << 4)
  7541. #define   G_028ABC_PREFETCH_WIDTH(x)                                  (((x) >> 4) & 0x3F)
  7542. #define   C_028ABC_PREFETCH_WIDTH                                     0xFFFFFC0F
  7543. #define   S_028ABC_PREFETCH_HEIGHT(x)                                 (((x) & 0x3F) << 10)
  7544. #define   G_028ABC_PREFETCH_HEIGHT(x)                                 (((x) >> 10) & 0x3F)
  7545. #define   C_028ABC_PREFETCH_HEIGHT                                    0xFFFF03FF
  7546. #define   S_028ABC_DST_OUTSIDE_ZERO_TO_ONE(x)                         (((x) & 0x1) << 16)
  7547. #define   G_028ABC_DST_OUTSIDE_ZERO_TO_ONE(x)                         (((x) >> 16) & 0x1)
  7548. #define   C_028ABC_DST_OUTSIDE_ZERO_TO_ONE                            0xFFFEFFFF
  7549. #define R_028AC0_DB_SRESULTS_COMPARE_STATE0                             0x028AC0
  7550. #define   S_028AC0_COMPAREFUNC0(x)                                    (((x) & 0x07) << 0)
  7551. #define   G_028AC0_COMPAREFUNC0(x)                                    (((x) >> 0) & 0x07)
  7552. #define   C_028AC0_COMPAREFUNC0                                       0xFFFFFFF8
  7553. #define     V_028AC0_REF_NEVER                                      0x00
  7554. #define     V_028AC0_REF_LESS                                       0x01
  7555. #define     V_028AC0_REF_EQUAL                                      0x02
  7556. #define     V_028AC0_REF_LEQUAL                                     0x03
  7557. #define     V_028AC0_REF_GREATER                                    0x04
  7558. #define     V_028AC0_REF_NOTEQUAL                                   0x05
  7559. #define     V_028AC0_REF_GEQUAL                                     0x06
  7560. #define     V_028AC0_REF_ALWAYS                                     0x07
  7561. #define   S_028AC0_COMPAREVALUE0(x)                                   (((x) & 0xFF) << 4)
  7562. #define   G_028AC0_COMPAREVALUE0(x)                                   (((x) >> 4) & 0xFF)
  7563. #define   C_028AC0_COMPAREVALUE0                                      0xFFFFF00F
  7564. #define   S_028AC0_COMPAREMASK0(x)                                    (((x) & 0xFF) << 12)
  7565. #define   G_028AC0_COMPAREMASK0(x)                                    (((x) >> 12) & 0xFF)
  7566. #define   C_028AC0_COMPAREMASK0                                       0xFFF00FFF
  7567. #define   S_028AC0_ENABLE0(x)                                         (((x) & 0x1) << 24)
  7568. #define   G_028AC0_ENABLE0(x)                                         (((x) >> 24) & 0x1)
  7569. #define   C_028AC0_ENABLE0                                            0xFEFFFFFF
  7570. #define R_028AC4_DB_SRESULTS_COMPARE_STATE1                             0x028AC4
  7571. #define   S_028AC4_COMPAREFUNC1(x)                                    (((x) & 0x07) << 0)
  7572. #define   G_028AC4_COMPAREFUNC1(x)                                    (((x) >> 0) & 0x07)
  7573. #define   C_028AC4_COMPAREFUNC1                                       0xFFFFFFF8
  7574. #define     V_028AC4_REF_NEVER                                      0x00
  7575. #define     V_028AC4_REF_LESS                                       0x01
  7576. #define     V_028AC4_REF_EQUAL                                      0x02
  7577. #define     V_028AC4_REF_LEQUAL                                     0x03
  7578. #define     V_028AC4_REF_GREATER                                    0x04
  7579. #define     V_028AC4_REF_NOTEQUAL                                   0x05
  7580. #define     V_028AC4_REF_GEQUAL                                     0x06
  7581. #define     V_028AC4_REF_ALWAYS                                     0x07
  7582. #define   S_028AC4_COMPAREVALUE1(x)                                   (((x) & 0xFF) << 4)
  7583. #define   G_028AC4_COMPAREVALUE1(x)                                   (((x) >> 4) & 0xFF)
  7584. #define   C_028AC4_COMPAREVALUE1                                      0xFFFFF00F
  7585. #define   S_028AC4_COMPAREMASK1(x)                                    (((x) & 0xFF) << 12)
  7586. #define   G_028AC4_COMPAREMASK1(x)                                    (((x) >> 12) & 0xFF)
  7587. #define   C_028AC4_COMPAREMASK1                                       0xFFF00FFF
  7588. #define   S_028AC4_ENABLE1(x)                                         (((x) & 0x1) << 24)
  7589. #define   G_028AC4_ENABLE1(x)                                         (((x) >> 24) & 0x1)
  7590. #define   C_028AC4_ENABLE1                                            0xFEFFFFFF
  7591. #define R_028AC8_DB_PRELOAD_CONTROL                                     0x028AC8
  7592. #define   S_028AC8_START_X(x)                                         (((x) & 0xFF) << 0)
  7593. #define   G_028AC8_START_X(x)                                         (((x) >> 0) & 0xFF)
  7594. #define   C_028AC8_START_X                                            0xFFFFFF00
  7595. #define   S_028AC8_START_Y(x)                                         (((x) & 0xFF) << 8)
  7596. #define   G_028AC8_START_Y(x)                                         (((x) >> 8) & 0xFF)
  7597. #define   C_028AC8_START_Y                                            0xFFFF00FF
  7598. #define   S_028AC8_MAX_X(x)                                           (((x) & 0xFF) << 16)
  7599. #define   G_028AC8_MAX_X(x)                                           (((x) >> 16) & 0xFF)
  7600. #define   C_028AC8_MAX_X                                              0xFF00FFFF
  7601. #define   S_028AC8_MAX_Y(x)                                           (((x) & 0xFF) << 24)
  7602. #define   G_028AC8_MAX_Y(x)                                           (((x) >> 24) & 0xFF)
  7603. #define   C_028AC8_MAX_Y                                              0x00FFFFFF
  7604. #define R_028AD0_VGT_STRMOUT_BUFFER_SIZE_0                              0x028AD0
  7605. #define R_028AD4_VGT_STRMOUT_VTX_STRIDE_0                               0x028AD4
  7606. #define   S_028AD4_STRIDE(x)                                          (((x) & 0x3FF) << 0)
  7607. #define   G_028AD4_STRIDE(x)                                          (((x) >> 0) & 0x3FF)
  7608. #define   C_028AD4_STRIDE                                             0xFFFFFC00
  7609. #define R_028ADC_VGT_STRMOUT_BUFFER_OFFSET_0                            0x028ADC
  7610. #define R_028AE0_VGT_STRMOUT_BUFFER_SIZE_1                              0x028AE0
  7611. #define R_028AE4_VGT_STRMOUT_VTX_STRIDE_1                               0x028AE4
  7612. #define   S_028AE4_STRIDE(x)                                          (((x) & 0x3FF) << 0)
  7613. #define   G_028AE4_STRIDE(x)                                          (((x) >> 0) & 0x3FF)
  7614. #define   C_028AE4_STRIDE                                             0xFFFFFC00
  7615. #define R_028AEC_VGT_STRMOUT_BUFFER_OFFSET_1                            0x028AEC
  7616. #define R_028AF0_VGT_STRMOUT_BUFFER_SIZE_2                              0x028AF0
  7617. #define R_028AF4_VGT_STRMOUT_VTX_STRIDE_2                               0x028AF4
  7618. #define   S_028AF4_STRIDE(x)                                          (((x) & 0x3FF) << 0)
  7619. #define   G_028AF4_STRIDE(x)                                          (((x) >> 0) & 0x3FF)
  7620. #define   C_028AF4_STRIDE                                             0xFFFFFC00
  7621. #define R_028AFC_VGT_STRMOUT_BUFFER_OFFSET_2                            0x028AFC
  7622. #define R_028B00_VGT_STRMOUT_BUFFER_SIZE_3                              0x028B00
  7623. #define R_028B04_VGT_STRMOUT_VTX_STRIDE_3                               0x028B04
  7624. #define   S_028B04_STRIDE(x)                                          (((x) & 0x3FF) << 0)
  7625. #define   G_028B04_STRIDE(x)                                          (((x) >> 0) & 0x3FF)
  7626. #define   C_028B04_STRIDE                                             0xFFFFFC00
  7627. #define R_028B0C_VGT_STRMOUT_BUFFER_OFFSET_3                            0x028B0C
  7628. #define R_028B28_VGT_STRMOUT_DRAW_OPAQUE_OFFSET                         0x028B28
  7629. #define R_028B2C_VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE             0x028B2C
  7630. #define R_028B30_VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE                  0x028B30
  7631. #define   S_028B30_VERTEX_STRIDE(x)                                   (((x) & 0x1FF) << 0)
  7632. #define   G_028B30_VERTEX_STRIDE(x)                                   (((x) >> 0) & 0x1FF)
  7633. #define   C_028B30_VERTEX_STRIDE                                      0xFFFFFE00
  7634. #define R_028B38_VGT_GS_MAX_VERT_OUT                                    0x028B38
  7635. #define   S_028B38_MAX_VERT_OUT(x)                                    (((x) & 0x7FF) << 0)
  7636. #define   G_028B38_MAX_VERT_OUT(x)                                    (((x) >> 0) & 0x7FF)
  7637. #define   C_028B38_MAX_VERT_OUT                                       0xFFFFF800
  7638. #define R_028B54_VGT_SHADER_STAGES_EN                                   0x028B54
  7639. #define   S_028B54_LS_EN(x)                                           (((x) & 0x03) << 0)
  7640. #define   G_028B54_LS_EN(x)                                           (((x) >> 0) & 0x03)
  7641. #define   C_028B54_LS_EN                                              0xFFFFFFFC
  7642. #define     V_028B54_LS_STAGE_OFF                                   0x00
  7643. #define     V_028B54_LS_STAGE_ON                                    0x01
  7644. #define     V_028B54_CS_STAGE_ON                                    0x02
  7645. #define   S_028B54_HS_EN(x)                                           (((x) & 0x1) << 2)
  7646. #define   G_028B54_HS_EN(x)                                           (((x) >> 2) & 0x1)
  7647. #define   C_028B54_HS_EN                                              0xFFFFFFFB
  7648. #define   S_028B54_ES_EN(x)                                           (((x) & 0x03) << 3)
  7649. #define   G_028B54_ES_EN(x)                                           (((x) >> 3) & 0x03)
  7650. #define   C_028B54_ES_EN                                              0xFFFFFFE7
  7651. #define     V_028B54_ES_STAGE_OFF                                   0x00
  7652. #define     V_028B54_ES_STAGE_DS                                    0x01
  7653. #define     V_028B54_ES_STAGE_REAL                                  0x02
  7654. #define   S_028B54_GS_EN(x)                                           (((x) & 0x1) << 5)
  7655. #define   G_028B54_GS_EN(x)                                           (((x) >> 5) & 0x1)
  7656. #define   C_028B54_GS_EN                                              0xFFFFFFDF
  7657. #define   S_028B54_VS_EN(x)                                           (((x) & 0x03) << 6)
  7658. #define   G_028B54_VS_EN(x)                                           (((x) >> 6) & 0x03)
  7659. #define   C_028B54_VS_EN                                              0xFFFFFF3F
  7660. #define     V_028B54_VS_STAGE_REAL                                  0x00
  7661. #define     V_028B54_VS_STAGE_DS                                    0x01
  7662. #define     V_028B54_VS_STAGE_COPY_SHADER                           0x02
  7663. #define   S_028B54_DYNAMIC_HS(x)                                      (((x) & 0x1) << 8)
  7664. #define   G_028B54_DYNAMIC_HS(x)                                      (((x) >> 8) & 0x1)
  7665. #define   C_028B54_DYNAMIC_HS                                         0xFFFFFEFF
  7666. #define R_028B58_VGT_LS_HS_CONFIG                                       0x028B58
  7667. #define   S_028B58_NUM_PATCHES(x)                                     (((x) & 0xFF) << 0)
  7668. #define   G_028B58_NUM_PATCHES(x)                                     (((x) >> 0) & 0xFF)
  7669. #define   C_028B58_NUM_PATCHES                                        0xFFFFFF00
  7670. #define   S_028B58_HS_NUM_INPUT_CP(x)                                 (((x) & 0x3F) << 8)
  7671. #define   G_028B58_HS_NUM_INPUT_CP(x)                                 (((x) >> 8) & 0x3F)
  7672. #define   C_028B58_HS_NUM_INPUT_CP                                    0xFFFFC0FF
  7673. #define   S_028B58_HS_NUM_OUTPUT_CP(x)                                (((x) & 0x3F) << 14)
  7674. #define   G_028B58_HS_NUM_OUTPUT_CP(x)                                (((x) >> 14) & 0x3F)
  7675. #define   C_028B58_HS_NUM_OUTPUT_CP                                   0xFFF03FFF
  7676. #define R_028B5C_VGT_GS_VERT_ITEMSIZE                                   0x028B5C
  7677. #define   S_028B5C_ITEMSIZE(x)                                        (((x) & 0x7FFF) << 0)
  7678. #define   G_028B5C_ITEMSIZE(x)                                        (((x) >> 0) & 0x7FFF)
  7679. #define   C_028B5C_ITEMSIZE                                           0xFFFF8000
  7680. #define R_028B60_VGT_GS_VERT_ITEMSIZE_1                                 0x028B60
  7681. #define   S_028B60_ITEMSIZE(x)                                        (((x) & 0x7FFF) << 0)
  7682. #define   G_028B60_ITEMSIZE(x)                                        (((x) >> 0) & 0x7FFF)
  7683. #define   C_028B60_ITEMSIZE                                           0xFFFF8000
  7684. #define R_028B64_VGT_GS_VERT_ITEMSIZE_2                                 0x028B64
  7685. #define   S_028B64_ITEMSIZE(x)                                        (((x) & 0x7FFF) << 0)
  7686. #define   G_028B64_ITEMSIZE(x)                                        (((x) >> 0) & 0x7FFF)
  7687. #define   C_028B64_ITEMSIZE                                           0xFFFF8000
  7688. #define R_028B68_VGT_GS_VERT_ITEMSIZE_3                                 0x028B68
  7689. #define   S_028B68_ITEMSIZE(x)                                        (((x) & 0x7FFF) << 0)
  7690. #define   G_028B68_ITEMSIZE(x)                                        (((x) >> 0) & 0x7FFF)
  7691. #define   C_028B68_ITEMSIZE                                           0xFFFF8000
  7692. #define R_028B6C_VGT_TF_PARAM                                           0x028B6C
  7693. #define   S_028B6C_TYPE(x)                                            (((x) & 0x03) << 0)
  7694. #define   G_028B6C_TYPE(x)                                            (((x) >> 0) & 0x03)
  7695. #define   C_028B6C_TYPE                                               0xFFFFFFFC
  7696. #define     V_028B6C_TESS_ISOLINE                                   0x00
  7697. #define     V_028B6C_TESS_TRIANGLE                                  0x01
  7698. #define     V_028B6C_TESS_QUAD                                      0x02
  7699. #define   S_028B6C_PARTITIONING(x)                                    (((x) & 0x07) << 2)
  7700. #define   G_028B6C_PARTITIONING(x)                                    (((x) >> 2) & 0x07)
  7701. #define   C_028B6C_PARTITIONING                                       0xFFFFFFE3
  7702. #define     V_028B6C_PART_INTEGER                                   0x00
  7703. #define     V_028B6C_PART_POW2                                      0x01
  7704. #define     V_028B6C_PART_FRAC_ODD                                  0x02
  7705. #define     V_028B6C_PART_FRAC_EVEN                                 0x03
  7706. #define   S_028B6C_TOPOLOGY(x)                                        (((x) & 0x07) << 5)
  7707. #define   G_028B6C_TOPOLOGY(x)                                        (((x) >> 5) & 0x07)
  7708. #define   C_028B6C_TOPOLOGY                                           0xFFFFFF1F
  7709. #define     V_028B6C_OUTPUT_POINT                                   0x00
  7710. #define     V_028B6C_OUTPUT_LINE                                    0x01
  7711. #define     V_028B6C_OUTPUT_TRIANGLE_CW                             0x02
  7712. #define     V_028B6C_OUTPUT_TRIANGLE_CCW                            0x03
  7713. #define   S_028B6C_RESERVED_REDUC_AXIS(x)                             (((x) & 0x1) << 8) /* not on CIK */
  7714. #define   G_028B6C_RESERVED_REDUC_AXIS(x)                             (((x) >> 8) & 0x1) /* not on CIK */
  7715. #define   C_028B6C_RESERVED_REDUC_AXIS                                0xFFFFFEFF /* not on CIK */
  7716. #define   S_028B6C_NUM_DS_WAVES_PER_SIMD(x)                           (((x) & 0x0F) << 10)
  7717. #define   G_028B6C_NUM_DS_WAVES_PER_SIMD(x)                           (((x) >> 10) & 0x0F)
  7718. #define   C_028B6C_NUM_DS_WAVES_PER_SIMD                              0xFFFFC3FF
  7719. #define   S_028B6C_DISABLE_DONUTS(x)                                  (((x) & 0x1) << 14)
  7720. #define   G_028B6C_DISABLE_DONUTS(x)                                  (((x) >> 14) & 0x1)
  7721. #define   C_028B6C_DISABLE_DONUTS                                     0xFFFFBFFF
  7722. /* CIK */
  7723. #define   S_028B6C_RDREQ_POLICY(x)                                    (((x) & 0x03) << 15)
  7724. #define   G_028B6C_RDREQ_POLICY(x)                                    (((x) >> 15) & 0x03)
  7725. #define   C_028B6C_RDREQ_POLICY                                       0xFFFE7FFF
  7726. #define     V_028B6C_VGT_POLICY_LRU                                 0x00
  7727. #define     V_028B6C_VGT_POLICY_STREAM                              0x01
  7728. #define     V_028B6C_VGT_POLICY_BYPASS                              0x02
  7729. /*     */
  7730. #define R_028B70_DB_ALPHA_TO_MASK                                       0x028B70
  7731. #define   S_028B70_ALPHA_TO_MASK_ENABLE(x)                            (((x) & 0x1) << 0)
  7732. #define   G_028B70_ALPHA_TO_MASK_ENABLE(x)                            (((x) >> 0) & 0x1)
  7733. #define   C_028B70_ALPHA_TO_MASK_ENABLE                               0xFFFFFFFE
  7734. #define   S_028B70_ALPHA_TO_MASK_OFFSET0(x)                           (((x) & 0x03) << 8)
  7735. #define   G_028B70_ALPHA_TO_MASK_OFFSET0(x)                           (((x) >> 8) & 0x03)
  7736. #define   C_028B70_ALPHA_TO_MASK_OFFSET0                              0xFFFFFCFF
  7737. #define   S_028B70_ALPHA_TO_MASK_OFFSET1(x)                           (((x) & 0x03) << 10)
  7738. #define   G_028B70_ALPHA_TO_MASK_OFFSET1(x)                           (((x) >> 10) & 0x03)
  7739. #define   C_028B70_ALPHA_TO_MASK_OFFSET1                              0xFFFFF3FF
  7740. #define   S_028B70_ALPHA_TO_MASK_OFFSET2(x)                           (((x) & 0x03) << 12)
  7741. #define   G_028B70_ALPHA_TO_MASK_OFFSET2(x)                           (((x) >> 12) & 0x03)
  7742. #define   C_028B70_ALPHA_TO_MASK_OFFSET2                              0xFFFFCFFF
  7743. #define   S_028B70_ALPHA_TO_MASK_OFFSET3(x)                           (((x) & 0x03) << 14)
  7744. #define   G_028B70_ALPHA_TO_MASK_OFFSET3(x)                           (((x) >> 14) & 0x03)
  7745. #define   C_028B70_ALPHA_TO_MASK_OFFSET3                              0xFFFF3FFF
  7746. #define   S_028B70_OFFSET_ROUND(x)                                    (((x) & 0x1) << 16)
  7747. #define   G_028B70_OFFSET_ROUND(x)                                    (((x) >> 16) & 0x1)
  7748. #define   C_028B70_OFFSET_ROUND                                       0xFFFEFFFF
  7749. /* CIK */
  7750. #define R_028B74_VGT_DISPATCH_DRAW_INDEX                                0x028B74
  7751. /*     */
  7752. #define R_028B78_PA_SU_POLY_OFFSET_DB_FMT_CNTL                          0x028B78
  7753. #define   S_028B78_POLY_OFFSET_NEG_NUM_DB_BITS(x)                     (((x) & 0xFF) << 0)
  7754. #define   G_028B78_POLY_OFFSET_NEG_NUM_DB_BITS(x)                     (((x) >> 0) & 0xFF)
  7755. #define   C_028B78_POLY_OFFSET_NEG_NUM_DB_BITS                        0xFFFFFF00
  7756. #define   S_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT(x)                     (((x) & 0x1) << 8)
  7757. #define   G_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT(x)                     (((x) >> 8) & 0x1)
  7758. #define   C_028B78_POLY_OFFSET_DB_IS_FLOAT_FMT                        0xFFFFFEFF
  7759. #define R_028B7C_PA_SU_POLY_OFFSET_CLAMP                                0x028B7C
  7760. #define R_028B80_PA_SU_POLY_OFFSET_FRONT_SCALE                          0x028B80
  7761. #define R_028B84_PA_SU_POLY_OFFSET_FRONT_OFFSET                         0x028B84
  7762. #define R_028B88_PA_SU_POLY_OFFSET_BACK_SCALE                           0x028B88
  7763. #define R_028B8C_PA_SU_POLY_OFFSET_BACK_OFFSET                          0x028B8C
  7764. #define R_028B90_VGT_GS_INSTANCE_CNT                                    0x028B90
  7765. #define   S_028B90_ENABLE(x)                                          (((x) & 0x1) << 0)
  7766. #define   G_028B90_ENABLE(x)                                          (((x) >> 0) & 0x1)
  7767. #define   C_028B90_ENABLE                                             0xFFFFFFFE
  7768. #define   S_028B90_CNT(x)                                             (((x) & 0x7F) << 2)
  7769. #define   G_028B90_CNT(x)                                             (((x) >> 2) & 0x7F)
  7770. #define   C_028B90_CNT                                                0xFFFFFE03
  7771. #define R_028B94_VGT_STRMOUT_CONFIG                                     0x028B94
  7772. #define   S_028B94_STREAMOUT_0_EN(x)                                  (((x) & 0x1) << 0)
  7773. #define   G_028B94_STREAMOUT_0_EN(x)                                  (((x) >> 0) & 0x1)
  7774. #define   C_028B94_STREAMOUT_0_EN                                     0xFFFFFFFE
  7775. #define   S_028B94_STREAMOUT_1_EN(x)                                  (((x) & 0x1) << 1)
  7776. #define   G_028B94_STREAMOUT_1_EN(x)                                  (((x) >> 1) & 0x1)
  7777. #define   C_028B94_STREAMOUT_1_EN                                     0xFFFFFFFD
  7778. #define   S_028B94_STREAMOUT_2_EN(x)                                  (((x) & 0x1) << 2)
  7779. #define   G_028B94_STREAMOUT_2_EN(x)                                  (((x) >> 2) & 0x1)
  7780. #define   C_028B94_STREAMOUT_2_EN                                     0xFFFFFFFB
  7781. #define   S_028B94_STREAMOUT_3_EN(x)                                  (((x) & 0x1) << 3)
  7782. #define   G_028B94_STREAMOUT_3_EN(x)                                  (((x) >> 3) & 0x1)
  7783. #define   C_028B94_STREAMOUT_3_EN                                     0xFFFFFFF7
  7784. #define   S_028B94_RAST_STREAM(x)                                     (((x) & 0x07) << 4)
  7785. #define   G_028B94_RAST_STREAM(x)                                     (((x) >> 4) & 0x07)
  7786. #define   C_028B94_RAST_STREAM                                        0xFFFFFF8F
  7787. #define   S_028B94_RAST_STREAM_MASK(x)                                (((x) & 0x0F) << 8)
  7788. #define   G_028B94_RAST_STREAM_MASK(x)                                (((x) >> 8) & 0x0F)
  7789. #define   C_028B94_RAST_STREAM_MASK                                   0xFFFFF0FF
  7790. #define   S_028B94_USE_RAST_STREAM_MASK(x)                            (((x) & 0x1) << 31)
  7791. #define   G_028B94_USE_RAST_STREAM_MASK(x)                            (((x) >> 31) & 0x1)
  7792. #define   C_028B94_USE_RAST_STREAM_MASK                               0x7FFFFFFF
  7793. #define R_028B98_VGT_STRMOUT_BUFFER_CONFIG                              0x028B98
  7794. #define   S_028B98_STREAM_0_BUFFER_EN(x)                              (((x) & 0x0F) << 0)
  7795. #define   G_028B98_STREAM_0_BUFFER_EN(x)                              (((x) >> 0) & 0x0F)
  7796. #define   C_028B98_STREAM_0_BUFFER_EN                                 0xFFFFFFF0
  7797. #define   S_028B98_STREAM_1_BUFFER_EN(x)                              (((x) & 0x0F) << 4)
  7798. #define   G_028B98_STREAM_1_BUFFER_EN(x)                              (((x) >> 4) & 0x0F)
  7799. #define   C_028B98_STREAM_1_BUFFER_EN                                 0xFFFFFF0F
  7800. #define   S_028B98_STREAM_2_BUFFER_EN(x)                              (((x) & 0x0F) << 8)
  7801. #define   G_028B98_STREAM_2_BUFFER_EN(x)                              (((x) >> 8) & 0x0F)
  7802. #define   C_028B98_STREAM_2_BUFFER_EN                                 0xFFFFF0FF
  7803. #define   S_028B98_STREAM_3_BUFFER_EN(x)                              (((x) & 0x0F) << 12)
  7804. #define   G_028B98_STREAM_3_BUFFER_EN(x)                              (((x) >> 12) & 0x0F)
  7805. #define   C_028B98_STREAM_3_BUFFER_EN                                 0xFFFF0FFF
  7806. #define R_028BD4_PA_SC_CENTROID_PRIORITY_0                              0x028BD4
  7807. #define   S_028BD4_DISTANCE_0(x)                                      (((x) & 0x0F) << 0)
  7808. #define   G_028BD4_DISTANCE_0(x)                                      (((x) >> 0) & 0x0F)
  7809. #define   C_028BD4_DISTANCE_0                                         0xFFFFFFF0
  7810. #define   S_028BD4_DISTANCE_1(x)                                      (((x) & 0x0F) << 4)
  7811. #define   G_028BD4_DISTANCE_1(x)                                      (((x) >> 4) & 0x0F)
  7812. #define   C_028BD4_DISTANCE_1                                         0xFFFFFF0F
  7813. #define   S_028BD4_DISTANCE_2(x)                                      (((x) & 0x0F) << 8)
  7814. #define   G_028BD4_DISTANCE_2(x)                                      (((x) >> 8) & 0x0F)
  7815. #define   C_028BD4_DISTANCE_2                                         0xFFFFF0FF
  7816. #define   S_028BD4_DISTANCE_3(x)                                      (((x) & 0x0F) << 12)
  7817. #define   G_028BD4_DISTANCE_3(x)                                      (((x) >> 12) & 0x0F)
  7818. #define   C_028BD4_DISTANCE_3                                         0xFFFF0FFF
  7819. #define   S_028BD4_DISTANCE_4(x)                                      (((x) & 0x0F) << 16)
  7820. #define   G_028BD4_DISTANCE_4(x)                                      (((x) >> 16) & 0x0F)
  7821. #define   C_028BD4_DISTANCE_4                                         0xFFF0FFFF
  7822. #define   S_028BD4_DISTANCE_5(x)                                      (((x) & 0x0F) << 20)
  7823. #define   G_028BD4_DISTANCE_5(x)                                      (((x) >> 20) & 0x0F)
  7824. #define   C_028BD4_DISTANCE_5                                         0xFF0FFFFF
  7825. #define   S_028BD4_DISTANCE_6(x)                                      (((x) & 0x0F) << 24)
  7826. #define   G_028BD4_DISTANCE_6(x)                                      (((x) >> 24) & 0x0F)
  7827. #define   C_028BD4_DISTANCE_6                                         0xF0FFFFFF
  7828. #define   S_028BD4_DISTANCE_7(x)                                      (((x) & 0x0F) << 28)
  7829. #define   G_028BD4_DISTANCE_7(x)                                      (((x) >> 28) & 0x0F)
  7830. #define   C_028BD4_DISTANCE_7                                         0x0FFFFFFF
  7831. #define R_028BD8_PA_SC_CENTROID_PRIORITY_1                              0x028BD8
  7832. #define   S_028BD8_DISTANCE_8(x)                                      (((x) & 0x0F) << 0)
  7833. #define   G_028BD8_DISTANCE_8(x)                                      (((x) >> 0) & 0x0F)
  7834. #define   C_028BD8_DISTANCE_8                                         0xFFFFFFF0
  7835. #define   S_028BD8_DISTANCE_9(x)                                      (((x) & 0x0F) << 4)
  7836. #define   G_028BD8_DISTANCE_9(x)                                      (((x) >> 4) & 0x0F)
  7837. #define   C_028BD8_DISTANCE_9                                         0xFFFFFF0F
  7838. #define   S_028BD8_DISTANCE_10(x)                                     (((x) & 0x0F) << 8)
  7839. #define   G_028BD8_DISTANCE_10(x)                                     (((x) >> 8) & 0x0F)
  7840. #define   C_028BD8_DISTANCE_10                                        0xFFFFF0FF
  7841. #define   S_028BD8_DISTANCE_11(x)                                     (((x) & 0x0F) << 12)
  7842. #define   G_028BD8_DISTANCE_11(x)                                     (((x) >> 12) & 0x0F)
  7843. #define   C_028BD8_DISTANCE_11                                        0xFFFF0FFF
  7844. #define   S_028BD8_DISTANCE_12(x)                                     (((x) & 0x0F) << 16)
  7845. #define   G_028BD8_DISTANCE_12(x)                                     (((x) >> 16) & 0x0F)
  7846. #define   C_028BD8_DISTANCE_12                                        0xFFF0FFFF
  7847. #define   S_028BD8_DISTANCE_13(x)                                     (((x) & 0x0F) << 20)
  7848. #define   G_028BD8_DISTANCE_13(x)                                     (((x) >> 20) & 0x0F)
  7849. #define   C_028BD8_DISTANCE_13                                        0xFF0FFFFF
  7850. #define   S_028BD8_DISTANCE_14(x)                                     (((x) & 0x0F) << 24)
  7851. #define   G_028BD8_DISTANCE_14(x)                                     (((x) >> 24) & 0x0F)
  7852. #define   C_028BD8_DISTANCE_14                                        0xF0FFFFFF
  7853. #define   S_028BD8_DISTANCE_15(x)                                     (((x) & 0x0F) << 28)
  7854. #define   G_028BD8_DISTANCE_15(x)                                     (((x) >> 28) & 0x0F)
  7855. #define   C_028BD8_DISTANCE_15                                        0x0FFFFFFF
  7856. #define R_028BDC_PA_SC_LINE_CNTL                                        0x028BDC
  7857. #define   S_028BDC_EXPAND_LINE_WIDTH(x)                               (((x) & 0x1) << 9)
  7858. #define   G_028BDC_EXPAND_LINE_WIDTH(x)                               (((x) >> 9) & 0x1)
  7859. #define   C_028BDC_EXPAND_LINE_WIDTH                                  0xFFFFFDFF
  7860. #define   S_028BDC_LAST_PIXEL(x)                                      (((x) & 0x1) << 10)
  7861. #define   G_028BDC_LAST_PIXEL(x)                                      (((x) >> 10) & 0x1)
  7862. #define   C_028BDC_LAST_PIXEL                                         0xFFFFFBFF
  7863. #define   S_028BDC_PERPENDICULAR_ENDCAP_ENA(x)                        (((x) & 0x1) << 11)
  7864. #define   G_028BDC_PERPENDICULAR_ENDCAP_ENA(x)                        (((x) >> 11) & 0x1)
  7865. #define   C_028BDC_PERPENDICULAR_ENDCAP_ENA                           0xFFFFF7FF
  7866. #define   S_028BDC_DX10_DIAMOND_TEST_ENA(x)                           (((x) & 0x1) << 12)
  7867. #define   G_028BDC_DX10_DIAMOND_TEST_ENA(x)                           (((x) >> 12) & 0x1)
  7868. #define   C_028BDC_DX10_DIAMOND_TEST_ENA                              0xFFFFEFFF
  7869. #define R_028BE0_PA_SC_AA_CONFIG                                        0x028BE0
  7870. #define   S_028BE0_MSAA_NUM_SAMPLES(x)                                (((x) & 0x07) << 0)
  7871. #define   G_028BE0_MSAA_NUM_SAMPLES(x)                                (((x) >> 0) & 0x07)
  7872. #define   C_028BE0_MSAA_NUM_SAMPLES                                   0xFFFFFFF8
  7873. #define   S_028BE0_AA_MASK_CENTROID_DTMN(x)                           (((x) & 0x1) << 4)
  7874. #define   G_028BE0_AA_MASK_CENTROID_DTMN(x)                           (((x) >> 4) & 0x1)
  7875. #define   C_028BE0_AA_MASK_CENTROID_DTMN                              0xFFFFFFEF
  7876. #define   S_028BE0_MAX_SAMPLE_DIST(x)                                 (((x) & 0x0F) << 13)
  7877. #define   G_028BE0_MAX_SAMPLE_DIST(x)                                 (((x) >> 13) & 0x0F)
  7878. #define   C_028BE0_MAX_SAMPLE_DIST                                    0xFFFE1FFF
  7879. #define   S_028BE0_MSAA_EXPOSED_SAMPLES(x)                            (((x) & 0x07) << 20)
  7880. #define   G_028BE0_MSAA_EXPOSED_SAMPLES(x)                            (((x) >> 20) & 0x07)
  7881. #define   C_028BE0_MSAA_EXPOSED_SAMPLES                               0xFF8FFFFF
  7882. #define   S_028BE0_DETAIL_TO_EXPOSED_MODE(x)                          (((x) & 0x03) << 24)
  7883. #define   G_028BE0_DETAIL_TO_EXPOSED_MODE(x)                          (((x) >> 24) & 0x03)
  7884. #define   C_028BE0_DETAIL_TO_EXPOSED_MODE                             0xFCFFFFFF
  7885. #define R_028BE4_PA_SU_VTX_CNTL                                         0x028BE4
  7886. #define   S_028BE4_PIX_CENTER(x)                                      (((x) & 0x1) << 0)
  7887. #define   G_028BE4_PIX_CENTER(x)                                      (((x) >> 0) & 0x1)
  7888. #define   C_028BE4_PIX_CENTER                                         0xFFFFFFFE
  7889. #define   S_028BE4_ROUND_MODE(x)                                      (((x) & 0x03) << 1)
  7890. #define   G_028BE4_ROUND_MODE(x)                                      (((x) >> 1) & 0x03)
  7891. #define   C_028BE4_ROUND_MODE                                         0xFFFFFFF9
  7892. #define     V_028BE4_X_TRUNCATE                                     0x00
  7893. #define     V_028BE4_X_ROUND                                        0x01
  7894. #define     V_028BE4_X_ROUND_TO_EVEN                                0x02
  7895. #define     V_028BE4_X_ROUND_TO_ODD                                 0x03
  7896. #define   S_028BE4_QUANT_MODE(x)                                      (((x) & 0x07) << 3)
  7897. #define   G_028BE4_QUANT_MODE(x)                                      (((x) >> 3) & 0x07)
  7898. #define   C_028BE4_QUANT_MODE                                         0xFFFFFFC7
  7899. #define     V_028BE4_X_16_8_FIXED_POINT_1_16TH                      0x00
  7900. #define     V_028BE4_X_16_8_FIXED_POINT_1_8TH                       0x01
  7901. #define     V_028BE4_X_16_8_FIXED_POINT_1_4TH                       0x02
  7902. #define     V_028BE4_X_16_8_FIXED_POINT_1_2                         0x03
  7903. #define     V_028BE4_X_16_8_FIXED_POINT_1                           0x04
  7904. #define     V_028BE4_X_16_8_FIXED_POINT_1_256TH                     0x05
  7905. #define     V_028BE4_X_14_10_FIXED_POINT_1_1024TH                   0x06
  7906. #define     V_028BE4_X_12_12_FIXED_POINT_1_4096TH                   0x07
  7907. #define R_028BE8_PA_CL_GB_VERT_CLIP_ADJ                                 0x028BE8
  7908. #define R_028BEC_PA_CL_GB_VERT_DISC_ADJ                                 0x028BEC
  7909. #define R_028BF0_PA_CL_GB_HORZ_CLIP_ADJ                                 0x028BF0
  7910. #define R_028BF4_PA_CL_GB_HORZ_DISC_ADJ                                 0x028BF4
  7911. #define R_028BF8_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0                      0x028BF8
  7912. #define   S_028BF8_S0_X(x)                                            (((x) & 0x0F) << 0)
  7913. #define   G_028BF8_S0_X(x)                                            (((x) >> 0) & 0x0F)
  7914. #define   C_028BF8_S0_X                                               0xFFFFFFF0
  7915. #define   S_028BF8_S0_Y(x)                                            (((x) & 0x0F) << 4)
  7916. #define   G_028BF8_S0_Y(x)                                            (((x) >> 4) & 0x0F)
  7917. #define   C_028BF8_S0_Y                                               0xFFFFFF0F
  7918. #define   S_028BF8_S1_X(x)                                            (((x) & 0x0F) << 8)
  7919. #define   G_028BF8_S1_X(x)                                            (((x) >> 8) & 0x0F)
  7920. #define   C_028BF8_S1_X                                               0xFFFFF0FF
  7921. #define   S_028BF8_S1_Y(x)                                            (((x) & 0x0F) << 12)
  7922. #define   G_028BF8_S1_Y(x)                                            (((x) >> 12) & 0x0F)
  7923. #define   C_028BF8_S1_Y                                               0xFFFF0FFF
  7924. #define   S_028BF8_S2_X(x)                                            (((x) & 0x0F) << 16)
  7925. #define   G_028BF8_S2_X(x)                                            (((x) >> 16) & 0x0F)
  7926. #define   C_028BF8_S2_X                                               0xFFF0FFFF
  7927. #define   S_028BF8_S2_Y(x)                                            (((x) & 0x0F) << 20)
  7928. #define   G_028BF8_S2_Y(x)                                            (((x) >> 20) & 0x0F)
  7929. #define   C_028BF8_S2_Y                                               0xFF0FFFFF
  7930. #define   S_028BF8_S3_X(x)                                            (((x) & 0x0F) << 24)
  7931. #define   G_028BF8_S3_X(x)                                            (((x) >> 24) & 0x0F)
  7932. #define   C_028BF8_S3_X                                               0xF0FFFFFF
  7933. #define   S_028BF8_S3_Y(x)                                            (((x) & 0x0F) << 28)
  7934. #define   G_028BF8_S3_Y(x)                                            (((x) >> 28) & 0x0F)
  7935. #define   C_028BF8_S3_Y                                               0x0FFFFFFF
  7936. #define R_028BFC_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1                      0x028BFC
  7937. #define   S_028BFC_S4_X(x)                                            (((x) & 0x0F) << 0)
  7938. #define   G_028BFC_S4_X(x)                                            (((x) >> 0) & 0x0F)
  7939. #define   C_028BFC_S4_X                                               0xFFFFFFF0
  7940. #define   S_028BFC_S4_Y(x)                                            (((x) & 0x0F) << 4)
  7941. #define   G_028BFC_S4_Y(x)                                            (((x) >> 4) & 0x0F)
  7942. #define   C_028BFC_S4_Y                                               0xFFFFFF0F
  7943. #define   S_028BFC_S5_X(x)                                            (((x) & 0x0F) << 8)
  7944. #define   G_028BFC_S5_X(x)                                            (((x) >> 8) & 0x0F)
  7945. #define   C_028BFC_S5_X                                               0xFFFFF0FF
  7946. #define   S_028BFC_S5_Y(x)                                            (((x) & 0x0F) << 12)
  7947. #define   G_028BFC_S5_Y(x)                                            (((x) >> 12) & 0x0F)
  7948. #define   C_028BFC_S5_Y                                               0xFFFF0FFF
  7949. #define   S_028BFC_S6_X(x)                                            (((x) & 0x0F) << 16)
  7950. #define   G_028BFC_S6_X(x)                                            (((x) >> 16) & 0x0F)
  7951. #define   C_028BFC_S6_X                                               0xFFF0FFFF
  7952. #define   S_028BFC_S6_Y(x)                                            (((x) & 0x0F) << 20)
  7953. #define   G_028BFC_S6_Y(x)                                            (((x) >> 20) & 0x0F)
  7954. #define   C_028BFC_S6_Y                                               0xFF0FFFFF
  7955. #define   S_028BFC_S7_X(x)                                            (((x) & 0x0F) << 24)
  7956. #define   G_028BFC_S7_X(x)                                            (((x) >> 24) & 0x0F)
  7957. #define   C_028BFC_S7_X                                               0xF0FFFFFF
  7958. #define   S_028BFC_S7_Y(x)                                            (((x) & 0x0F) << 28)
  7959. #define   G_028BFC_S7_Y(x)                                            (((x) >> 28) & 0x0F)
  7960. #define   C_028BFC_S7_Y                                               0x0FFFFFFF
  7961. #define R_028C00_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2                      0x028C00
  7962. #define   S_028C00_S8_X(x)                                            (((x) & 0x0F) << 0)
  7963. #define   G_028C00_S8_X(x)                                            (((x) >> 0) & 0x0F)
  7964. #define   C_028C00_S8_X                                               0xFFFFFFF0
  7965. #define   S_028C00_S8_Y(x)                                            (((x) & 0x0F) << 4)
  7966. #define   G_028C00_S8_Y(x)                                            (((x) >> 4) & 0x0F)
  7967. #define   C_028C00_S8_Y                                               0xFFFFFF0F
  7968. #define   S_028C00_S9_X(x)                                            (((x) & 0x0F) << 8)
  7969. #define   G_028C00_S9_X(x)                                            (((x) >> 8) & 0x0F)
  7970. #define   C_028C00_S9_X                                               0xFFFFF0FF
  7971. #define   S_028C00_S9_Y(x)                                            (((x) & 0x0F) << 12)
  7972. #define   G_028C00_S9_Y(x)                                            (((x) >> 12) & 0x0F)
  7973. #define   C_028C00_S9_Y                                               0xFFFF0FFF
  7974. #define   S_028C00_S10_X(x)                                           (((x) & 0x0F) << 16)
  7975. #define   G_028C00_S10_X(x)                                           (((x) >> 16) & 0x0F)
  7976. #define   C_028C00_S10_X                                              0xFFF0FFFF
  7977. #define   S_028C00_S10_Y(x)                                           (((x) & 0x0F) << 20)
  7978. #define   G_028C00_S10_Y(x)                                           (((x) >> 20) & 0x0F)
  7979. #define   C_028C00_S10_Y                                              0xFF0FFFFF
  7980. #define   S_028C00_S11_X(x)                                           (((x) & 0x0F) << 24)
  7981. #define   G_028C00_S11_X(x)                                           (((x) >> 24) & 0x0F)
  7982. #define   C_028C00_S11_X                                              0xF0FFFFFF
  7983. #define   S_028C00_S11_Y(x)                                           (((x) & 0x0F) << 28)
  7984. #define   G_028C00_S11_Y(x)                                           (((x) >> 28) & 0x0F)
  7985. #define   C_028C00_S11_Y                                              0x0FFFFFFF
  7986. #define R_028C04_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3                      0x028C04
  7987. #define   S_028C04_S12_X(x)                                           (((x) & 0x0F) << 0)
  7988. #define   G_028C04_S12_X(x)                                           (((x) >> 0) & 0x0F)
  7989. #define   C_028C04_S12_X                                              0xFFFFFFF0
  7990. #define   S_028C04_S12_Y(x)                                           (((x) & 0x0F) << 4)
  7991. #define   G_028C04_S12_Y(x)                                           (((x) >> 4) & 0x0F)
  7992. #define   C_028C04_S12_Y                                              0xFFFFFF0F
  7993. #define   S_028C04_S13_X(x)                                           (((x) & 0x0F) << 8)
  7994. #define   G_028C04_S13_X(x)                                           (((x) >> 8) & 0x0F)
  7995. #define   C_028C04_S13_X                                              0xFFFFF0FF
  7996. #define   S_028C04_S13_Y(x)                                           (((x) & 0x0F) << 12)
  7997. #define   G_028C04_S13_Y(x)                                           (((x) >> 12) & 0x0F)
  7998. #define   C_028C04_S13_Y                                              0xFFFF0FFF
  7999. #define   S_028C04_S14_X(x)                                           (((x) & 0x0F) << 16)
  8000. #define   G_028C04_S14_X(x)                                           (((x) >> 16) & 0x0F)
  8001. #define   C_028C04_S14_X                                              0xFFF0FFFF
  8002. #define   S_028C04_S14_Y(x)                                           (((x) & 0x0F) << 20)
  8003. #define   G_028C04_S14_Y(x)                                           (((x) >> 20) & 0x0F)
  8004. #define   C_028C04_S14_Y                                              0xFF0FFFFF
  8005. #define   S_028C04_S15_X(x)                                           (((x) & 0x0F) << 24)
  8006. #define   G_028C04_S15_X(x)                                           (((x) >> 24) & 0x0F)
  8007. #define   C_028C04_S15_X                                              0xF0FFFFFF
  8008. #define   S_028C04_S15_Y(x)                                           (((x) & 0x0F) << 28)
  8009. #define   G_028C04_S15_Y(x)                                           (((x) >> 28) & 0x0F)
  8010. #define   C_028C04_S15_Y                                              0x0FFFFFFF
  8011. #define R_028C08_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0                      0x028C08
  8012. #define   S_028C08_S0_X(x)                                            (((x) & 0x0F) << 0)
  8013. #define   G_028C08_S0_X(x)                                            (((x) >> 0) & 0x0F)
  8014. #define   C_028C08_S0_X                                               0xFFFFFFF0
  8015. #define   S_028C08_S0_Y(x)                                            (((x) & 0x0F) << 4)
  8016. #define   G_028C08_S0_Y(x)                                            (((x) >> 4) & 0x0F)
  8017. #define   C_028C08_S0_Y                                               0xFFFFFF0F
  8018. #define   S_028C08_S1_X(x)                                            (((x) & 0x0F) << 8)
  8019. #define   G_028C08_S1_X(x)                                            (((x) >> 8) & 0x0F)
  8020. #define   C_028C08_S1_X                                               0xFFFFF0FF
  8021. #define   S_028C08_S1_Y(x)                                            (((x) & 0x0F) << 12)
  8022. #define   G_028C08_S1_Y(x)                                            (((x) >> 12) & 0x0F)
  8023. #define   C_028C08_S1_Y                                               0xFFFF0FFF
  8024. #define   S_028C08_S2_X(x)                                            (((x) & 0x0F) << 16)
  8025. #define   G_028C08_S2_X(x)                                            (((x) >> 16) & 0x0F)
  8026. #define   C_028C08_S2_X                                               0xFFF0FFFF
  8027. #define   S_028C08_S2_Y(x)                                            (((x) & 0x0F) << 20)
  8028. #define   G_028C08_S2_Y(x)                                            (((x) >> 20) & 0x0F)
  8029. #define   C_028C08_S2_Y                                               0xFF0FFFFF
  8030. #define   S_028C08_S3_X(x)                                            (((x) & 0x0F) << 24)
  8031. #define   G_028C08_S3_X(x)                                            (((x) >> 24) & 0x0F)
  8032. #define   C_028C08_S3_X                                               0xF0FFFFFF
  8033. #define   S_028C08_S3_Y(x)                                            (((x) & 0x0F) << 28)
  8034. #define   G_028C08_S3_Y(x)                                            (((x) >> 28) & 0x0F)
  8035. #define   C_028C08_S3_Y                                               0x0FFFFFFF
  8036. #define R_028C0C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1                      0x028C0C
  8037. #define   S_028C0C_S4_X(x)                                            (((x) & 0x0F) << 0)
  8038. #define   G_028C0C_S4_X(x)                                            (((x) >> 0) & 0x0F)
  8039. #define   C_028C0C_S4_X                                               0xFFFFFFF0
  8040. #define   S_028C0C_S4_Y(x)                                            (((x) & 0x0F) << 4)
  8041. #define   G_028C0C_S4_Y(x)                                            (((x) >> 4) & 0x0F)
  8042. #define   C_028C0C_S4_Y                                               0xFFFFFF0F
  8043. #define   S_028C0C_S5_X(x)                                            (((x) & 0x0F) << 8)
  8044. #define   G_028C0C_S5_X(x)                                            (((x) >> 8) & 0x0F)
  8045. #define   C_028C0C_S5_X                                               0xFFFFF0FF
  8046. #define   S_028C0C_S5_Y(x)                                            (((x) & 0x0F) << 12)
  8047. #define   G_028C0C_S5_Y(x)                                            (((x) >> 12) & 0x0F)
  8048. #define   C_028C0C_S5_Y                                               0xFFFF0FFF
  8049. #define   S_028C0C_S6_X(x)                                            (((x) & 0x0F) << 16)
  8050. #define   G_028C0C_S6_X(x)                                            (((x) >> 16) & 0x0F)
  8051. #define   C_028C0C_S6_X                                               0xFFF0FFFF
  8052. #define   S_028C0C_S6_Y(x)                                            (((x) & 0x0F) << 20)
  8053. #define   G_028C0C_S6_Y(x)                                            (((x) >> 20) & 0x0F)
  8054. #define   C_028C0C_S6_Y                                               0xFF0FFFFF
  8055. #define   S_028C0C_S7_X(x)                                            (((x) & 0x0F) << 24)
  8056. #define   G_028C0C_S7_X(x)                                            (((x) >> 24) & 0x0F)
  8057. #define   C_028C0C_S7_X                                               0xF0FFFFFF
  8058. #define   S_028C0C_S7_Y(x)                                            (((x) & 0x0F) << 28)
  8059. #define   G_028C0C_S7_Y(x)                                            (((x) >> 28) & 0x0F)
  8060. #define   C_028C0C_S7_Y                                               0x0FFFFFFF
  8061. #define R_028C10_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2                      0x028C10
  8062. #define   S_028C10_S8_X(x)                                            (((x) & 0x0F) << 0)
  8063. #define   G_028C10_S8_X(x)                                            (((x) >> 0) & 0x0F)
  8064. #define   C_028C10_S8_X                                               0xFFFFFFF0
  8065. #define   S_028C10_S8_Y(x)                                            (((x) & 0x0F) << 4)
  8066. #define   G_028C10_S8_Y(x)                                            (((x) >> 4) & 0x0F)
  8067. #define   C_028C10_S8_Y                                               0xFFFFFF0F
  8068. #define   S_028C10_S9_X(x)                                            (((x) & 0x0F) << 8)
  8069. #define   G_028C10_S9_X(x)                                            (((x) >> 8) & 0x0F)
  8070. #define   C_028C10_S9_X                                               0xFFFFF0FF
  8071. #define   S_028C10_S9_Y(x)                                            (((x) & 0x0F) << 12)
  8072. #define   G_028C10_S9_Y(x)                                            (((x) >> 12) & 0x0F)
  8073. #define   C_028C10_S9_Y                                               0xFFFF0FFF
  8074. #define   S_028C10_S10_X(x)                                           (((x) & 0x0F) << 16)
  8075. #define   G_028C10_S10_X(x)                                           (((x) >> 16) & 0x0F)
  8076. #define   C_028C10_S10_X                                              0xFFF0FFFF
  8077. #define   S_028C10_S10_Y(x)                                           (((x) & 0x0F) << 20)
  8078. #define   G_028C10_S10_Y(x)                                           (((x) >> 20) & 0x0F)
  8079. #define   C_028C10_S10_Y                                              0xFF0FFFFF
  8080. #define   S_028C10_S11_X(x)                                           (((x) & 0x0F) << 24)
  8081. #define   G_028C10_S11_X(x)                                           (((x) >> 24) & 0x0F)
  8082. #define   C_028C10_S11_X                                              0xF0FFFFFF
  8083. #define   S_028C10_S11_Y(x)                                           (((x) & 0x0F) << 28)
  8084. #define   G_028C10_S11_Y(x)                                           (((x) >> 28) & 0x0F)
  8085. #define   C_028C10_S11_Y                                              0x0FFFFFFF
  8086. #define R_028C14_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3                      0x028C14
  8087. #define   S_028C14_S12_X(x)                                           (((x) & 0x0F) << 0)
  8088. #define   G_028C14_S12_X(x)                                           (((x) >> 0) & 0x0F)
  8089. #define   C_028C14_S12_X                                              0xFFFFFFF0
  8090. #define   S_028C14_S12_Y(x)                                           (((x) & 0x0F) << 4)
  8091. #define   G_028C14_S12_Y(x)                                           (((x) >> 4) & 0x0F)
  8092. #define   C_028C14_S12_Y                                              0xFFFFFF0F
  8093. #define   S_028C14_S13_X(x)                                           (((x) & 0x0F) << 8)
  8094. #define   G_028C14_S13_X(x)                                           (((x) >> 8) & 0x0F)
  8095. #define   C_028C14_S13_X                                              0xFFFFF0FF
  8096. #define   S_028C14_S13_Y(x)                                           (((x) & 0x0F) << 12)
  8097. #define   G_028C14_S13_Y(x)                                           (((x) >> 12) & 0x0F)
  8098. #define   C_028C14_S13_Y                                              0xFFFF0FFF
  8099. #define   S_028C14_S14_X(x)                                           (((x) & 0x0F) << 16)
  8100. #define   G_028C14_S14_X(x)                                           (((x) >> 16) & 0x0F)
  8101. #define   C_028C14_S14_X                                              0xFFF0FFFF
  8102. #define   S_028C14_S14_Y(x)                                           (((x) & 0x0F) << 20)
  8103. #define   G_028C14_S14_Y(x)                                           (((x) >> 20) & 0x0F)
  8104. #define   C_028C14_S14_Y                                              0xFF0FFFFF
  8105. #define   S_028C14_S15_X(x)                                           (((x) & 0x0F) << 24)
  8106. #define   G_028C14_S15_X(x)                                           (((x) >> 24) & 0x0F)
  8107. #define   C_028C14_S15_X                                              0xF0FFFFFF
  8108. #define   S_028C14_S15_Y(x)                                           (((x) & 0x0F) << 28)
  8109. #define   G_028C14_S15_Y(x)                                           (((x) >> 28) & 0x0F)
  8110. #define   C_028C14_S15_Y                                              0x0FFFFFFF
  8111. #define R_028C18_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0                      0x028C18
  8112. #define   S_028C18_S0_X(x)                                            (((x) & 0x0F) << 0)
  8113. #define   G_028C18_S0_X(x)                                            (((x) >> 0) & 0x0F)
  8114. #define   C_028C18_S0_X                                               0xFFFFFFF0
  8115. #define   S_028C18_S0_Y(x)                                            (((x) & 0x0F) << 4)
  8116. #define   G_028C18_S0_Y(x)                                            (((x) >> 4) & 0x0F)
  8117. #define   C_028C18_S0_Y                                               0xFFFFFF0F
  8118. #define   S_028C18_S1_X(x)                                            (((x) & 0x0F) << 8)
  8119. #define   G_028C18_S1_X(x)                                            (((x) >> 8) & 0x0F)
  8120. #define   C_028C18_S1_X                                               0xFFFFF0FF
  8121. #define   S_028C18_S1_Y(x)                                            (((x) & 0x0F) << 12)
  8122. #define   G_028C18_S1_Y(x)                                            (((x) >> 12) & 0x0F)
  8123. #define   C_028C18_S1_Y                                               0xFFFF0FFF
  8124. #define   S_028C18_S2_X(x)                                            (((x) & 0x0F) << 16)
  8125. #define   G_028C18_S2_X(x)                                            (((x) >> 16) & 0x0F)
  8126. #define   C_028C18_S2_X                                               0xFFF0FFFF
  8127. #define   S_028C18_S2_Y(x)                                            (((x) & 0x0F) << 20)
  8128. #define   G_028C18_S2_Y(x)                                            (((x) >> 20) & 0x0F)
  8129. #define   C_028C18_S2_Y                                               0xFF0FFFFF
  8130. #define   S_028C18_S3_X(x)                                            (((x) & 0x0F) << 24)
  8131. #define   G_028C18_S3_X(x)                                            (((x) >> 24) & 0x0F)
  8132. #define   C_028C18_S3_X                                               0xF0FFFFFF
  8133. #define   S_028C18_S3_Y(x)                                            (((x) & 0x0F) << 28)
  8134. #define   G_028C18_S3_Y(x)                                            (((x) >> 28) & 0x0F)
  8135. #define   C_028C18_S3_Y                                               0x0FFFFFFF
  8136. #define R_028C1C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1                      0x028C1C
  8137. #define   S_028C1C_S4_X(x)                                            (((x) & 0x0F) << 0)
  8138. #define   G_028C1C_S4_X(x)                                            (((x) >> 0) & 0x0F)
  8139. #define   C_028C1C_S4_X                                               0xFFFFFFF0
  8140. #define   S_028C1C_S4_Y(x)                                            (((x) & 0x0F) << 4)
  8141. #define   G_028C1C_S4_Y(x)                                            (((x) >> 4) & 0x0F)
  8142. #define   C_028C1C_S4_Y                                               0xFFFFFF0F
  8143. #define   S_028C1C_S5_X(x)                                            (((x) & 0x0F) << 8)
  8144. #define   G_028C1C_S5_X(x)                                            (((x) >> 8) & 0x0F)
  8145. #define   C_028C1C_S5_X                                               0xFFFFF0FF
  8146. #define   S_028C1C_S5_Y(x)                                            (((x) & 0x0F) << 12)
  8147. #define   G_028C1C_S5_Y(x)                                            (((x) >> 12) & 0x0F)
  8148. #define   C_028C1C_S5_Y                                               0xFFFF0FFF
  8149. #define   S_028C1C_S6_X(x)                                            (((x) & 0x0F) << 16)
  8150. #define   G_028C1C_S6_X(x)                                            (((x) >> 16) & 0x0F)
  8151. #define   C_028C1C_S6_X                                               0xFFF0FFFF
  8152. #define   S_028C1C_S6_Y(x)                                            (((x) & 0x0F) << 20)
  8153. #define   G_028C1C_S6_Y(x)                                            (((x) >> 20) & 0x0F)
  8154. #define   C_028C1C_S6_Y                                               0xFF0FFFFF
  8155. #define   S_028C1C_S7_X(x)                                            (((x) & 0x0F) << 24)
  8156. #define   G_028C1C_S7_X(x)                                            (((x) >> 24) & 0x0F)
  8157. #define   C_028C1C_S7_X                                               0xF0FFFFFF
  8158. #define   S_028C1C_S7_Y(x)                                            (((x) & 0x0F) << 28)
  8159. #define   G_028C1C_S7_Y(x)                                            (((x) >> 28) & 0x0F)
  8160. #define   C_028C1C_S7_Y                                               0x0FFFFFFF
  8161. #define R_028C20_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2                      0x028C20
  8162. #define   S_028C20_S8_X(x)                                            (((x) & 0x0F) << 0)
  8163. #define   G_028C20_S8_X(x)                                            (((x) >> 0) & 0x0F)
  8164. #define   C_028C20_S8_X                                               0xFFFFFFF0
  8165. #define   S_028C20_S8_Y(x)                                            (((x) & 0x0F) << 4)
  8166. #define   G_028C20_S8_Y(x)                                            (((x) >> 4) & 0x0F)
  8167. #define   C_028C20_S8_Y                                               0xFFFFFF0F
  8168. #define   S_028C20_S9_X(x)                                            (((x) & 0x0F) << 8)
  8169. #define   G_028C20_S9_X(x)                                            (((x) >> 8) & 0x0F)
  8170. #define   C_028C20_S9_X                                               0xFFFFF0FF
  8171. #define   S_028C20_S9_Y(x)                                            (((x) & 0x0F) << 12)
  8172. #define   G_028C20_S9_Y(x)                                            (((x) >> 12) & 0x0F)
  8173. #define   C_028C20_S9_Y                                               0xFFFF0FFF
  8174. #define   S_028C20_S10_X(x)                                           (((x) & 0x0F) << 16)
  8175. #define   G_028C20_S10_X(x)                                           (((x) >> 16) & 0x0F)
  8176. #define   C_028C20_S10_X                                              0xFFF0FFFF
  8177. #define   S_028C20_S10_Y(x)                                           (((x) & 0x0F) << 20)
  8178. #define   G_028C20_S10_Y(x)                                           (((x) >> 20) & 0x0F)
  8179. #define   C_028C20_S10_Y                                              0xFF0FFFFF
  8180. #define   S_028C20_S11_X(x)                                           (((x) & 0x0F) << 24)
  8181. #define   G_028C20_S11_X(x)                                           (((x) >> 24) & 0x0F)
  8182. #define   C_028C20_S11_X                                              0xF0FFFFFF
  8183. #define   S_028C20_S11_Y(x)                                           (((x) & 0x0F) << 28)
  8184. #define   G_028C20_S11_Y(x)                                           (((x) >> 28) & 0x0F)
  8185. #define   C_028C20_S11_Y                                              0x0FFFFFFF
  8186. #define R_028C24_PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3                      0x028C24
  8187. #define   S_028C24_S12_X(x)                                           (((x) & 0x0F) << 0)
  8188. #define   G_028C24_S12_X(x)                                           (((x) >> 0) & 0x0F)
  8189. #define   C_028C24_S12_X                                              0xFFFFFFF0
  8190. #define   S_028C24_S12_Y(x)                                           (((x) & 0x0F) << 4)
  8191. #define   G_028C24_S12_Y(x)                                           (((x) >> 4) & 0x0F)
  8192. #define   C_028C24_S12_Y                                              0xFFFFFF0F
  8193. #define   S_028C24_S13_X(x)                                           (((x) & 0x0F) << 8)
  8194. #define   G_028C24_S13_X(x)                                           (((x) >> 8) & 0x0F)
  8195. #define   C_028C24_S13_X                                              0xFFFFF0FF
  8196. #define   S_028C24_S13_Y(x)                                           (((x) & 0x0F) << 12)
  8197. #define   G_028C24_S13_Y(x)                                           (((x) >> 12) & 0x0F)
  8198. #define   C_028C24_S13_Y                                              0xFFFF0FFF
  8199. #define   S_028C24_S14_X(x)                                           (((x) & 0x0F) << 16)
  8200. #define   G_028C24_S14_X(x)                                           (((x) >> 16) & 0x0F)
  8201. #define   C_028C24_S14_X                                              0xFFF0FFFF
  8202. #define   S_028C24_S14_Y(x)                                           (((x) & 0x0F) << 20)
  8203. #define   G_028C24_S14_Y(x)                                           (((x) >> 20) & 0x0F)
  8204. #define   C_028C24_S14_Y                                              0xFF0FFFFF
  8205. #define   S_028C24_S15_X(x)                                           (((x) & 0x0F) << 24)
  8206. #define   G_028C24_S15_X(x)                                           (((x) >> 24) & 0x0F)
  8207. #define   C_028C24_S15_X                                              0xF0FFFFFF
  8208. #define   S_028C24_S15_Y(x)                                           (((x) & 0x0F) << 28)
  8209. #define   G_028C24_S15_Y(x)                                           (((x) >> 28) & 0x0F)
  8210. #define   C_028C24_S15_Y                                              0x0FFFFFFF
  8211. #define R_028C28_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0                      0x028C28
  8212. #define   S_028C28_S0_X(x)                                            (((x) & 0x0F) << 0)
  8213. #define   G_028C28_S0_X(x)                                            (((x) >> 0) & 0x0F)
  8214. #define   C_028C28_S0_X                                               0xFFFFFFF0
  8215. #define   S_028C28_S0_Y(x)                                            (((x) & 0x0F) << 4)
  8216. #define   G_028C28_S0_Y(x)                                            (((x) >> 4) & 0x0F)
  8217. #define   C_028C28_S0_Y                                               0xFFFFFF0F
  8218. #define   S_028C28_S1_X(x)                                            (((x) & 0x0F) << 8)
  8219. #define   G_028C28_S1_X(x)                                            (((x) >> 8) & 0x0F)
  8220. #define   C_028C28_S1_X                                               0xFFFFF0FF
  8221. #define   S_028C28_S1_Y(x)                                            (((x) & 0x0F) << 12)
  8222. #define   G_028C28_S1_Y(x)                                            (((x) >> 12) & 0x0F)
  8223. #define   C_028C28_S1_Y                                               0xFFFF0FFF
  8224. #define   S_028C28_S2_X(x)                                            (((x) & 0x0F) << 16)
  8225. #define   G_028C28_S2_X(x)                                            (((x) >> 16) & 0x0F)
  8226. #define   C_028C28_S2_X                                               0xFFF0FFFF
  8227. #define   S_028C28_S2_Y(x)                                            (((x) & 0x0F) << 20)
  8228. #define   G_028C28_S2_Y(x)                                            (((x) >> 20) & 0x0F)
  8229. #define   C_028C28_S2_Y                                               0xFF0FFFFF
  8230. #define   S_028C28_S3_X(x)                                            (((x) & 0x0F) << 24)
  8231. #define   G_028C28_S3_X(x)                                            (((x) >> 24) & 0x0F)
  8232. #define   C_028C28_S3_X                                               0xF0FFFFFF
  8233. #define   S_028C28_S3_Y(x)                                            (((x) & 0x0F) << 28)
  8234. #define   G_028C28_S3_Y(x)                                            (((x) >> 28) & 0x0F)
  8235. #define   C_028C28_S3_Y                                               0x0FFFFFFF
  8236. #define R_028C2C_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1                      0x028C2C
  8237. #define   S_028C2C_S4_X(x)                                            (((x) & 0x0F) << 0)
  8238. #define   G_028C2C_S4_X(x)                                            (((x) >> 0) & 0x0F)
  8239. #define   C_028C2C_S4_X                                               0xFFFFFFF0
  8240. #define   S_028C2C_S4_Y(x)                                            (((x) & 0x0F) << 4)
  8241. #define   G_028C2C_S4_Y(x)                                            (((x) >> 4) & 0x0F)
  8242. #define   C_028C2C_S4_Y                                               0xFFFFFF0F
  8243. #define   S_028C2C_S5_X(x)                                            (((x) & 0x0F) << 8)
  8244. #define   G_028C2C_S5_X(x)                                            (((x) >> 8) & 0x0F)
  8245. #define   C_028C2C_S5_X                                               0xFFFFF0FF
  8246. #define   S_028C2C_S5_Y(x)                                            (((x) & 0x0F) << 12)
  8247. #define   G_028C2C_S5_Y(x)                                            (((x) >> 12) & 0x0F)
  8248. #define   C_028C2C_S5_Y                                               0xFFFF0FFF
  8249. #define   S_028C2C_S6_X(x)                                            (((x) & 0x0F) << 16)
  8250. #define   G_028C2C_S6_X(x)                                            (((x) >> 16) & 0x0F)
  8251. #define   C_028C2C_S6_X                                               0xFFF0FFFF
  8252. #define   S_028C2C_S6_Y(x)                                            (((x) & 0x0F) << 20)
  8253. #define   G_028C2C_S6_Y(x)                                            (((x) >> 20) & 0x0F)
  8254. #define   C_028C2C_S6_Y                                               0xFF0FFFFF
  8255. #define   S_028C2C_S7_X(x)                                            (((x) & 0x0F) << 24)
  8256. #define   G_028C2C_S7_X(x)                                            (((x) >> 24) & 0x0F)
  8257. #define   C_028C2C_S7_X                                               0xF0FFFFFF
  8258. #define   S_028C2C_S7_Y(x)                                            (((x) & 0x0F) << 28)
  8259. #define   G_028C2C_S7_Y(x)                                            (((x) >> 28) & 0x0F)
  8260. #define   C_028C2C_S7_Y                                               0x0FFFFFFF
  8261. #define R_028C30_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2                      0x028C30
  8262. #define   S_028C30_S8_X(x)                                            (((x) & 0x0F) << 0)
  8263. #define   G_028C30_S8_X(x)                                            (((x) >> 0) & 0x0F)
  8264. #define   C_028C30_S8_X                                               0xFFFFFFF0
  8265. #define   S_028C30_S8_Y(x)                                            (((x) & 0x0F) << 4)
  8266. #define   G_028C30_S8_Y(x)                                            (((x) >> 4) & 0x0F)
  8267. #define   C_028C30_S8_Y                                               0xFFFFFF0F
  8268. #define   S_028C30_S9_X(x)                                            (((x) & 0x0F) << 8)
  8269. #define   G_028C30_S9_X(x)                                            (((x) >> 8) & 0x0F)
  8270. #define   C_028C30_S9_X                                               0xFFFFF0FF
  8271. #define   S_028C30_S9_Y(x)                                            (((x) & 0x0F) << 12)
  8272. #define   G_028C30_S9_Y(x)                                            (((x) >> 12) & 0x0F)
  8273. #define   C_028C30_S9_Y                                               0xFFFF0FFF
  8274. #define   S_028C30_S10_X(x)                                           (((x) & 0x0F) << 16)
  8275. #define   G_028C30_S10_X(x)                                           (((x) >> 16) & 0x0F)
  8276. #define   C_028C30_S10_X                                              0xFFF0FFFF
  8277. #define   S_028C30_S10_Y(x)                                           (((x) & 0x0F) << 20)
  8278. #define   G_028C30_S10_Y(x)                                           (((x) >> 20) & 0x0F)
  8279. #define   C_028C30_S10_Y                                              0xFF0FFFFF
  8280. #define   S_028C30_S11_X(x)                                           (((x) & 0x0F) << 24)
  8281. #define   G_028C30_S11_X(x)                                           (((x) >> 24) & 0x0F)
  8282. #define   C_028C30_S11_X                                              0xF0FFFFFF
  8283. #define   S_028C30_S11_Y(x)                                           (((x) & 0x0F) << 28)
  8284. #define   G_028C30_S11_Y(x)                                           (((x) >> 28) & 0x0F)
  8285. #define   C_028C30_S11_Y                                              0x0FFFFFFF
  8286. #define R_028C34_PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3                      0x028C34
  8287. #define   S_028C34_S12_X(x)                                           (((x) & 0x0F) << 0)
  8288. #define   G_028C34_S12_X(x)                                           (((x) >> 0) & 0x0F)
  8289. #define   C_028C34_S12_X                                              0xFFFFFFF0
  8290. #define   S_028C34_S12_Y(x)                                           (((x) & 0x0F) << 4)
  8291. #define   G_028C34_S12_Y(x)                                           (((x) >> 4) & 0x0F)
  8292. #define   C_028C34_S12_Y                                              0xFFFFFF0F
  8293. #define   S_028C34_S13_X(x)                                           (((x) & 0x0F) << 8)
  8294. #define   G_028C34_S13_X(x)                                           (((x) >> 8) & 0x0F)
  8295. #define   C_028C34_S13_X                                              0xFFFFF0FF
  8296. #define   S_028C34_S13_Y(x)                                           (((x) & 0x0F) << 12)
  8297. #define   G_028C34_S13_Y(x)                                           (((x) >> 12) & 0x0F)
  8298. #define   C_028C34_S13_Y                                              0xFFFF0FFF
  8299. #define   S_028C34_S14_X(x)                                           (((x) & 0x0F) << 16)
  8300. #define   G_028C34_S14_X(x)                                           (((x) >> 16) & 0x0F)
  8301. #define   C_028C34_S14_X                                              0xFFF0FFFF
  8302. #define   S_028C34_S14_Y(x)                                           (((x) & 0x0F) << 20)
  8303. #define   G_028C34_S14_Y(x)                                           (((x) >> 20) & 0x0F)
  8304. #define   C_028C34_S14_Y                                              0xFF0FFFFF
  8305. #define   S_028C34_S15_X(x)                                           (((x) & 0x0F) << 24)
  8306. #define   G_028C34_S15_X(x)                                           (((x) >> 24) & 0x0F)
  8307. #define   C_028C34_S15_X                                              0xF0FFFFFF
  8308. #define   S_028C34_S15_Y(x)                                           (((x) & 0x0F) << 28)
  8309. #define   G_028C34_S15_Y(x)                                           (((x) >> 28) & 0x0F)
  8310. #define   C_028C34_S15_Y                                              0x0FFFFFFF
  8311. #define R_028C38_PA_SC_AA_MASK_X0Y0_X1Y0                                0x028C38
  8312. #define   S_028C38_AA_MASK_X0Y0(x)                                    (((x) & 0xFFFF) << 0)
  8313. #define   G_028C38_AA_MASK_X0Y0(x)                                    (((x) >> 0) & 0xFFFF)
  8314. #define   C_028C38_AA_MASK_X0Y0                                       0xFFFF0000
  8315. #define   S_028C38_AA_MASK_X1Y0(x)                                    (((x) & 0xFFFF) << 16)
  8316. #define   G_028C38_AA_MASK_X1Y0(x)                                    (((x) >> 16) & 0xFFFF)
  8317. #define   C_028C38_AA_MASK_X1Y0                                       0x0000FFFF
  8318. #define R_028C3C_PA_SC_AA_MASK_X0Y1_X1Y1                                0x028C3C
  8319. #define   S_028C3C_AA_MASK_X0Y1(x)                                    (((x) & 0xFFFF) << 0)
  8320. #define   G_028C3C_AA_MASK_X0Y1(x)                                    (((x) >> 0) & 0xFFFF)
  8321. #define   C_028C3C_AA_MASK_X0Y1                                       0xFFFF0000
  8322. #define   S_028C3C_AA_MASK_X1Y1(x)                                    (((x) & 0xFFFF) << 16)
  8323. #define   G_028C3C_AA_MASK_X1Y1(x)                                    (((x) >> 16) & 0xFFFF)
  8324. #define   C_028C3C_AA_MASK_X1Y1                                       0x0000FFFF
  8325. #define R_028C58_VGT_VERTEX_REUSE_BLOCK_CNTL                            0x028C58
  8326. #define   S_028C58_VTX_REUSE_DEPTH(x)                                 (((x) & 0xFF) << 0)
  8327. #define   G_028C58_VTX_REUSE_DEPTH(x)                                 (((x) >> 0) & 0xFF)
  8328. #define   C_028C58_VTX_REUSE_DEPTH                                    0xFFFFFF00
  8329. #define R_028C5C_VGT_OUT_DEALLOC_CNTL                                   0x028C5C
  8330. #define   S_028C5C_DEALLOC_DIST(x)                                    (((x) & 0x7F) << 0)
  8331. #define   G_028C5C_DEALLOC_DIST(x)                                    (((x) >> 0) & 0x7F)
  8332. #define   C_028C5C_DEALLOC_DIST                                       0xFFFFFF80
  8333. #define R_028C60_CB_COLOR0_BASE                                         0x028C60
  8334. #define R_028C64_CB_COLOR0_PITCH                                        0x028C64
  8335. #define   S_028C64_TILE_MAX(x)                                        (((x) & 0x7FF) << 0)
  8336. #define   G_028C64_TILE_MAX(x)                                        (((x) >> 0) & 0x7FF)
  8337. #define   C_028C64_TILE_MAX                                           0xFFFFF800
  8338. /* CIK */
  8339. #define   S_028C64_FMASK_TILE_MAX(x)                                  (((x) & 0x7FF) << 20)
  8340. #define   G_028C64_FMASK_TILE_MAX(x)                                  (((x) >> 20) & 0x7FF)
  8341. #define   C_028C64_FMASK_TILE_MAX                                     0x800FFFFF
  8342. /*     */
  8343. #define R_028C68_CB_COLOR0_SLICE                                        0x028C68
  8344. #define   S_028C68_TILE_MAX(x)                                        (((x) & 0x3FFFFF) << 0)
  8345. #define   G_028C68_TILE_MAX(x)                                        (((x) >> 0) & 0x3FFFFF)
  8346. #define   C_028C68_TILE_MAX                                           0xFFC00000
  8347. #define R_028C6C_CB_COLOR0_VIEW                                         0x028C6C
  8348. #define   S_028C6C_SLICE_START(x)                                     (((x) & 0x7FF) << 0)
  8349. #define   G_028C6C_SLICE_START(x)                                     (((x) >> 0) & 0x7FF)
  8350. #define   C_028C6C_SLICE_START                                        0xFFFFF800
  8351. #define   S_028C6C_SLICE_MAX(x)                                       (((x) & 0x7FF) << 13)
  8352. #define   G_028C6C_SLICE_MAX(x)                                       (((x) >> 13) & 0x7FF)
  8353. #define   C_028C6C_SLICE_MAX                                          0xFF001FFF
  8354. #define R_028C70_CB_COLOR0_INFO                                         0x028C70
  8355. #define   S_028C70_ENDIAN(x)                                          (((x) & 0x03) << 0)
  8356. #define   G_028C70_ENDIAN(x)                                          (((x) >> 0) & 0x03)
  8357. #define   C_028C70_ENDIAN                                             0xFFFFFFFC
  8358. #define     V_028C70_ENDIAN_NONE                                    0x00
  8359. #define     V_028C70_ENDIAN_8IN16                                   0x01
  8360. #define     V_028C70_ENDIAN_8IN32                                   0x02
  8361. #define     V_028C70_ENDIAN_8IN64                                   0x03
  8362. #define   S_028C70_FORMAT(x)                                          (((x) & 0x1F) << 2)
  8363. #define   G_028C70_FORMAT(x)                                          (((x) >> 2) & 0x1F)
  8364. #define   C_028C70_FORMAT                                             0xFFFFFF83
  8365. #define     V_028C70_COLOR_INVALID                                  0x00
  8366. #define     V_028C70_COLOR_8                                        0x01
  8367. #define     V_028C70_COLOR_16                                       0x02
  8368. #define     V_028C70_COLOR_8_8                                      0x03
  8369. #define     V_028C70_COLOR_32                                       0x04
  8370. #define     V_028C70_COLOR_16_16                                    0x05
  8371. #define     V_028C70_COLOR_10_11_11                                 0x06
  8372. #define     V_028C70_COLOR_11_11_10                                 0x07
  8373. #define     V_028C70_COLOR_10_10_10_2                               0x08
  8374. #define     V_028C70_COLOR_2_10_10_10                               0x09
  8375. #define     V_028C70_COLOR_8_8_8_8                                  0x0A
  8376. #define     V_028C70_COLOR_32_32                                    0x0B
  8377. #define     V_028C70_COLOR_16_16_16_16                              0x0C
  8378. #define     V_028C70_COLOR_32_32_32_32                              0x0E
  8379. #define     V_028C70_COLOR_5_6_5                                    0x10
  8380. #define     V_028C70_COLOR_1_5_5_5                                  0x11
  8381. #define     V_028C70_COLOR_5_5_5_1                                  0x12
  8382. #define     V_028C70_COLOR_4_4_4_4                                  0x13
  8383. #define     V_028C70_COLOR_8_24                                     0x14
  8384. #define     V_028C70_COLOR_24_8                                     0x15
  8385. #define     V_028C70_COLOR_X24_8_32_FLOAT                           0x16
  8386. #define   S_028C70_LINEAR_GENERAL(x)                                  (((x) & 0x1) << 7)
  8387. #define   G_028C70_LINEAR_GENERAL(x)                                  (((x) >> 7) & 0x1)
  8388. #define   C_028C70_LINEAR_GENERAL                                     0xFFFFFF7F
  8389. #define   S_028C70_NUMBER_TYPE(x)                                     (((x) & 0x07) << 8)
  8390. #define   G_028C70_NUMBER_TYPE(x)                                     (((x) >> 8) & 0x07)
  8391. #define   C_028C70_NUMBER_TYPE                                        0xFFFFF8FF
  8392. #define     V_028C70_NUMBER_UNORM                                   0x00
  8393. #define     V_028C70_NUMBER_SNORM                                   0x01
  8394. #define     V_028C70_NUMBER_UINT                                    0x04
  8395. #define     V_028C70_NUMBER_SINT                                    0x05
  8396. #define     V_028C70_NUMBER_SRGB                                    0x06
  8397. #define     V_028C70_NUMBER_FLOAT                                   0x07
  8398. #define   S_028C70_COMP_SWAP(x)                                       (((x) & 0x03) << 11)
  8399. #define   G_028C70_COMP_SWAP(x)                                       (((x) >> 11) & 0x03)
  8400. #define   C_028C70_COMP_SWAP                                          0xFFFFE7FF
  8401. #define     V_028C70_SWAP_STD                                       0x00
  8402. #define     V_028C70_SWAP_ALT                                       0x01
  8403. #define     V_028C70_SWAP_STD_REV                                   0x02
  8404. #define     V_028C70_SWAP_ALT_REV                                   0x03
  8405. #define   S_028C70_FAST_CLEAR(x)                                      (((x) & 0x1) << 13)
  8406. #define   G_028C70_FAST_CLEAR(x)                                      (((x) >> 13) & 0x1)
  8407. #define   C_028C70_FAST_CLEAR                                         0xFFFFDFFF
  8408. #define   S_028C70_COMPRESSION(x)                                     (((x) & 0x1) << 14)
  8409. #define   G_028C70_COMPRESSION(x)                                     (((x) >> 14) & 0x1)
  8410. #define   C_028C70_COMPRESSION                                        0xFFFFBFFF
  8411. #define   S_028C70_BLEND_CLAMP(x)                                     (((x) & 0x1) << 15)
  8412. #define   G_028C70_BLEND_CLAMP(x)                                     (((x) >> 15) & 0x1)
  8413. #define   C_028C70_BLEND_CLAMP                                        0xFFFF7FFF
  8414. #define   S_028C70_BLEND_BYPASS(x)                                    (((x) & 0x1) << 16)
  8415. #define   G_028C70_BLEND_BYPASS(x)                                    (((x) >> 16) & 0x1)
  8416. #define   C_028C70_BLEND_BYPASS                                       0xFFFEFFFF
  8417. #define   S_028C70_SIMPLE_FLOAT(x)                                    (((x) & 0x1) << 17)
  8418. #define   G_028C70_SIMPLE_FLOAT(x)                                    (((x) >> 17) & 0x1)
  8419. #define   C_028C70_SIMPLE_FLOAT                                       0xFFFDFFFF
  8420. #define   S_028C70_ROUND_MODE(x)                                      (((x) & 0x1) << 18)
  8421. #define   G_028C70_ROUND_MODE(x)                                      (((x) >> 18) & 0x1)
  8422. #define   C_028C70_ROUND_MODE                                         0xFFFBFFFF
  8423. #define   S_028C70_CMASK_IS_LINEAR(x)                                 (((x) & 0x1) << 19)
  8424. #define   G_028C70_CMASK_IS_LINEAR(x)                                 (((x) >> 19) & 0x1)
  8425. #define   C_028C70_CMASK_IS_LINEAR                                    0xFFF7FFFF
  8426. #define   S_028C70_BLEND_OPT_DONT_RD_DST(x)                           (((x) & 0x07) << 20)
  8427. #define   G_028C70_BLEND_OPT_DONT_RD_DST(x)                           (((x) >> 20) & 0x07)
  8428. #define   C_028C70_BLEND_OPT_DONT_RD_DST                              0xFF8FFFFF
  8429. #define     V_028C70_FORCE_OPT_AUTO                                 0x00
  8430. #define     V_028C70_FORCE_OPT_DISABLE                              0x01
  8431. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_A_0                    0x02
  8432. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_RGB_0                  0x03
  8433. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_ARGB_0                 0x04
  8434. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_A_1                    0x05
  8435. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_RGB_1                  0x06
  8436. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_ARGB_1                 0x07
  8437. #define   S_028C70_BLEND_OPT_DISCARD_PIXEL(x)                         (((x) & 0x07) << 23)
  8438. #define   G_028C70_BLEND_OPT_DISCARD_PIXEL(x)                         (((x) >> 23) & 0x07)
  8439. #define   C_028C70_BLEND_OPT_DISCARD_PIXEL                            0xFC7FFFFF
  8440. #define     V_028C70_FORCE_OPT_AUTO                                 0x00
  8441. #define     V_028C70_FORCE_OPT_DISABLE                              0x01
  8442. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_A_0                    0x02
  8443. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_RGB_0                  0x03
  8444. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_ARGB_0                 0x04
  8445. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_A_1                    0x05
  8446. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_RGB_1                  0x06
  8447. #define     V_028C70_FORCE_OPT_ENABLE_IF_SRC_ARGB_1                 0x07
  8448. /* CIK */
  8449. #define   S_028C70_FMASK_COMPRESSION_DISABLE(x)                       (((x) & 0x1) << 26)
  8450. #define   G_028C70_FMASK_COMPRESSION_DISABLE(x)                       (((x) >> 26) & 0x1)
  8451. #define   C_028C70_FMASK_COMPRESSION_DISABLE                          0xFBFFFFFF
  8452. /*     */
  8453. #define R_028C74_CB_COLOR0_ATTRIB                                       0x028C74
  8454. #define   S_028C74_TILE_MODE_INDEX(x)                                 (((x) & 0x1F) << 0)
  8455. #define   G_028C74_TILE_MODE_INDEX(x)                                 (((x) >> 0) & 0x1F)
  8456. #define   C_028C74_TILE_MODE_INDEX                                    0xFFFFFFE0
  8457. #define   S_028C74_FMASK_TILE_MODE_INDEX(x)                           (((x) & 0x1F) << 5)
  8458. #define   G_028C74_FMASK_TILE_MODE_INDEX(x)                           (((x) >> 5) & 0x1F)
  8459. #define   C_028C74_FMASK_TILE_MODE_INDEX                              0xFFFFFC1F
  8460. #define   S_028C74_NUM_SAMPLES(x)                                     (((x) & 0x07) << 12)
  8461. #define   G_028C74_NUM_SAMPLES(x)                                     (((x) >> 12) & 0x07)
  8462. #define   C_028C74_NUM_SAMPLES                                        0xFFFF8FFF
  8463. #define   S_028C74_NUM_FRAGMENTS(x)                                   (((x) & 0x03) << 15)
  8464. #define   G_028C74_NUM_FRAGMENTS(x)                                   (((x) >> 15) & 0x03)
  8465. #define   C_028C74_NUM_FRAGMENTS                                      0xFFFE7FFF
  8466. #define   S_028C74_FORCE_DST_ALPHA_1(x)                               (((x) & 0x1) << 17)
  8467. #define   G_028C74_FORCE_DST_ALPHA_1(x)                               (((x) >> 17) & 0x1)
  8468. #define   C_028C74_FORCE_DST_ALPHA_1                                  0xFFFDFFFF
  8469. #define R_028C7C_CB_COLOR0_CMASK                                        0x028C7C
  8470. #define R_028C80_CB_COLOR0_CMASK_SLICE                                  0x028C80
  8471. #define   S_028C80_TILE_MAX(x)                                        (((x) & 0x3FFF) << 0)
  8472. #define   G_028C80_TILE_MAX(x)                                        (((x) >> 0) & 0x3FFF)
  8473. #define   C_028C80_TILE_MAX                                           0xFFFFC000
  8474. #define R_028C84_CB_COLOR0_FMASK                                        0x028C84
  8475. #define R_028C88_CB_COLOR0_FMASK_SLICE                                  0x028C88
  8476. #define   S_028C88_TILE_MAX(x)                                        (((x) & 0x3FFFFF) << 0)
  8477. #define   G_028C88_TILE_MAX(x)                                        (((x) >> 0) & 0x3FFFFF)
  8478. #define   C_028C88_TILE_MAX                                           0xFFC00000
  8479. #define R_028C8C_CB_COLOR0_CLEAR_WORD0                                  0x028C8C
  8480. #define R_028C90_CB_COLOR0_CLEAR_WORD1                                  0x028C90
  8481. #define R_028C9C_CB_COLOR1_BASE                                         0x028C9C
  8482. #define R_028CA0_CB_COLOR1_PITCH                                        0x028CA0
  8483. #define R_028CA4_CB_COLOR1_SLICE                                        0x028CA4
  8484. #define R_028CA8_CB_COLOR1_VIEW                                         0x028CA8
  8485. #define R_028CAC_CB_COLOR1_INFO                                         0x028CAC
  8486. #define R_028CB0_CB_COLOR1_ATTRIB                                       0x028CB0
  8487. #define R_028CD4_CB_COLOR1_CMASK                                        0x028CB8
  8488. #define R_028CBC_CB_COLOR1_CMASK_SLICE                                  0x028CBC
  8489. #define R_028CC0_CB_COLOR1_FMASK                                        0x028CC0
  8490. #define R_028CC4_CB_COLOR1_FMASK_SLICE                                  0x028CC4
  8491. #define R_028CC8_CB_COLOR1_CLEAR_WORD0                                  0x028CC8
  8492. #define R_028CCC_CB_COLOR1_CLEAR_WORD1                                  0x028CCC
  8493. #define R_028CD8_CB_COLOR2_BASE                                         0x028CD8
  8494. #define R_028CDC_CB_COLOR2_PITCH                                        0x028CDC
  8495. #define R_028CE0_CB_COLOR2_SLICE                                        0x028CE0
  8496. #define R_028CE4_CB_COLOR2_VIEW                                         0x028CE4
  8497. #define R_028CE8_CB_COLOR2_INFO                                         0x028CE8
  8498. #define R_028CEC_CB_COLOR2_ATTRIB                                       0x028CEC
  8499. #define R_028CF4_CB_COLOR2_CMASK                                        0x028CF4
  8500. #define R_028CF8_CB_COLOR2_CMASK_SLICE                                  0x028CF8
  8501. #define R_028CFC_CB_COLOR2_FMASK                                        0x028CFC
  8502. #define R_028D00_CB_COLOR2_FMASK_SLICE                                  0x028D00
  8503. #define R_028D04_CB_COLOR2_CLEAR_WORD0                                  0x028D04
  8504. #define R_028D08_CB_COLOR2_CLEAR_WORD1                                  0x028D08
  8505. #define R_028D14_CB_COLOR3_BASE                                         0x028D14
  8506. #define R_028D18_CB_COLOR3_PITCH                                        0x028D18
  8507. #define R_028D1C_CB_COLOR3_SLICE                                        0x028D1C
  8508. #define R_028D20_CB_COLOR3_VIEW                                         0x028D20
  8509. #define R_028D24_CB_COLOR3_INFO                                         0x028D24
  8510. #define R_028D28_CB_COLOR3_ATTRIB                                       0x028D28
  8511. #define R_028D30_CB_COLOR3_CMASK                                        0x028D30
  8512. #define R_028D34_CB_COLOR3_CMASK_SLICE                                  0x028D34
  8513. #define R_028D38_CB_COLOR3_FMASK                                        0x028D38
  8514. #define R_028D3C_CB_COLOR3_FMASK_SLICE                                  0x028D3C
  8515. #define R_028D40_CB_COLOR3_CLEAR_WORD0                                  0x028D40
  8516. #define R_028D44_CB_COLOR3_CLEAR_WORD1                                  0x028D44
  8517. #define R_028D50_CB_COLOR4_BASE                                         0x028D50
  8518. #define R_028D54_CB_COLOR4_PITCH                                        0x028D54
  8519. #define R_028D58_CB_COLOR4_SLICE                                        0x028D58
  8520. #define R_028D5C_CB_COLOR4_VIEW                                         0x028D5C
  8521. #define R_028D60_CB_COLOR4_INFO                                         0x028D60
  8522. #define R_028D64_CB_COLOR4_ATTRIB                                       0x028D64
  8523. #define R_028D6C_CB_COLOR4_CMASK                                        0x028D6C
  8524. #define R_028D70_CB_COLOR4_CMASK_SLICE                                  0x028D70
  8525. #define R_028D74_CB_COLOR4_FMASK                                        0x028D74
  8526. #define R_028D78_CB_COLOR4_FMASK_SLICE                                  0x028D78
  8527. #define R_028D7C_CB_COLOR4_CLEAR_WORD0                                  0x028D7C
  8528. #define R_028D80_CB_COLOR4_CLEAR_WORD1                                  0x028D80
  8529. #define R_028D8C_CB_COLOR5_BASE                                         0x028D8C
  8530. #define R_028D90_CB_COLOR5_PITCH                                        0x028D90
  8531. #define R_028D94_CB_COLOR5_SLICE                                        0x028D94
  8532. #define R_028D98_CB_COLOR5_VIEW                                         0x028D98
  8533. #define R_028D9C_CB_COLOR5_INFO                                         0x028D9C
  8534. #define R_028DA0_CB_COLOR5_ATTRIB                                       0x028DA0
  8535. #define R_028DA8_CB_COLOR5_CMASK                                        0x028DA8
  8536. #define R_028DAC_CB_COLOR5_CMASK_SLICE                                  0x028DAC
  8537. #define R_028DB0_CB_COLOR5_FMASK                                        0x028DB0
  8538. #define R_028DB4_CB_COLOR5_FMASK_SLICE                                  0x028DB4
  8539. #define R_028DB8_CB_COLOR5_CLEAR_WORD0                                  0x028DB8
  8540. #define R_028DBC_CB_COLOR5_CLEAR_WORD1                                  0x028DBC
  8541. #define R_028DC8_CB_COLOR6_BASE                                         0x028DC8
  8542. #define R_028DCC_CB_COLOR6_PITCH                                        0x028DCC
  8543. #define R_028DD0_CB_COLOR6_SLICE                                        0x028DD0
  8544. #define R_028DD4_CB_COLOR6_VIEW                                         0x028DD4
  8545. #define R_028DD8_CB_COLOR6_INFO                                         0x028DD8
  8546. #define R_028DDC_CB_COLOR6_ATTRIB                                       0x028DDC
  8547. #define R_028DE4_CB_COLOR6_CMASK                                        0x028DE4
  8548. #define R_028DE8_CB_COLOR6_CMASK_SLICE                                  0x028DE8
  8549. #define R_028DEC_CB_COLOR6_FMASK                                        0x028DEC
  8550. #define R_028DF0_CB_COLOR6_FMASK_SLICE                                  0x028DF0
  8551. #define R_028DF4_CB_COLOR6_CLEAR_WORD0                                  0x028DF4
  8552. #define R_028DF8_CB_COLOR6_CLEAR_WORD1                                  0x028DF8
  8553. #define R_028E04_CB_COLOR7_BASE                                         0x028E04
  8554. #define R_028E08_CB_COLOR7_PITCH                                        0x028E08
  8555. #define R_028E0C_CB_COLOR7_SLICE                                        0x028E0C
  8556. #define R_028E10_CB_COLOR7_VIEW                                         0x028E10
  8557. #define R_028E14_CB_COLOR7_INFO                                         0x028E14
  8558. #define R_028E18_CB_COLOR7_ATTRIB                                       0x028E18
  8559. #define R_028E20_CB_COLOR7_CMASK                                        0x028E20
  8560. #define R_028E24_CB_COLOR7_CMASK_SLICE                                  0x028E24
  8561. #define R_028E28_CB_COLOR7_FMASK                                        0x028E28
  8562. #define R_028E2C_CB_COLOR7_FMASK_SLICE                                  0x028E2C
  8563. #define R_028E30_CB_COLOR7_CLEAR_WORD0                                  0x028E30
  8564. #define R_028E34_CB_COLOR7_CLEAR_WORD1                                  0x028E34
  8565.  
  8566. #endif /* _SID_H */
  8567.  
  8568.