xref: /aosp_15_r20/external/mesa3d/src/imagination/rogue/rogue_backend_instrs.def (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1/*
2 * Copyright © 2022 Imagination Technologies Ltd.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 * SOFTWARE.
22 */
23
24/**
25 * \file rogue_backend_instrs.def
26 *
27 * \brief Contains macros defining backend instructions.
28 */
29
30/*
31 * ROGUE_BUILDER_DEFINE_BACKENDds
32 *    d: Number of destinations.
33 *    s: Number of sources.
34 */
35
36#ifndef ROGUE_BUILDER_DEFINE_BACKEND00
37#define ROGUE_BUILDER_DEFINE_BACKEND00(...)
38#endif /* ROGUE_BUILDER_DEFINE_BACKEND00 */
39
40#ifndef ROGUE_BUILDER_DEFINE_BACKEND02
41#define ROGUE_BUILDER_DEFINE_BACKEND02(...)
42#endif /* ROGUE_BUILDER_DEFINE_BACKEND02 */
43
44#ifndef ROGUE_BUILDER_DEFINE_BACKEND11
45#define ROGUE_BUILDER_DEFINE_BACKEND11(...)
46#endif /* ROGUE_BUILDER_DEFINE_BACKEND11 */
47
48#ifndef ROGUE_BUILDER_DEFINE_BACKEND13
49#define ROGUE_BUILDER_DEFINE_BACKEND13(...)
50#endif /* ROGUE_BUILDER_DEFINE_BACKEND13 */
51
52#ifndef ROGUE_BUILDER_DEFINE_BACKEND14
53#define ROGUE_BUILDER_DEFINE_BACKEND14(...)
54#endif /* ROGUE_BUILDER_DEFINE_BACKEND14 */
55
56#ifndef ROGUE_BUILDER_DEFINE_BACKEND06
57#define ROGUE_BUILDER_DEFINE_BACKEND06(...)
58#endif /* ROGUE_BUILDER_DEFINE_BACKEND06 */
59
60#ifndef ROGUE_BUILDER_DEFINE_BACKEND16
61#define ROGUE_BUILDER_DEFINE_BACKEND16(...)
62#endif /* ROGUE_BUILDER_DEFINE_BACKEND16 */
63
64ROGUE_BUILDER_DEFINE_BACKEND00(UVSW_EMIT)
65ROGUE_BUILDER_DEFINE_BACKEND00(UVSW_ENDTASK)
66ROGUE_BUILDER_DEFINE_BACKEND00(UVSW_EMITTHENENDTASK)
67
68ROGUE_BUILDER_DEFINE_BACKEND02(EMITPIX)
69ROGUE_BUILDER_DEFINE_BACKEND02(IDF)
70
71ROGUE_BUILDER_DEFINE_BACKEND11(UVSW_WRITE)
72ROGUE_BUILDER_DEFINE_BACKEND11(UVSW_WRITETHENEMITTHENENDTASK)
73
74ROGUE_BUILDER_DEFINE_BACKEND13(LD)
75ROGUE_BUILDER_DEFINE_BACKEND13(FITR_PIXEL)
76
77ROGUE_BUILDER_DEFINE_BACKEND14(FITRP_PIXEL)
78
79ROGUE_BUILDER_DEFINE_BACKEND06(ST)
80
81ROGUE_BUILDER_DEFINE_BACKEND16(SMP1D)
82ROGUE_BUILDER_DEFINE_BACKEND16(SMP2D)
83ROGUE_BUILDER_DEFINE_BACKEND16(SMP3D)
84
85#undef ROGUE_BUILDER_DEFINE_BACKEND16
86#undef ROGUE_BUILDER_DEFINE_BACKEND06
87#undef ROGUE_BUILDER_DEFINE_BACKEND14
88#undef ROGUE_BUILDER_DEFINE_BACKEND13
89#undef ROGUE_BUILDER_DEFINE_BACKEND11
90#undef ROGUE_BUILDER_DEFINE_BACKEND02
91#undef ROGUE_BUILDER_DEFINE_BACKEND00
92