On Wed, 2025-07-30 at 08:14 +0200, Christophe Leroy wrote: > > > Le 20/07/2025 à 00:43, Ruben Wauters a écrit : > > [Vous ne recevez pas souvent de courriers de rubenr...@aol.com. > > Découvrez pourquoi ceci est important à > > https://aka.ms/LearnAboutSenderIdentification ] > > > > The calculations for operand/opcode/macro numbers are done in an > > identical manner to the already existing ARRAY_SIZE macro in > > linux/array_size.h > > > > This patch replaces the sizeof calculations with the macro to make > > the > > code cleaner and more immediately obvious what it is doing. > > > > Signed-off-by: Ruben Wauters <rubenr...@aol.com> > > --- > > arch/powerpc/xmon/ppc-opc.c | 16 ++++++---------- > > This file is mostly taken from binutils, refer commit 08d96e0b127e > ("powerpc/xmon: Apply binutils changes to upgrade disassembly"). > > I think your change should be done in binutils then backported to the > kernel. The more we diverge from binutils the worse it is
While this is somewhat reasonable, the header (linux/array_size.h) is linux specific, and is included through kernel.h I can probably see if binutils has a similar header, or if they would accept an equivalent header to make the file equivalent, but I'm unsure if they would Ruben > Christophe > > > > 1 file changed, 6 insertions(+), 10 deletions(-) > > > > diff --git a/arch/powerpc/xmon/ppc-opc.c b/arch/powerpc/xmon/ppc- > > opc.c > > index 0774d711453e..de9b4236728c 100644 > > --- a/arch/powerpc/xmon/ppc-opc.c > > +++ b/arch/powerpc/xmon/ppc-opc.c > > @@ -954,8 +954,7 @@ const struct powerpc_operand powerpc_operands[] > > = > > { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT }, > > }; > > > > -const unsigned int num_powerpc_operands = (sizeof > > (powerpc_operands) > > - / sizeof > > (powerpc_operands[0])); > > +const unsigned int num_powerpc_operands = > > ARRAY_SIZE(powerpc_operands); > > > > /* The functions used to insert and extract complicated > > operands. */ > > > > @@ -6968,9 +6967,8 @@ const struct powerpc_opcode powerpc_opcodes[] > > = { > > {"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, > > PPCVLE, {FRT, FRB}}, > > }; > > > > -const int powerpc_num_opcodes = > > - sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]); > > - > > +const int powerpc_num_opcodes = ARRAY_SIZE(powerpc_opcodes); > > + > > /* The VLE opcode table. > > > > The format of this opcode table is the same as the main opcode > > table. */ > > @@ -7207,9 +7205,8 @@ const struct powerpc_opcode vle_opcodes[] = { > > {"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, > > 0, {B8}}, > > }; > > > > -const int vle_num_opcodes = > > - sizeof (vle_opcodes) / sizeof (vle_opcodes[0]); > > - > > +const int vle_num_opcodes = ARRAY_SIZE(vle_opcodes); > > + > > /* The macro table. This is only used by the assembler. */ > > > > /* The expressions of the form (-x ! 31) & (x | 31) have the > > value 0 > > @@ -7276,5 +7273,4 @@ const struct powerpc_macro powerpc_macros[] = > > { > > {"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"}, > > }; > > > > -const int powerpc_num_macros = > > - sizeof (powerpc_macros) / sizeof (powerpc_macros[0]); > > +const int powerpc_num_macros = ARRAY_SIZE(powerpc_macros); > > -- > > 2.49.1 > >