CLRX  1
An unofficial OpenCL extensions designed for Radeon GPUs
GCNDefs.h
Go to the documentation of this file.
1 /*
2  * CLRadeonExtender - Unofficial OpenCL Radeon Extensions Library
3  * Copyright (C) 2014-2018 Mateusz Szpakowski
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
23 #ifndef __CLRX_GCNDEFS_H__
24 #define __CLRX_GCNDEFS_H__
25 
26 #include <CLRX/Config.h>
27 #include <cstdint>
28 #include <CLRX/amdasm/AsmDefs.h>
29 
31 namespace CLRX
32 {
33 
34 enum : AsmExprTargetType
35 {
36  GCNTGT_LITIMM = 16,
37  GCNTGT_SOPKSIMM16,
38  GCNTGT_SOPJMP,
39  GCNTGT_SMRDOFFSET,
40  GCNTGT_DSOFFSET16,
41  GCNTGT_DSOFFSET8_0,
42  GCNTGT_DSOFFSET8_1,
43  GCNTGT_MXBUFOFFSET,
44  GCNTGT_SMEMOFFSET,
45  GCNTGT_SOPCIMM8,
46  GCNTGT_SMEMIMM,
47  GCNTGT_SMEMOFFSETVEGA,
48  GCNTGT_INSTOFFSET,
49  GCNTGT_INSTOFFSET_S,
50  GCNTGT_VOP3LITIMM,
51  GCNTGT_INSTOFFSET_GFX10
52 };
53 
54 enum : AsmRegField
55 {
56  GCNFIELD_SSRC0 = ASMFIELD_NONE+1,
57  GCNFIELD_SSRC1,
58  GCNFIELD_SDST,
59  GCNFIELD_SMRD_SBASE,
60  GCNFIELD_SMRD_SDST,
61  GCNFIELD_SMRD_SDSTH,
62  GCNFIELD_SMRD_SOFFSET,
63  GCNFIELD_VOP_SRC0,
64  GCNFIELD_VOP_VSRC1,
65  GCNFIELD_VOP_SSRC1,
66  GCNFIELD_VOP_VDST,
67  GCNFIELD_VOP_SDST,
68  GCNFIELD_VOP3_SRC0,
69  GCNFIELD_VOP3_SRC1,
70  GCNFIELD_VOP3_SRC2,
71  GCNFIELD_VOP3_VDST,
72  GCNFIELD_VOP3_SDST0,
73  GCNFIELD_VOP3_SSRC,
74  GCNFIELD_VOP3_SDST1,
75  GCNFIELD_VINTRP_VSRC0,
76  GCNFIELD_VINTRP_VDST,
77  GCNFIELD_DS_ADDR,
78  GCNFIELD_DS_DATA0,
79  GCNFIELD_DS_DATA1,
80  GCNFIELD_DS_VDST,
81  GCNFIELD_M_VADDR,
82  GCNFIELD_M_VDATA,
83  GCNFIELD_M_VDATAH,
84  GCNFIELD_M_VDATALAST,
85  GCNFIELD_M_SRSRC,
86  GCNFIELD_MIMG_SSAMP,
87  GCNFIELD_M_SOFFSET,
88  GCNFIELD_EXP_VSRC0,
89  GCNFIELD_EXP_VSRC1,
90  GCNFIELD_EXP_VSRC2,
91  GCNFIELD_EXP_VSRC3,
92  GCNFIELD_FLAT_ADDR,
93  GCNFIELD_FLAT_DATA,
94  GCNFIELD_FLAT_VDST,
95  GCNFIELD_FLAT_VDSTLAST,
96  GCNFIELD_DPPSDWA_SRC0,
97  GCNFIELD_DPPSDWA_SSRC0,
98  GCNFIELD_FLAT_SADDR,
99  GCNFIELD_SDWAB_SDST,
100  GCNFIELD_VOP_VCC_SSRC,
101  GCNFIELD_VOP_VCC_SDST0,
102  GCNFIELD_VOP_VCC_SDST1,
103  GCNFIELD_VOP_VCC_IMPL,
104  GCNFIELD_M_VADDR_MULTI,
105  GCNFIELD_M_VADDR_MULTI_MAX = GCNFIELD_M_VADDR_MULTI+15
106 };
107 
108 enum : cxbyte
109 {
110  GCNWAIT_VMCNT = 0,
111  GCNWAIT_LGKMCNT,
112  GCNWAIT_EXPCNT,
113  GCNWAIT_MAX = GCNWAIT_EXPCNT
114 };
115 
116 enum : cxbyte
117 {
118  GCNDELOP_VMOP = 0,
119  GCNDELOP_LDSOP,
120  GCNDELOP_GDSOP,
121  GCNDELOP_SENDMSG,
122  GCNDELOP_SMEMOP,
123  GCNDELOP_EXPVMWRITE,
124  GCNDELOP_EXPORT,
125  GCNDELOP_MAX = GCNDELOP_EXPORT,
126  GCNDELOP_NONE = ASMDELOP_NONE
127 };
128 
129 };
130 
131 #endif
Configuration header.
unsigned char cxbyte
unsigned byte
Definition: Config.h:229
main namespace
Definition: AsmDefs.h:38
cxbyte AsmExprTargetType
expression target type (one byte)
Definition: AsmDefs.h:59
cxbyte AsmRegField
type of register field
Definition: AsmDefs.h:500
an assembler for Radeon GPU&#39;s