agx: Include schedule class in the opcode info
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Thu, 24 Aug 2023 23:12:46 +0000 (19:12 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 5 Sep 2023 18:50:34 +0000 (18:50 +0000)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25052>

src/asahi/compiler/agx_opcodes.c.py
src/asahi/compiler/agx_opcodes.h.py

index fd85025..31d00dd 100644 (file)
@@ -25,6 +25,7 @@ const struct agx_opcode_info agx_opcodes_info[AGX_NUM_OPCODES] = {
       "${opcode}", ${op.srcs}, ${op.dests}, ${" | ".join(imms)},
       ${make_encoding(op.encoding_32)},
       ${make_encoding(op.encoding_16)},
+      AGX_SCHEDULE_CLASS_${op.schedule_class.upper()},
       ${int(op.is_float)},
       ${int(op.can_eliminate)},
       ${int(op.can_reorder)},
index 23dbf15..eec899c 100644 (file)
@@ -10,6 +10,17 @@ template = """/*
 #include <stdint.h>
 #include "util/macros.h"
 
+enum agx_schedule_class {
+   AGX_SCHEDULE_CLASS_INVALID,
+   AGX_SCHEDULE_CLASS_NONE,
+   AGX_SCHEDULE_CLASS_LOAD,
+   AGX_SCHEDULE_CLASS_STORE,
+   AGX_SCHEDULE_CLASS_ATOMIC,
+   AGX_SCHEDULE_CLASS_COVERAGE,
+   AGX_SCHEDULE_CLASS_PRELOAD,
+   AGX_SCHEDULE_CLASS_BARRIER,
+};
+
 /* Listing of opcodes */
 
 enum agx_opcode {
@@ -62,6 +73,7 @@ struct agx_opcode_info {
    enum agx_immediate immediates;
    struct agx_encoding encoding;
    struct agx_encoding encoding_16;
+   enum agx_schedule_class schedule_class;
    bool is_float : 1;
    bool can_eliminate : 1;
    bool can_reorder : 1;