On 22/01/26, Philippe Mathieu-Daudé wrote:
> Introduce the ppc_code_endian() helper which returns the
> MemOp endianness for the CODE path.
> 
> Use it in need_byteswap(), removing one TARGET_BIG_ENDIAN.
> 
> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
> ---
>  target/ppc/translate.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/target/ppc/translate.c b/target/ppc/translate.c
> index 17e6d07c8c2..4a9199a4473 100644
> --- a/target/ppc/translate.c
> +++ b/target/ppc/translate.c
> @@ -214,14 +214,15 @@ static inline bool is_ppe(const DisasContext *ctx)
>      return !!(ctx->flags & POWERPC_FLAG_PPE42);
>  }
>  
> +static inline MemOp ppc_code_endian(const DisasContext *ctx)
> +{
> +    return MO_BE ^ (ctx->le_mode * MO_BSWAP);
> +}

This was not super obvious to me, is this a common pattern?

Either way the behaviour is correct:

Reviewed-by: Anton Johansson <[email protected]>

Reply via email to