pan/midgard: Add units for more instructions
[mesa.git] / src / panfrost / midgard / midgard-parse.h
1 /* Author(s):
2 * Connor Abbott
3 * Alyssa Rosenzweig
4 *
5 * Copyright (c) 2013 Connor Abbott (connor@abbott.cx)
6 * Copyright (c) 2018 Alyssa Rosenzweig (alyssa@rosenzweig.io)
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy
9 * of this software and associated documentation files (the "Software"), to deal
10 * in the Software without restriction, including without limitation the rights
11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 * copies of the Software, and to permit persons to whom the Software is
13 * furnished to do so, subject to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 * THE SOFTWARE.
25 */
26
27 #ifndef __midgard_parse_h__
28 #define __midgard_parse_h__
29
30 /* Additional metadata for parsing Midgard binaries, not needed for compilation */
31
32 static midgard_word_type midgard_word_types[16] = {
33 midgard_word_type_unknown, /* 0x0 */
34 midgard_word_type_unknown, /* 0x1 */
35 midgard_word_type_texture, /* 0x2 */
36 midgard_word_type_texture, /* 0x3 */
37 midgard_word_type_unknown, /* 0x4 */
38 midgard_word_type_load_store, /* 0x5 */
39 midgard_word_type_unknown, /* 0x6 */
40 midgard_word_type_unknown, /* 0x7 */
41 midgard_word_type_alu, /* 0x8 */
42 midgard_word_type_alu, /* 0x9 */
43 midgard_word_type_alu, /* 0xA */
44 midgard_word_type_alu, /* 0xB */
45 midgard_word_type_alu, /* 0xC */
46 midgard_word_type_alu, /* 0xD */
47 midgard_word_type_alu, /* 0xE */
48 midgard_word_type_alu, /* 0xF */
49 };
50
51 static unsigned midgard_word_size[16] = {
52 0, /* 0x0 */
53 0, /* 0x1 */
54 1, /* 0x2 */
55 1, /* 0x3 */
56 0, /* 0x4 */
57 1, /* 0x5 */
58 0, /* 0x6 */
59 0, /* 0x7 */
60 1, /* 0x8 */
61 2, /* 0x9 */
62 3, /* 0xA */
63 4, /* 0xB */
64 1, /* 0xC */
65 2, /* 0xD */
66 3, /* 0xE */
67 4, /* 0xF */
68 };
69
70 #endif