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 };
51 
52 enum : AsmRegField
53 {
54  GCNFIELD_SSRC0 = ASMFIELD_NONE+1,
55  GCNFIELD_SSRC1,
56  GCNFIELD_SDST,
57  GCNFIELD_SMRD_SBASE,
58  GCNFIELD_SMRD_SDST,
59  GCNFIELD_SMRD_SDSTH,
60  GCNFIELD_SMRD_SOFFSET,
61  GCNFIELD_VOP_SRC0,
62  GCNFIELD_VOP_VSRC1,
63  GCNFIELD_VOP_SSRC1,
64  GCNFIELD_VOP_VDST,
65  GCNFIELD_VOP_SDST,
66  GCNFIELD_VOP3_SRC0,
67  GCNFIELD_VOP3_SRC1,
68  GCNFIELD_VOP3_SRC2,
69  GCNFIELD_VOP3_VDST,
70  GCNFIELD_VOP3_SDST0,
71  GCNFIELD_VOP3_SSRC,
72  GCNFIELD_VOP3_SDST1,
73  GCNFIELD_VINTRP_VSRC0,
74  GCNFIELD_VINTRP_VDST,
75  GCNFIELD_DS_ADDR,
76  GCNFIELD_DS_DATA0,
77  GCNFIELD_DS_DATA1,
78  GCNFIELD_DS_VDST,
79  GCNFIELD_M_VADDR,
80  GCNFIELD_M_VDATA,
81  GCNFIELD_M_VDATAH,
82  GCNFIELD_M_VDATALAST,
83  GCNFIELD_M_SRSRC,
84  GCNFIELD_MIMG_SSAMP,
85  GCNFIELD_M_SOFFSET,
86  GCNFIELD_EXP_VSRC0,
87  GCNFIELD_EXP_VSRC1,
88  GCNFIELD_EXP_VSRC2,
89  GCNFIELD_EXP_VSRC3,
90  GCNFIELD_FLAT_ADDR,
91  GCNFIELD_FLAT_DATA,
92  GCNFIELD_FLAT_VDST,
93  GCNFIELD_FLAT_VDSTLAST,
94  GCNFIELD_DPPSDWA_SRC0,
95  GCNFIELD_DPPSDWA_SSRC0,
96  GCNFIELD_FLAT_SADDR,
97  GCNFIELD_SDWAB_SDST,
98  GCNFIELD_VOP_VCC_SSRC,
99  GCNFIELD_VOP_VCC_SDST0,
100  GCNFIELD_VOP_VCC_SDST1
101 };
102 
103 enum : cxbyte
104 {
105  GCNWAIT_VMCNT = 0,
106  GCNWAIT_LGKMCNT,
107  GCNWAIT_EXPCNT,
108  GCNWAIT_MAX = GCNWAIT_EXPCNT
109 };
110 
111 enum : cxbyte
112 {
113  GCNDELOP_VMOP = 0,
114  GCNDELOP_LDSOP,
115  GCNDELOP_GDSOP,
116  GCNDELOP_SENDMSG,
117  GCNDELOP_SMEMOP,
118  GCNDELOP_EXPVMWRITE,
119  GCNDELOP_EXPORT,
120  GCNDELOP_MAX = GCNDELOP_EXPORT,
121  GCNDELOP_NONE = ASMDELOP_NONE
122 };
123 
124 };
125 
126 #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