qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 5/6] target-ppc: add lxvb16x and lxvh8x


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 5/6] target-ppc: add lxvb16x and lxvh8x
Date: Wed, 10 Aug 2016 15:42:53 +0530
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

On 08/10/2016 02:51 PM, Nikunj A Dadhania wrote:
I can fix the BE case using following but not sure if that will be
correct !

        tcg_gen_qemu_ld_i64(xth, EA, ctx->mem_idx, MO_Q);
        gen_helper_bswap32x2(xth, xth);
        tcg_gen_addi_tl(EA, EA, 8);
        tcg_gen_qemu_ld_i64(xtl, EA, ctx->mem_idx, MO_Q);
        gen_helper_bswap32x2(xtl, xtl);

This cannot be correct, because it assumes a host-dependent byte ordering. You should be able to see different results depending on a BE or LE host.


__vector uint32_t vrt32;
uint32_t rb32[4] = {0x00010203, 0x20212223, 0x30313233, 0x40414243};
asm("lxvw4x %x0, 0, %1 \n\t" \
     : "=ws"(vrt32) : "r"(&rb32));
printf("VRT32 = "); vec_put_u32(vrt32);

Result On LE:
VRT32 = 40414243 30313233 20212223 00010203

Result On BE:
VRT32 = 03020100 23222120 33323130 43424140

Did you really recompile the test program for BE and LE, or did you just use a different command-line switch to qemu with the same executable image? I can't see how you could possibly get these results for BE.


r~



reply via email to

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