mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
tcg: Add tcg_gen_gvec_andcs
Add tcg expander and helper functions for and-compliment vector with scalar operand. Signed-off-by: Nazar Kazakov <nazar.kazakov@codethink.co.uk> Message-Id: <20230428144757.57530-10-lawrence.hunter@codethink.co.uk> [rth: Split out of larger patch.] Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
31fe256d32
commit
4221aa4a88
4 changed files with 31 additions and 0 deletions
|
@ -2761,6 +2761,23 @@ void tcg_gen_gvec_andi(unsigned vece, uint32_t dofs, uint32_t aofs,
|
|||
tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, tmp, &gop_ands);
|
||||
}
|
||||
|
||||
void tcg_gen_gvec_andcs(unsigned vece, uint32_t dofs, uint32_t aofs,
|
||||
TCGv_i64 c, uint32_t oprsz, uint32_t maxsz)
|
||||
{
|
||||
static GVecGen2s g = {
|
||||
.fni8 = tcg_gen_andc_i64,
|
||||
.fniv = tcg_gen_andc_vec,
|
||||
.fno = gen_helper_gvec_andcs,
|
||||
.prefer_i64 = TCG_TARGET_REG_BITS == 64,
|
||||
.vece = MO_64
|
||||
};
|
||||
|
||||
TCGv_i64 tmp = tcg_temp_ebb_new_i64();
|
||||
tcg_gen_dup_i64(vece, tmp, c);
|
||||
tcg_gen_gvec_2s(dofs, aofs, oprsz, maxsz, c, &g);
|
||||
tcg_temp_free_i64(tmp);
|
||||
}
|
||||
|
||||
static const GVecGen2s gop_xors = {
|
||||
.fni8 = tcg_gen_xor_i64,
|
||||
.fniv = tcg_gen_xor_vec,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue