Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. #ifndef GEN_EU_ISA_XML
  2. #define GEN_EU_ISA_XML
  3.  
  4. /* Autogenerated file, DO NOT EDIT manually!
  5.  
  6. This file was generated by the rules-ng-ng headergen tool in this git repository:
  7. https://github.com/olvaffe/envytools/
  8. git clone https://github.com/olvaffe/envytools.git
  9.  
  10. Copyright (C) 2014-2015 by the following authors:
  11. - Chia-I Wu <olvaffe@gmail.com> (olv)
  12.  
  13. Permission is hereby granted, free of charge, to any person obtaining
  14. a copy of this software and associated documentation files (the
  15. "Software"), to deal in the Software without restriction, including
  16. without limitation the rights to use, copy, modify, merge, publish,
  17. distribute, sublicense, and/or sell copies of the Software, and to
  18. permit persons to whom the Software is furnished to do so, subject to
  19. the following conditions:
  20.  
  21. The above copyright notice and this permission notice (including the
  22. next paragraph) shall be included in all copies or substantial
  23. portions of the Software.
  24.  
  25. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  26. EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  27. MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  28. IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
  29. LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  30. OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  31. WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  32. */
  33.  
  34.  
  35. enum gen_eu_opcode {
  36.     GEN6_OPCODE_ILLEGAL                                       = 0x0,
  37.     GEN6_OPCODE_MOV                                           = 0x1,
  38.     GEN6_OPCODE_SEL                                           = 0x2,
  39.     GEN6_OPCODE_MOVI                                          = 0x3,
  40.     GEN6_OPCODE_NOT                                           = 0x4,
  41.     GEN6_OPCODE_AND                                           = 0x5,
  42.     GEN6_OPCODE_OR                                            = 0x6,
  43.     GEN6_OPCODE_XOR                                           = 0x7,
  44.     GEN6_OPCODE_SHR                                           = 0x8,
  45.     GEN6_OPCODE_SHL                                           = 0x9,
  46.     GEN6_OPCODE_DIM                                           = 0xa,
  47.     GEN6_OPCODE_ASR                                           = 0xc,
  48.     GEN6_OPCODE_CMP                                           = 0x10,
  49.     GEN6_OPCODE_CMPN                                          = 0x11,
  50.     GEN7_OPCODE_CSEL                                          = 0x12,
  51.     GEN7_OPCODE_F32TO16                                       = 0x13,
  52.     GEN7_OPCODE_F16TO32                                       = 0x14,
  53.     GEN7_OPCODE_BFREV                                         = 0x17,
  54.     GEN7_OPCODE_BFE                                           = 0x18,
  55.     GEN7_OPCODE_BFI1                                          = 0x19,
  56.     GEN7_OPCODE_BFI2                                          = 0x1a,
  57.     GEN6_OPCODE_JMPI                                          = 0x20,
  58.     GEN7_OPCODE_BRD                                           = 0x21,
  59.     GEN6_OPCODE_IF                                            = 0x22,
  60.     GEN7_OPCODE_BRC                                           = 0x23,
  61.     GEN6_OPCODE_ELSE                                          = 0x24,
  62.     GEN6_OPCODE_ENDIF                                         = 0x25,
  63.     GEN6_OPCODE_CASE                                          = 0x26,
  64.     GEN6_OPCODE_WHILE                                         = 0x27,
  65.     GEN6_OPCODE_BREAK                                         = 0x28,
  66.     GEN6_OPCODE_CONT                                          = 0x29,
  67.     GEN6_OPCODE_HALT                                          = 0x2a,
  68.     GEN75_OPCODE_CALLA                                        = 0x2b,
  69.     GEN6_OPCODE_CALL                                          = 0x2c,
  70.     GEN6_OPCODE_RETURN                                        = 0x2d,
  71.     GEN8_OPCODE_GOTO                                          = 0x2e,
  72.     GEN6_OPCODE_WAIT                                          = 0x30,
  73.     GEN6_OPCODE_SEND                                          = 0x31,
  74.     GEN6_OPCODE_SENDC                                         = 0x32,
  75.     GEN6_OPCODE_MATH                                          = 0x38,
  76.     GEN6_OPCODE_ADD                                           = 0x40,
  77.     GEN6_OPCODE_MUL                                           = 0x41,
  78.     GEN6_OPCODE_AVG                                           = 0x42,
  79.     GEN6_OPCODE_FRC                                           = 0x43,
  80.     GEN6_OPCODE_RNDU                                          = 0x44,
  81.     GEN6_OPCODE_RNDD                                          = 0x45,
  82.     GEN6_OPCODE_RNDE                                          = 0x46,
  83.     GEN6_OPCODE_RNDZ                                          = 0x47,
  84.     GEN6_OPCODE_MAC                                           = 0x48,
  85.     GEN6_OPCODE_MACH                                          = 0x49,
  86.     GEN6_OPCODE_LZD                                           = 0x4a,
  87.     GEN7_OPCODE_FBH                                           = 0x4b,
  88.     GEN7_OPCODE_FBL                                           = 0x4c,
  89.     GEN7_OPCODE_CBIT                                          = 0x4d,
  90.     GEN7_OPCODE_ADDC                                          = 0x4e,
  91.     GEN7_OPCODE_SUBB                                          = 0x4f,
  92.     GEN6_OPCODE_SAD2                                          = 0x50,
  93.     GEN6_OPCODE_SADA2                                         = 0x51,
  94.     GEN6_OPCODE_DP4                                           = 0x54,
  95.     GEN6_OPCODE_DPH                                           = 0x55,
  96.     GEN6_OPCODE_DP3                                           = 0x56,
  97.     GEN6_OPCODE_DP2                                           = 0x57,
  98.     GEN6_OPCODE_LINE                                          = 0x59,
  99.     GEN6_OPCODE_PLN                                           = 0x5a,
  100.     GEN6_OPCODE_MAD                                           = 0x5b,
  101.     GEN6_OPCODE_LRP                                           = 0x5c,
  102.     GEN6_OPCODE_NOP                                           = 0x7e,
  103. };
  104.  
  105. enum gen_eu_access_mode {
  106.     GEN6_ALIGN_1                                              = 0x0,
  107.     GEN6_ALIGN_16                                             = 0x1,
  108. };
  109.  
  110. enum gen_eu_mask_control {
  111.     GEN6_MASKCTRL_NORMAL                                      = 0x0,
  112.     GEN6_MASKCTRL_NOMASK                                      = 0x1,
  113. };
  114.  
  115. enum gen_eu_dependency_control {
  116.     GEN6_DEPCTRL_NORMAL                                       = 0x0,
  117.     GEN6_DEPCTRL_NODDCLR                                      = 0x1,
  118.     GEN6_DEPCTRL_NODDCHK                                      = 0x2,
  119.     GEN6_DEPCTRL_NEITHER                                      = 0x3,
  120. };
  121.  
  122. enum gen_eu_quarter_control {
  123.     GEN6_QTRCTRL_1Q                                           = 0x0,
  124.     GEN6_QTRCTRL_2Q                                           = 0x1,
  125.     GEN6_QTRCTRL_3Q                                           = 0x2,
  126.     GEN6_QTRCTRL_4Q                                           = 0x3,
  127.     GEN6_QTRCTRL_1H                                           = 0x0,
  128.     GEN6_QTRCTRL_2H                                           = 0x2,
  129. };
  130.  
  131. enum gen_eu_thread_control {
  132.     GEN6_THREADCTRL_NORMAL                                    = 0x0,
  133.     GEN6_THREADCTRL_ATOMIC                                    = 0x1,
  134.     GEN6_THREADCTRL_SWITCH                                    = 0x2,
  135. };
  136.  
  137. enum gen_eu_predicate_control {
  138.     GEN6_PREDCTRL_NONE                                        = 0x0,
  139.     GEN6_PREDCTRL_NORMAL                                      = 0x1,
  140.     GEN6_PREDCTRL_ANYV                                        = 0x2,
  141.     GEN6_PREDCTRL_ALLV                                        = 0x3,
  142.     GEN6_PREDCTRL_ANY2H                                       = 0x4,
  143.     GEN6_PREDCTRL_ALL2H                                       = 0x5,
  144.     GEN6_PREDCTRL_X                                           = 0x2,
  145.     GEN6_PREDCTRL_Y                                           = 0x3,
  146.     GEN6_PREDCTRL_Z                                           = 0x4,
  147.     GEN6_PREDCTRL_W                                           = 0x5,
  148.     GEN6_PREDCTRL_ANY4H                                       = 0x6,
  149.     GEN6_PREDCTRL_ALL4H                                       = 0x7,
  150.     GEN6_PREDCTRL_ANY8H                                       = 0x8,
  151.     GEN6_PREDCTRL_ALL8H                                       = 0x9,
  152.     GEN6_PREDCTRL_ANY16H                                      = 0xa,
  153.     GEN6_PREDCTRL_ALL16H                                      = 0xb,
  154.     GEN7_PREDCTRL_ANY32H                                      = 0xc,
  155.     GEN7_PREDCTRL_ALL32H                                      = 0xd,
  156. };
  157.  
  158. enum gen_eu_exec_size {
  159.     GEN6_EXECSIZE_1                                           = 0x0,
  160.     GEN6_EXECSIZE_2                                           = 0x1,
  161.     GEN6_EXECSIZE_4                                           = 0x2,
  162.     GEN6_EXECSIZE_8                                           = 0x3,
  163.     GEN6_EXECSIZE_16                                          = 0x4,
  164.     GEN6_EXECSIZE_32                                          = 0x5,
  165. };
  166.  
  167. enum gen_eu_condition_modifier {
  168.     GEN6_COND_NONE                                            = 0x0,
  169.     GEN6_COND_Z                                               = 0x1,
  170.     GEN6_COND_NZ                                              = 0x2,
  171.     GEN6_COND_G                                               = 0x3,
  172.     GEN6_COND_GE                                              = 0x4,
  173.     GEN6_COND_L                                               = 0x5,
  174.     GEN6_COND_LE                                              = 0x6,
  175.     GEN6_COND_O                                               = 0x8,
  176.     GEN6_COND_U                                               = 0x9,
  177. };
  178.  
  179. enum gen_eu_math_function_control {
  180.     GEN6_MATH_INV                                             = 0x1,
  181.     GEN6_MATH_LOG                                             = 0x2,
  182.     GEN6_MATH_EXP                                             = 0x3,
  183.     GEN6_MATH_SQRT                                            = 0x4,
  184.     GEN6_MATH_RSQ                                             = 0x5,
  185.     GEN6_MATH_SIN                                             = 0x6,
  186.     GEN6_MATH_COS                                             = 0x7,
  187.     GEN6_MATH_FDIV                                            = 0x9,
  188.     GEN6_MATH_POW                                             = 0xa,
  189.     GEN6_MATH_INT_DIV                                         = 0xb,
  190.     GEN6_MATH_INT_DIV_QUOTIENT                                = 0xc,
  191.     GEN6_MATH_INT_DIV_REMAINDER                               = 0xd,
  192.     GEN8_MATH_INVM                                            = 0xe,
  193.     GEN8_MATH_RSQRTM                                          = 0xf,
  194. };
  195.  
  196. enum gen_eu_shared_function_id {
  197.     GEN6_SFID_NULL                                            = 0x0,
  198.     GEN6_SFID_SAMPLER                                         = 0x2,
  199.     GEN6_SFID_GATEWAY                                         = 0x3,
  200.     GEN6_SFID_DP_SAMPLER                                      = 0x4,
  201.     GEN6_SFID_DP_RC                                           = 0x5,
  202.     GEN6_SFID_URB                                             = 0x6,
  203.     GEN6_SFID_SPAWNER                                         = 0x7,
  204.     GEN6_SFID_VME                                             = 0x8,
  205.     GEN6_SFID_DP_CC                                           = 0x9,
  206.     GEN7_SFID_DP_DC0                                          = 0xa,
  207.     GEN7_SFID_PI                                              = 0xb,
  208.     GEN75_SFID_DP_DC1                                         = 0xc,
  209. };
  210.  
  211. enum gen_eu_reg_file {
  212.     GEN6_FILE_ARF                                             = 0x0,
  213.     GEN6_FILE_GRF                                             = 0x1,
  214.     GEN6_FILE_MRF                                             = 0x2,
  215.     GEN6_FILE_IMM                                             = 0x3,
  216. };
  217.  
  218. enum gen_eu_reg_type {
  219.     GEN6_TYPE_UD                                              = 0x0,
  220.     GEN6_TYPE_D                                               = 0x1,
  221.     GEN6_TYPE_UW                                              = 0x2,
  222.     GEN6_TYPE_W                                               = 0x3,
  223.     GEN6_TYPE_UB                                              = 0x4,
  224.     GEN6_TYPE_B                                               = 0x5,
  225.     GEN7_TYPE_DF                                              = 0x6,
  226.     GEN6_TYPE_F                                               = 0x7,
  227.     GEN8_TYPE_UQ                                              = 0x8,
  228.     GEN8_TYPE_Q                                               = 0x9,
  229.     GEN8_TYPE_HF                                              = 0xa,
  230.     GEN6_TYPE_UV_IMM                                          = 0x4,
  231.     GEN6_TYPE_VF_IMM                                          = 0x5,
  232.     GEN6_TYPE_V_IMM                                           = 0x6,
  233.     GEN8_TYPE_DF_IMM                                          = 0xa,
  234.     GEN8_TYPE_HF_IMM                                          = 0xb,
  235.     GEN7_TYPE_F_3SRC                                          = 0x0,
  236.     GEN7_TYPE_D_3SRC                                          = 0x1,
  237.     GEN7_TYPE_UD_3SRC                                         = 0x2,
  238.     GEN7_TYPE_DF_3SRC                                         = 0x3,
  239. };
  240.  
  241. enum gen_eu_vertical_stride {
  242.     GEN6_VERTSTRIDE_0                                         = 0x0,
  243.     GEN6_VERTSTRIDE_1                                         = 0x1,
  244.     GEN6_VERTSTRIDE_2                                         = 0x2,
  245.     GEN6_VERTSTRIDE_4                                         = 0x3,
  246.     GEN6_VERTSTRIDE_8                                         = 0x4,
  247.     GEN6_VERTSTRIDE_16                                        = 0x5,
  248.     GEN6_VERTSTRIDE_32                                        = 0x6,
  249.     GEN6_VERTSTRIDE_VXH                                       = 0xf,
  250. };
  251.  
  252. enum gen_eu_width {
  253.     GEN6_WIDTH_1                                              = 0x0,
  254.     GEN6_WIDTH_2                                              = 0x1,
  255.     GEN6_WIDTH_4                                              = 0x2,
  256.     GEN6_WIDTH_8                                              = 0x3,
  257.     GEN6_WIDTH_16                                             = 0x4,
  258. };
  259.  
  260. enum gen_eu_horizontal_stride {
  261.     GEN6_HORZSTRIDE_0                                         = 0x0,
  262.     GEN6_HORZSTRIDE_1                                         = 0x1,
  263.     GEN6_HORZSTRIDE_2                                         = 0x2,
  264.     GEN6_HORZSTRIDE_4                                         = 0x3,
  265. };
  266.  
  267. enum gen_eu_addressing_mode {
  268.     GEN6_ADDRMODE_DIRECT                                      = 0x0,
  269.     GEN6_ADDRMODE_INDIRECT                                    = 0x1,
  270. };
  271.  
  272. enum gen_eu_swizzle {
  273.     GEN6_SWIZZLE_X                                            = 0x0,
  274.     GEN6_SWIZZLE_Y                                            = 0x1,
  275.     GEN6_SWIZZLE_Z                                            = 0x2,
  276.     GEN6_SWIZZLE_W                                            = 0x3,
  277. };
  278.  
  279. enum gen_eu_arf_reg {
  280.     GEN6_ARF_NULL                                             = 0x0,
  281.     GEN6_ARF_A0                                               = 0x10,
  282.     GEN6_ARF_ACC0                                             = 0x20,
  283.     GEN6_ARF_F0                                               = 0x30,
  284.     GEN6_ARF_SR0                                              = 0x70,
  285.     GEN6_ARF_CR0                                              = 0x80,
  286.     GEN6_ARF_N0                                               = 0x90,
  287.     GEN6_ARF_IP                                               = 0xa0,
  288.     GEN6_ARF_TDR                                              = 0xb0,
  289.     GEN7_ARF_TM0                                              = 0xc0,
  290. };
  291.  
  292. #define GEN6_INST_SATURATE                                      (0x1 << 31)
  293. #define GEN6_INST_DEBUGCTRL                                     (0x1 << 30)
  294. #define GEN6_INST_CMPTCTRL                                      (0x1 << 29)
  295. #define GEN8_INST_BRANCHCTRL                                    (0x1 << 28)
  296. #define GEN6_INST_ACCWRCTRL                                     (0x1 << 28)
  297. #define GEN6_INST_CONDMODIFIER__MASK                            0x0f000000
  298. #define GEN6_INST_CONDMODIFIER__SHIFT                           24
  299. #define GEN6_INST_SFID__MASK                                    0x0f000000
  300. #define GEN6_INST_SFID__SHIFT                                   24
  301. #define GEN6_INST_FC__MASK                                      0x0f000000
  302. #define GEN6_INST_FC__SHIFT                                     24
  303. #define GEN6_INST_EXECSIZE__MASK                                0x00e00000
  304. #define GEN6_INST_EXECSIZE__SHIFT                               21
  305. #define GEN6_INST_PREDINV                                       (0x1 << 20)
  306. #define GEN6_INST_PREDCTRL__MASK                                0x000f0000
  307. #define GEN6_INST_PREDCTRL__SHIFT                               16
  308. #define GEN6_INST_THREADCTRL__MASK                              0x0000c000
  309. #define GEN6_INST_THREADCTRL__SHIFT                             14
  310. #define GEN6_INST_QTRCTRL__MASK                                 0x00003000
  311. #define GEN6_INST_QTRCTRL__SHIFT                                12
  312. #define GEN6_INST_DEPCTRL__MASK                                 0x00000c00
  313. #define GEN6_INST_DEPCTRL__SHIFT                                10
  314. #define GEN6_INST_MASKCTRL__MASK                                0x00000200
  315. #define GEN6_INST_MASKCTRL__SHIFT                               9
  316. #define GEN8_INST_NIBCTRL                                       (0x1 << 11)
  317. #define GEN8_INST_DEPCTRL__MASK                                 0x00000600
  318. #define GEN8_INST_DEPCTRL__SHIFT                                9
  319. #define GEN6_INST_ACCESSMODE__MASK                              0x00000100
  320. #define GEN6_INST_ACCESSMODE__SHIFT                             8
  321. #define GEN6_INST_OPCODE__MASK                                  0x0000007f
  322. #define GEN6_INST_OPCODE__SHIFT                                 0
  323. #define GEN6_INST_DST_ADDRMODE__MASK                            0x80000000
  324. #define GEN6_INST_DST_ADDRMODE__SHIFT                           31
  325. #define GEN6_INST_DST_HORZSTRIDE__MASK                          0x60000000
  326. #define GEN6_INST_DST_HORZSTRIDE__SHIFT                         29
  327. #define GEN6_INST_DST_REG__MASK                                 0x1fe00000
  328. #define GEN6_INST_DST_REG__SHIFT                                21
  329. #define GEN6_INST_DST_SUBREG__MASK                              0x001f0000
  330. #define GEN6_INST_DST_SUBREG__SHIFT                             16
  331. #define GEN6_INST_DST_ADDR_SUBREG__MASK                         0x1c000000
  332. #define GEN6_INST_DST_ADDR_SUBREG__SHIFT                        26
  333. #define GEN6_INST_DST_ADDR_IMM__MASK                            0x03ff0000
  334. #define GEN6_INST_DST_ADDR_IMM__SHIFT                           16
  335. #define GEN8_INST_DST_ADDR_SUBREG__MASK                         0x1e000000
  336. #define GEN8_INST_DST_ADDR_SUBREG__SHIFT                        25
  337. #define GEN8_INST_DST_ADDR_IMM__MASK                            0x01ff0000
  338. #define GEN8_INST_DST_ADDR_IMM__SHIFT                           16
  339. #define GEN6_INST_DST_SUBREG_ALIGN16__MASK                      0x00100000
  340. #define GEN6_INST_DST_SUBREG_ALIGN16__SHIFT                     20
  341. #define GEN6_INST_DST_SUBREG_ALIGN16__SHR                       4
  342. #define GEN6_INST_DST_ADDR_IMM_ALIGN16__MASK                    0x03f00000
  343. #define GEN6_INST_DST_ADDR_IMM_ALIGN16__SHIFT                   20
  344. #define GEN6_INST_DST_ADDR_IMM_ALIGN16__SHR                     4
  345. #define GEN8_INST_DST_ADDR_IMM_ALIGN16__MASK                    0x01f00000
  346. #define GEN8_INST_DST_ADDR_IMM_ALIGN16__SHIFT                   20
  347. #define GEN8_INST_DST_ADDR_IMM_ALIGN16__SHR                     4
  348. #define GEN6_INST_DST_WRITEMASK__MASK                           0x000f0000
  349. #define GEN6_INST_DST_WRITEMASK__SHIFT                          16
  350. #define GEN7_INST_NIBCTRL                                       (0x1 << 15)
  351. #define GEN6_INST_SRC1_TYPE__MASK                               0x00007000
  352. #define GEN6_INST_SRC1_TYPE__SHIFT                              12
  353. #define GEN6_INST_SRC1_FILE__MASK                               0x00000c00
  354. #define GEN6_INST_SRC1_FILE__SHIFT                              10
  355. #define GEN6_INST_SRC0_TYPE__MASK                               0x00000380
  356. #define GEN6_INST_SRC0_TYPE__SHIFT                              7
  357. #define GEN6_INST_SRC0_FILE__MASK                               0x00000060
  358. #define GEN6_INST_SRC0_FILE__SHIFT                              5
  359. #define GEN6_INST_DST_TYPE__MASK                                0x0000001c
  360. #define GEN6_INST_DST_TYPE__SHIFT                               2
  361. #define GEN6_INST_DST_FILE__MASK                                0x00000003
  362. #define GEN6_INST_DST_FILE__SHIFT                               0
  363. #define GEN8_INST_DST_ADDR_IMM_BIT9__MASK                       0x00008000
  364. #define GEN8_INST_DST_ADDR_IMM_BIT9__SHIFT                      15
  365. #define GEN8_INST_DST_ADDR_IMM_BIT9__SHR                        9
  366. #define GEN8_INST_SRC0_TYPE__MASK                               0x00007800
  367. #define GEN8_INST_SRC0_TYPE__SHIFT                              11
  368. #define GEN8_INST_SRC0_FILE__MASK                               0x00000600
  369. #define GEN8_INST_SRC0_FILE__SHIFT                              9
  370. #define GEN8_INST_DST_TYPE__MASK                                0x000001e0
  371. #define GEN8_INST_DST_TYPE__SHIFT                               5
  372. #define GEN8_INST_DST_FILE__MASK                                0x00000018
  373. #define GEN8_INST_DST_FILE__SHIFT                               3
  374. #define GEN8_INST_MASKCTRL__MASK                                0x00000004
  375. #define GEN8_INST_MASKCTRL__SHIFT                               2
  376. #define GEN8_INST_FLAG_REG__MASK                                0x00000002
  377. #define GEN8_INST_FLAG_REG__SHIFT                               1
  378. #define GEN8_INST_FLAG_SUBREG__MASK                             0x00000001
  379. #define GEN8_INST_FLAG_SUBREG__SHIFT                            0
  380. #define GEN7_INST_FLAG_REG__MASK                                0x04000000
  381. #define GEN7_INST_FLAG_REG__SHIFT                               26
  382. #define GEN6_INST_FLAG_SUBREG__MASK                             0x02000000
  383. #define GEN6_INST_FLAG_SUBREG__SHIFT                            25
  384. #define GEN8_INST_SRC0_ADDR_IMM_BIT9__MASK                      0x80000000
  385. #define GEN8_INST_SRC0_ADDR_IMM_BIT9__SHIFT                     31
  386. #define GEN8_INST_SRC0_ADDR_IMM_BIT9__SHR                       9
  387. #define GEN8_INST_SRC1_TYPE__MASK                               0x78000000
  388. #define GEN8_INST_SRC1_TYPE__SHIFT                              27
  389. #define GEN8_INST_SRC1_FILE__MASK                               0x06000000
  390. #define GEN8_INST_SRC1_FILE__SHIFT                              25
  391. #define GEN8_INST_SRC1_ADDR_IMM_BIT9__MASK                      0x02000000
  392. #define GEN8_INST_SRC1_ADDR_IMM_BIT9__SHIFT                     25
  393. #define GEN8_INST_SRC1_ADDR_IMM_BIT9__SHR                       9
  394. #define GEN6_INST_SRC_VERTSTRIDE__MASK                          0x01e00000
  395. #define GEN6_INST_SRC_VERTSTRIDE__SHIFT                         21
  396. #define GEN6_INST_SRC_WIDTH__MASK                               0x001c0000
  397. #define GEN6_INST_SRC_WIDTH__SHIFT                              18
  398. #define GEN6_INST_SRC_HORZSTRIDE__MASK                          0x00030000
  399. #define GEN6_INST_SRC_HORZSTRIDE__SHIFT                         16
  400. #define GEN6_INST_SRC_SWIZZLE_W__MASK                           0x000c0000
  401. #define GEN6_INST_SRC_SWIZZLE_W__SHIFT                          18
  402. #define GEN6_INST_SRC_SWIZZLE_Z__MASK                           0x00030000
  403. #define GEN6_INST_SRC_SWIZZLE_Z__SHIFT                          16
  404. #define GEN6_INST_SRC_ADDRMODE__MASK                            0x00008000
  405. #define GEN6_INST_SRC_ADDRMODE__SHIFT                           15
  406. #define GEN6_INST_SRC_NEGATE                                    (0x1 << 14)
  407. #define GEN6_INST_SRC_ABSOLUTE                                  (0x1 << 13)
  408. #define GEN6_INST_SRC_REG__MASK                                 0x00001fe0
  409. #define GEN6_INST_SRC_REG__SHIFT                                5
  410. #define GEN6_INST_SRC_SUBREG__MASK                              0x0000001f
  411. #define GEN6_INST_SRC_SUBREG__SHIFT                             0
  412. #define GEN6_INST_SRC_ADDR_SUBREG__MASK                         0x00001c00
  413. #define GEN6_INST_SRC_ADDR_SUBREG__SHIFT                        10
  414. #define GEN6_INST_SRC_ADDR_IMM__MASK                            0x000003ff
  415. #define GEN6_INST_SRC_ADDR_IMM__SHIFT                           0
  416. #define GEN8_INST_SRC_ADDR_SUBREG__MASK                         0x00001e00
  417. #define GEN8_INST_SRC_ADDR_SUBREG__SHIFT                        9
  418. #define GEN8_INST_SRC_ADDR_IMM__MASK                            0x000001ff
  419. #define GEN8_INST_SRC_ADDR_IMM__SHIFT                           0
  420. #define GEN6_INST_SRC_SUBREG_ALIGN16__MASK                      0x00000010
  421. #define GEN6_INST_SRC_SUBREG_ALIGN16__SHIFT                     4
  422. #define GEN6_INST_SRC_SUBREG_ALIGN16__SHR                       4
  423. #define GEN6_INST_SRC_ADDR_IMM_ALIGN16__MASK                    0x000003f0
  424. #define GEN6_INST_SRC_ADDR_IMM_ALIGN16__SHIFT                   4
  425. #define GEN6_INST_SRC_ADDR_IMM_ALIGN16__SHR                     4
  426. #define GEN8_INST_SRC_ADDR_IMM_ALIGN16__MASK                    0x000001f0
  427. #define GEN8_INST_SRC_ADDR_IMM_ALIGN16__SHIFT                   4
  428. #define GEN8_INST_SRC_ADDR_IMM_ALIGN16__SHR                     4
  429. #define GEN6_INST_SRC_SWIZZLE_Y__MASK                           0x0000000c
  430. #define GEN6_INST_SRC_SWIZZLE_Y__SHIFT                          2
  431. #define GEN6_INST_SRC_SWIZZLE_X__MASK                           0x00000003
  432. #define GEN6_INST_SRC_SWIZZLE_X__SHIFT                          0
  433. #define GEN6_3SRC_DST_REG__MASK                                 0xff000000
  434. #define GEN6_3SRC_DST_REG__SHIFT                                24
  435. #define GEN6_3SRC_DST_SUBREG__MASK                              0x00e00000
  436. #define GEN6_3SRC_DST_SUBREG__SHIFT                             21
  437. #define GEN6_3SRC_DST_SUBREG__SHR                               2
  438. #define GEN6_3SRC_DST_WRITEMASK__MASK                           0x001e0000
  439. #define GEN6_3SRC_DST_WRITEMASK__SHIFT                          17
  440. #define GEN7_3SRC_NIBCTRL                                       (0x1 << 15)
  441. #define GEN7_3SRC_DST_TYPE__MASK                                0x00003000
  442. #define GEN7_3SRC_DST_TYPE__SHIFT                               12
  443. #define GEN7_3SRC_SRC_TYPE__MASK                                0x00000c00
  444. #define GEN7_3SRC_SRC_TYPE__SHIFT                               10
  445. #define GEN6_3SRC_SRC2_NEGATE                                   (0x1 << 9)
  446. #define GEN6_3SRC_SRC2_ABSOLUTE                                 (0x1 << 8)
  447. #define GEN6_3SRC_SRC1_NEGATE                                   (0x1 << 7)
  448. #define GEN6_3SRC_SRC1_ABSOLUTE                                 (0x1 << 6)
  449. #define GEN6_3SRC_SRC0_NEGATE                                   (0x1 << 5)
  450. #define GEN6_3SRC_SRC0_ABSOLUTE                                 (0x1 << 4)
  451. #define GEN7_3SRC_FLAG_REG__MASK                                0x00000004
  452. #define GEN7_3SRC_FLAG_REG__SHIFT                               2
  453. #define GEN6_3SRC_FLAG_SUBREG__MASK                             0x00000002
  454. #define GEN6_3SRC_FLAG_SUBREG__SHIFT                            1
  455. #define GEN6_3SRC_DST_FILE_MRF                                  (0x1 << 0)
  456. #define GEN8_3SRC_DST_TYPE__MASK                                0x0001c000
  457. #define GEN8_3SRC_DST_TYPE__SHIFT                               14
  458. #define GEN8_3SRC_SRC_TYPE__MASK                                0x00003800
  459. #define GEN8_3SRC_SRC_TYPE__SHIFT                               11
  460. #define GEN8_3SRC_SRC2_NEGATE                                   (0x1 << 10)
  461. #define GEN8_3SRC_SRC2_ABSOLUTE                                 (0x1 << 9)
  462. #define GEN8_3SRC_SRC1_NEGATE                                   (0x1 << 8)
  463. #define GEN8_3SRC_SRC1_ABSOLUTE                                 (0x1 << 7)
  464. #define GEN8_3SRC_SRC0_NEGATE                                   (0x1 << 6)
  465. #define GEN8_3SRC_SRC0_ABSOLUTE                                 (0x1 << 5)
  466. #define GEN8_3SRC_MASKCTRL__MASK                                0x00000004
  467. #define GEN8_3SRC_MASKCTRL__SHIFT                               2
  468. #define GEN8_3SRC_FLAG_REG__MASK                                0x00000002
  469. #define GEN8_3SRC_FLAG_REG__SHIFT                               1
  470. #define GEN8_3SRC_FLAG_SUBREG__MASK                             0x00000001
  471. #define GEN8_3SRC_FLAG_SUBREG__SHIFT                            0
  472. #define GEN6_3SRC_SRC_REG__MASK                                 0x000ff000
  473. #define GEN6_3SRC_SRC_REG__SHIFT                                12
  474. #define GEN6_3SRC_SRC_SUBREG__MASK                              0x00000e00
  475. #define GEN6_3SRC_SRC_SUBREG__SHIFT                             9
  476. #define GEN6_3SRC_SRC_SUBREG__SHR                               2
  477. #define GEN6_3SRC_SRC_SWIZZLE_W__MASK                           0x00000180
  478. #define GEN6_3SRC_SRC_SWIZZLE_W__SHIFT                          7
  479. #define GEN6_3SRC_SRC_SWIZZLE_Z__MASK                           0x00000060
  480. #define GEN6_3SRC_SRC_SWIZZLE_Z__SHIFT                          5
  481. #define GEN6_3SRC_SRC_SWIZZLE_Y__MASK                           0x00000018
  482. #define GEN6_3SRC_SRC_SWIZZLE_Y__SHIFT                          3
  483. #define GEN6_3SRC_SRC_SWIZZLE_X__MASK                           0x00000006
  484. #define GEN6_3SRC_SRC_SWIZZLE_X__SHIFT                          1
  485. #define GEN6_3SRC_SRC_REPCTRL                                   (0x1 << 0)
  486. #define GEN6_COMPACT_SRC1_REG__MASK                     0xff00000000000000ULL
  487. #define GEN6_COMPACT_SRC1_REG__SHIFT                            56
  488. #define GEN6_COMPACT_SRC0_REG__MASK                     0x00ff000000000000ULL
  489. #define GEN6_COMPACT_SRC0_REG__SHIFT                            48
  490. #define GEN6_COMPACT_DST_REG__MASK                      0x0000ff0000000000ULL
  491. #define GEN6_COMPACT_DST_REG__SHIFT                             40
  492. #define GEN6_COMPACT_SRC1_INDEX__MASK                   0x000000f800000000ULL
  493. #define GEN6_COMPACT_SRC1_INDEX__SHIFT                          35
  494. #define GEN6_COMPACT_SRC0_INDEX__MASK                   0x00000007c0000000ULL
  495. #define GEN6_COMPACT_SRC0_INDEX__SHIFT                          30
  496. #define GEN6_COMPACT_CMPTCTRL                                   (0x1 << 29)
  497. #define GEN6_COMPACT_FLAG_SUBREG__MASK                          0x10000000
  498. #define GEN6_COMPACT_FLAG_SUBREG__SHIFT                         28
  499. #define GEN6_COMPACT_CONDMODIFIER__MASK                         0x0f000000
  500. #define GEN6_COMPACT_CONDMODIFIER__SHIFT                        24
  501. #define GEN6_COMPACT_ACCWRCTRL                                  (0x1 << 23)
  502. #define GEN6_COMPACT_SUBREG_INDEX__MASK                         0x007c0000
  503. #define GEN6_COMPACT_SUBREG_INDEX__SHIFT                        18
  504. #define GEN6_COMPACT_DATATYPE_INDEX__MASK                       0x0003e000
  505. #define GEN6_COMPACT_DATATYPE_INDEX__SHIFT                      13
  506. #define GEN6_COMPACT_CONTROL_INDEX__MASK                        0x00001f00
  507. #define GEN6_COMPACT_CONTROL_INDEX__SHIFT                       8
  508. #define GEN6_COMPACT_DEBUGCTRL                                  (0x1 << 7)
  509. #define GEN6_COMPACT_OPCODE__MASK                               0x0000007f
  510. #define GEN6_COMPACT_OPCODE__SHIFT                              0
  511. #define GEN8_COMPACT_3SRC_SRC2_REG__MASK                0xfe00000000000000ULL
  512. #define GEN8_COMPACT_3SRC_SRC2_REG__SHIFT                       57
  513. #define GEN8_COMPACT_3SRC_SRC2_REG__SHR                         1
  514. #define GEN8_COMPACT_3SRC_SRC1_REG__MASK                0x01fc000000000000ULL
  515. #define GEN8_COMPACT_3SRC_SRC1_REG__SHIFT                       50
  516. #define GEN8_COMPACT_3SRC_SRC1_REG__SHR                         1
  517. #define GEN8_COMPACT_3SRC_SRC0_REG__MASK                0x0003f80000000000ULL
  518. #define GEN8_COMPACT_3SRC_SRC0_REG__SHIFT                       43
  519. #define GEN8_COMPACT_3SRC_SRC0_REG__SHR                         1
  520. #define GEN8_COMPACT_3SRC_SRC2_SUBREG__MASK             0x0000070000000000ULL
  521. #define GEN8_COMPACT_3SRC_SRC2_SUBREG__SHIFT                    40
  522. #define GEN8_COMPACT_3SRC_SRC2_SUBREG__SHR                      2
  523. #define GEN8_COMPACT_3SRC_SRC1_SUBREG__MASK             0x000000e000000000ULL
  524. #define GEN8_COMPACT_3SRC_SRC1_SUBREG__SHIFT                    37
  525. #define GEN8_COMPACT_3SRC_SRC1_SUBREG__SHR                      2
  526. #define GEN8_COMPACT_3SRC_SRC0_SUBREG__MASK             0x0000001c00000000ULL
  527. #define GEN8_COMPACT_3SRC_SRC0_SUBREG__SHIFT                    34
  528. #define GEN8_COMPACT_3SRC_SRC0_SUBREG__SHR                      2
  529. #define GEN8_COMPACT_3SRC_SRC2_REPCTRL                          (0x1ULL << 33)
  530. #define GEN8_COMPACT_3SRC_SRC1_REPCTRL                          (0x1ULL << 32)
  531. #define GEN8_COMPACT_3SRC_SATURATE                              (0x1 << 31)
  532. #define GEN8_COMPACT_3SRC_DEBUGCTRL                             (0x1 << 30)
  533. #define GEN8_COMPACT_3SRC_CMPTCTRL                              (0x1 << 29)
  534. #define GEN8_COMPACT_3SRC_SRC0_REPCTRL                          (0x1 << 28)
  535. #define GEN8_COMPACT_3SRC_DST_REG__MASK                         0x0007f000
  536. #define GEN8_COMPACT_3SRC_DST_REG__SHIFT                        12
  537. #define GEN8_COMPACT_3SRC_SOURCE_INDEX__MASK                    0x00000c00
  538. #define GEN8_COMPACT_3SRC_SOURCE_INDEX__SHIFT                   10
  539. #define GEN8_COMPACT_3SRC_CONTROL_INDEX__MASK                   0x00000300
  540. #define GEN8_COMPACT_3SRC_CONTROL_INDEX__SHIFT                  8
  541. #define GEN8_COMPACT_3SRC_OPCODE__MASK                          0x0000007f
  542. #define GEN8_COMPACT_3SRC_OPCODE__SHIFT                         0
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551. #define GEN6_3SRC_SRC_2__MASK                           0x7ffffc0000000000ULL
  552. #define GEN6_3SRC_SRC_2__SHIFT                                  42
  553. #define GEN6_3SRC_SRC_1__MASK                           0x000003ffffe00000ULL
  554. #define GEN6_3SRC_SRC_1__SHIFT                                  21
  555. #define GEN6_3SRC_SRC_0__MASK                                   0x001fffff
  556. #define GEN6_3SRC_SRC_0__SHIFT                                  0
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563. #endif /* GEN_EU_ISA_XML */
  564.