[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 06/17] target/ppc: convert xxspltib to vector operatio
From: |
Mark Cave-Ayland |
Subject: |
[Qemu-ppc] [PATCH 06/17] target/ppc: convert xxspltib to vector operations |
Date: |
Fri, 15 Feb 2019 10:00:47 +0000 |
From: Richard Henderson <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Acked-by: David Gibson <address@hidden>
---
target/ppc/translate/vsx-impl.inc.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/target/ppc/translate/vsx-impl.inc.c
b/target/ppc/translate/vsx-impl.inc.c
index 2576d81ac5..944fc0608a 100644
--- a/target/ppc/translate/vsx-impl.inc.c
+++ b/target/ppc/translate/vsx-impl.inc.c
@@ -1397,9 +1397,10 @@ static void gen_xxspltw(DisasContext *ctx)
static void gen_xxspltib(DisasContext *ctx)
{
- unsigned char uim8 = IMM8(ctx->opcode);
- TCGv_i64 vsr;
- if (xS(ctx->opcode) < 32) {
+ uint8_t uim8 = IMM8(ctx->opcode);
+ int rt = xT(ctx->opcode);
+
+ if (rt < 32) {
if (unlikely(!ctx->altivec_enabled)) {
gen_exception(ctx, POWERPC_EXCP_VPU);
return;
@@ -1410,11 +1411,7 @@ static void gen_xxspltib(DisasContext *ctx)
return;
}
}
- vsr = tcg_temp_new_i64();
- tcg_gen_movi_i64(vsr, pattern(uim8));
- set_cpu_vsrh(xT(ctx->opcode), vsr);
- set_cpu_vsrl(xT(ctx->opcode), vsr);
- tcg_temp_free_i64(vsr);
+ tcg_gen_gvec_dup8i(vsr_full_offset(rt), 16, 16, uim8);
}
static void gen_xxsldwi(DisasContext *ctx)
--
2.11.0
- [Qemu-ppc] [PATCH 00/17] target/ppc: convert instructions to use TCG vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 07/17] target/ppc: convert xxspltw to vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 02/17] target/ppc: convert vaddu[b, h, w, d] and vsubu[b, h, w, d] over to use vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 01/17] target/ppc: convert VMX logical instructions to use vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 05/17] target/ppc: convert VSX logical operations to vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 08/17] target/ppc: convert xxsel to vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 04/17] target/ppc: convert vsplt[bhw] to use vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 09/17] target/ppc: Pass integer to helper_mtvscr, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 03/17] target/ppc: convert vspltis[bhw] to use vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 06/17] target/ppc: convert xxspltib to vector operations,
Mark Cave-Ayland <=
- [Qemu-ppc] [PATCH 17/17] target/ppc: convert vmin* and vmax* to vector operations, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 10/17] target/ppc: Use helper_mtvscr for reset and gdb, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 12/17] target/ppc: Add helper_mfvscr, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 11/17] target/ppc: Remove vscr_nj and vscr_sat, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 13/17] target/ppc: Use mtvscr/mfvscr for vmstate, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 15/17] target/ppc: Split out VSCR_SAT to a vector field, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 14/17] target/ppc: Add set_vscr_sat, Mark Cave-Ayland, 2019/02/15
- [Qemu-ppc] [PATCH 16/17] target/ppc: convert vadd*s and vsub*s to vector operations, Mark Cave-Ayland, 2019/02/15
- Re: [Qemu-ppc] [PATCH 00/17] target/ppc: convert instructions to use TCG vector operations, David Gibson, 2019/02/17