[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 13/16] tcg/ppc: Support vector dup2
From: |
Aleksandar Markovic |
Subject: |
[Qemu-devel] [PATCH v5 13/16] tcg/ppc: Support vector dup2 |
Date: |
Sun, 23 Jun 2019 19:04:46 +0200 |
From: Richard Henderson <address@hidden>
This is only used for 32-bit hosts.
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Aleksandar Markovic <address@hidden>
---
tcg/ppc/tcg-target.inc.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c
index 3005c51..61732c1 100644
--- a/tcg/ppc/tcg-target.inc.c
+++ b/tcg/ppc/tcg-target.inc.c
@@ -3104,6 +3104,14 @@ static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,
}
break;
+ case INDEX_op_dup2_vec:
+ assert(TCG_TARGET_REG_BITS == 32);
+ /* With inputs a1 = xLxx, a2 = xHxx */
+ tcg_out32(s, VMRGHW | VRT(a0) | VRA(a2) | VRB(a1)); /* a0 = xxHL */
+ tcg_out_vsldoi(s, TCG_VEC_TMP1, a0, a0, 8); /* tmp = HLxx */
+ tcg_out_vsldoi(s, a0, a0, TCG_VEC_TMP1, 8); /* a0 = HLHL */
+ return;
+
case INDEX_op_ppc_mrgh_vec:
insn = mrgh_op[vece];
break;
@@ -3482,6 +3490,7 @@ static const TCGTargetOpDef *tcg_target_op_def(TCGOpcode
op)
case INDEX_op_ppc_mulou_vec:
case INDEX_op_ppc_pkum_vec:
case INDEX_op_ppc_rotl_vec:
+ case INDEX_op_dup2_vec:
return &v_v_v;
case INDEX_op_not_vec:
case INDEX_op_dup_vec:
--
2.7.4
- [Qemu-devel] [PATCH v5 09/16] tcg/ppc: Prepare case for vector multiply, (continued)
- [Qemu-devel] [PATCH v5 09/16] tcg/ppc: Prepare case for vector multiply, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 07/16] tcg/ppc: Add support for vector add/subtract, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 10/16] tcg/ppc: Add empty file tcg-target.opc.h, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 05/16] tcg/ppc: Add support for load/store/logic/comparison, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 08/16] tcg/ppc: Add support for vector saturated add/subtract, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 01/16] tcg/ppc: Introduce Altivec registers, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 14/16] tcg/ppc: Update vector support to v2.06, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 11/16] tcg/ppc: Support vector shift by immediate, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 02/16] tcg/ppc: Introduce flag have_isa_altivec, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 15/16] tcg/ppc: Update vector support to v2.07, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 13/16] tcg/ppc: Support vector dup2,
Aleksandar Markovic <=
- [Qemu-devel] [PATCH v5 12/16] tcg/ppc: Support vector multiply, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 16/16] tcg/ppc: Update vector support to v3.00, Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 04/16] tcg/ppc: Introduce macros VRT(), VRA(), VRB(), VRC(), Aleksandar Markovic, 2019/06/23
- [Qemu-devel] [PATCH v5 03/16] tcg/ppc: Introduce macro VX4(), Aleksandar Markovic, 2019/06/23
- Re: [Qemu-devel] [PATCH v5 00/16] tcg/ppc: Add vector opcodes, no-reply, 2019/06/23