Commit 4c406ca7 authored by Anton Blanchard's avatar Anton Blanchard Committed by David Gibson
Browse files

target/ppc: Fix xxspltib



xxspltib raises a VMX or a VSX exception depending on the register
set it is operating on. We had a check, but it was backwards.

Fixes: f1132835 ("target-ppc: add xxspltib instruction")
Signed-off-by: default avatarAnton Blanchard <anton@ozlabs.org>
Message-Id: <20190509061713.69490488@kryten>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 7fa0ddc1
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1355,13 +1355,13 @@ static void gen_xxspltib(DisasContext *ctx)
    int rt = xT(ctx->opcode);

    if (rt < 32) {
        if (unlikely(!ctx->altivec_enabled)) {
            gen_exception(ctx, POWERPC_EXCP_VPU);
        if (unlikely(!ctx->vsx_enabled)) {
            gen_exception(ctx, POWERPC_EXCP_VSXU);
            return;
        }
    } else {
        if (unlikely(!ctx->vsx_enabled)) {
            gen_exception(ctx, POWERPC_EXCP_VSXU);
        if (unlikely(!ctx->altivec_enabled)) {
            gen_exception(ctx, POWERPC_EXCP_VPU);
            return;
        }
    }