qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 00/34] tcg, target/ppc vector improvements


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 00/34] tcg, target/ppc vector improvements
Date: Tue, 18 Dec 2018 07:07:53 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1

On 12/18/18 6:51 AM, Mark Cave-Ayland wrote:
> On 18/12/2018 09:49, Mark Cave-Ayland wrote:
> 
>> A quick bisection suggests that there could be 2 separate issues related to 
>> the
>> implementation of splat:
>>
>> Patch "target/ppc: convert vspltis[bhw] to use vector operations" causes a 
>> black
>> border to appear around the OS X splash screen
>> (https://www.ilande.co.uk/tmp/qemu/badapple1.png) which may suggest an
>> overflow/alignment issue.
> 
> This one appears to be a sign extension issue - if I make use of the same 
> technique
> used by the previous helper then this problem goes away. Below is my 
> experimental
> diff to be squashed into "target/ppc: convert vspltis[bhw] to use vector 
> operations":
> 
> diff --git a/target/ppc/translate/vmx-impl.inc.c 
> b/target/ppc/translate/vmx-impl.inc.c
> index be638cdb1a..6cd25c8dc6 100644
> --- a/target/ppc/translate/vmx-impl.inc.c
> +++ b/target/ppc/translate/vmx-impl.inc.c
> @@ -723,12 +723,12 @@ GEN_VXRFORM_DUAL(vcmpgtfp, PPC_ALTIVEC, PPC_NONE, \
>  #define GEN_VXFORM_DUPI(name, tcg_op, opc2, opc3)                       \
>  static void glue(gen_, name)(DisasContext *ctx)                         \
>      {                                                                   \
> -        int simm;                                                       \
> +        int8_t simm; 

This shouldn't matter.
                                                   \
>          if (unlikely(!ctx->altivec_enabled)) {                          \
>              gen_exception(ctx, POWERPC_EXCP_VPU);                       \
>              return;                                                     \
>          }                                                               \
> -        simm = SIMM5(ctx->opcode);                                      \
> +        simm = (int8_t)(SIMM5(ctx->opcode) << 3) >> 3;                  \

This suggests that SIMM5 should be using sextract32.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]