mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 09:55:55 +00:00
tcg/ppc: Support vector dup2
This is only used for 32-bit hosts. Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
This commit is contained in:
parent
d9897efa1f
commit
597cf97892
|
@ -3102,6 +3102,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;
|
||||
|
@ -3480,6 +3488,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:
|
||||
|
|
Loading…
Reference in a new issue