Message ID | 20190507004811.29968-2-anton@ozlabs.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/9] target/ppc: Fix xvxsigdp | expand |
On Tue, May 07, 2019 at 10:48:04AM +1000, Anton Blanchard wrote: > 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: f113283525a4 ("target-ppc: add xxspltib instruction") > Signed-off-by: Anton Blanchard <anton@ozlabs.org> > --- > target/ppc/translate/vsx-impl.inc.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/target/ppc/translate/vsx-impl.inc.c b/target/ppc/translate/vsx-impl.inc.c > index 4d8ca7cf32..d050cc03ed 100644 > --- a/target/ppc/translate/vsx-impl.inc.c > +++ b/target/ppc/translate/vsx-impl.inc.c > @@ -1355,16 +1355,17 @@ 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; > } > } > + printf("XT %x IMM8 %x\n", rt, uim8); Looks like you have some leftover debugging here. > tcg_gen_gvec_dup8i(vsr_full_offset(rt), 16, 16, uim8); > } >
diff --git a/target/ppc/translate/vsx-impl.inc.c b/target/ppc/translate/vsx-impl.inc.c index 4d8ca7cf32..d050cc03ed 100644 --- a/target/ppc/translate/vsx-impl.inc.c +++ b/target/ppc/translate/vsx-impl.inc.c @@ -1355,16 +1355,17 @@ 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; } } + printf("XT %x IMM8 %x\n", rt, uim8); tcg_gen_gvec_dup8i(vsr_full_offset(rt), 16, 16, uim8); }
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: f113283525a4 ("target-ppc: add xxspltib instruction") Signed-off-by: Anton Blanchard <anton@ozlabs.org> --- target/ppc/translate/vsx-impl.inc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)