[PATCH 1/4] powerpc: Add a ppc_inst_as_str() helper
Segher Boessenkool
segher at kernel.crashing.org
Wed Jun 3 05:41:33 AEST 2020
On Tue, Jun 02, 2020 at 03:27:25PM +1000, Jordan Niethe wrote:
> There are quite a few places where instructions are printed, this is
> done using a '%x' format specifier. With the introduction of prefixed
> instructions, this does not work well. Currently in these places,
> ppc_inst_val() is used for the value for %x so only the first word of
> prefixed instructions are printed.
>
> When the instructions are word instructions, only a single word should
> be printed. For prefixed instructions both the prefix and suffix should
> be printed. To accommodate both of these situations, instead of a '%x'
> specifier use '%s' and introduce a helper, __ppc_inst_as_str() which
> returns a char *. The char * __ppc_inst_as_str() returns is buffer that
> is passed to it by the caller.
>
> It is cumbersome to require every caller of __ppc_inst_as_str() to now
> declare a buffer. To make it more convenient to use __ppc_inst_as_str(),
> wrap it in a macro that uses a compound statement to allocate a buffer
> on the caller's stack before calling it.
>
> Signed-off-by: Jordan Niethe <jniethe5 at gmail.com>
Acked-by: Segher Boessenkool <segher at kernel.crashing.org>
> +#define PPC_INST_STR_LEN sizeof("0x00000000 0x00000000")
sizeof is not a function or anything function-like; it's just an
operator, like (unary) "+" or "-" or dereference "*". The parentheses
are completely redundant here. And it kind of matters, as written a
reader might think that a string object is actually constructed here.
But, so very many people do this, I'm not going to fight this fight ;-)
Segher
More information about the Linuxppc-dev
mailing list