From bd47f511f7540a65f1d7fe109e7d768261259fdf Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Wed, 10 Jun 2026 11:09:44 -0400 Subject: [PATCH] kraid/v9: Rework the shift_lop encode macro Part-of: --- src/panfrost/compiler/kraid/encode_v9.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/panfrost/compiler/kraid/encode_v9.rs b/src/panfrost/compiler/kraid/encode_v9.rs index 1d224426b8a..bc65efb7e74 100644 --- a/src/panfrost/compiler/kraid/encode_v9.rs +++ b/src/panfrost/compiler/kraid/encode_v9.rs @@ -645,17 +645,17 @@ impl V9Instr for OpNop { } } -macro_rules! shift_lop_as { - ($op:expr, $Instr:ident) => { +macro_rules! encode_shift_lop { + ($e:expr, $op:expr, $Instr:ident) => { paste! { - $Instr { + $e.encode($Instr { variant: $op.dst_type.try_into().unwrap(), dst: op_encode_dst($op, &$op.dst), not_result: $op.not_result.into(), src0: op_encode_src($op, &$op.src0), src1: op_encode_src($op, &$op.shift), src2: op_encode_src($op, &$op.src2), - } + }) } }; } @@ -680,12 +680,12 @@ impl V9Instr for OpShiftLop { use LogicOp::*; use ShiftOp::*; match (self.shift_op, self.logic_op) { - (LShift, And) => e.encode(shift_lop_as!(self, LshiftAnd)), - (LShift, Or) => e.encode(shift_lop_as!(self, LshiftOr)), - (LShift, Xor) => e.encode(shift_lop_as!(self, LshiftXor)), - (RShift, And) => e.encode(shift_lop_as!(self, RshiftAnd)), - (RShift, Or) => e.encode(shift_lop_as!(self, RshiftOr)), - (RShift, Xor) => e.encode(shift_lop_as!(self, RshiftXor)), + (LShift, And) => encode_shift_lop!(e, self, LshiftAnd), + (LShift, Or) => encode_shift_lop!(e, self, LshiftOr), + (LShift, Xor) => encode_shift_lop!(e, self, LshiftXor), + (RShift, And) => encode_shift_lop!(e, self, RshiftAnd), + (RShift, Or) => encode_shift_lop!(e, self, RshiftOr), + (RShift, Xor) => encode_shift_lop!(e, self, RshiftXor), (ARShift, _) => { assert!(self.shift.is_zero()); e.encode(Arshift {