nak/sm20: Implement OpBar

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34616>
This commit is contained in:
Faith Ekstrand
2025-04-18 19:17:24 -05:00
committed by Marge Bot
parent 8401a60840
commit f6b9d13a15
+20
View File
@@ -2490,6 +2490,25 @@ impl SM20Op for OpExit {
}
}
impl SM20Op for OpBar {
fn legalize(&mut self, _b: &mut LegalizeBuilder) {
// Nothing to do
}
fn encode(&self, e: &mut SM20Encoder<'_>) {
e.set_opcode(SM20Unit::Move, 0x14);
e.set_field(5..7, 0_u8); // 0: .popc, 1: .and, 2: .or
e.set_field(7..9, 0_u8); // 0: .sync, 1: .arv, 2: .red
e.set_reg_src(20..26, 0.into());
e.set_reg_src(26..32, 0.into());
e.set_bit(46, false); // src1_is_imm
e.set_bit(47, false); // src0_is_imm
e.set_pred_src(49..53, true.into());
e.set_pred_dst(53..56, Dst::None);
}
}
impl SM20Op for OpTexDepBar {
fn legalize(&mut self, _b: &mut LegalizeBuilder) {
// Nothing to do
@@ -2683,6 +2702,7 @@ macro_rules! as_sm20_op_match {
Op::Cont(op) => op,
Op::PCnt(op) => op,
Op::Exit(op) => op,
Op::Bar(op) => op,
Op::TexDepBar(op) => op,
Op::Isberd(op) => op,
Op::Kill(op) => op,