pan/bi: Add +ZS_EMIT instruction to IR

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7446>
diff --git a/src/panfrost/bifrost/bi_pack.c b/src/panfrost/bifrost/bi_pack.c
index 3b2ffd7..860534a 100644
--- a/src/panfrost/bifrost/bi_pack.c
+++ b/src/panfrost/bifrost/bi_pack.c
@@ -912,6 +912,8 @@
                         return pan_pack_add_texs_2d_f32(clause, bundle.add, regs);
 case BI_ROUND:
                 unreachable("Packing todo");
+        case BI_ZS_EMIT:
+                return pan_pack_add_zs_emit(clause, bundle.add, regs);
         default:
                 unreachable("Cannot encode class as ADD");
         }
diff --git a/src/panfrost/bifrost/bi_print.c b/src/panfrost/bifrost/bi_print.c
index 9779ba8..224dbc2 100644
--- a/src/panfrost/bifrost/bi_print.c
+++ b/src/panfrost/bifrost/bi_print.c
@@ -76,6 +76,7 @@
         case BI_TEXC_DUAL: return "texc_dual";
         case BI_ROUND: return "round";
         case BI_IMUL: return "imul";
+        case BI_ZS_EMIT: return "zs_emit";
         default: return "unknown_class";
         }
 }
diff --git a/src/panfrost/bifrost/bi_schedule.c b/src/panfrost/bifrost/bi_schedule.c
index fccaf69..e6b8711 100644
--- a/src/panfrost/bifrost/bi_schedule.c
+++ b/src/panfrost/bifrost/bi_schedule.c
@@ -83,6 +83,9 @@
         case BI_ATEST:
                 return BIFROST_MESSAGE_ATEST;
 
+        case BI_ZS_EMIT:
+                return BIFROST_MESSAGE_Z_STENCIL;
+
         default:
                 unreachable("Invalid high-latency class");
         }
diff --git a/src/panfrost/bifrost/bi_tables.c b/src/panfrost/bifrost/bi_tables.c
index 2617861..222f076 100644
--- a/src/panfrost/bifrost/bi_tables.c
+++ b/src/panfrost/bifrost/bi_tables.c
@@ -61,4 +61,5 @@
         [BI_TEXC_DUAL] 		= BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
         [BI_ROUND] 		= BI_ROUNDMODE | BI_SCHED_ALL,
         [BI_IMUL]       = BI_SCHED_FMA,
+        [BI_ZS_EMIT]            = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_DATA_REG_DEST,
 };
diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h
index 57ca531..11689c4 100644
--- a/src/panfrost/bifrost/compiler.h
+++ b/src/panfrost/bifrost/compiler.h
@@ -81,6 +81,7 @@
         BI_TEXC_DUAL,
         BI_ROUND,
         BI_IMUL,
+        BI_ZS_EMIT,
         BI_NUM_CLASSES
 };