appease coverity vs extract2

update docs for ctpop opcodes
 tcg/s390x build fix for gcc11
 -----BEGIN PGP SIGNATURE-----
 
 iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmGM+PAdHHJpY2hhcmQu
 aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV+LFgf/W4xbAU2UQHMazs4L
 e/mNKUxiCT2ji2ZxkmZRaV4Cv7zwNoMdNEY/ktU5CX4DazXY9lieqqDfoIBDLT/n
 MT5RtbQYL9TTgIKc1ZREHYYNa1ESr5dRArBz61aoxYC+3VYsvLnY4/IfXXg+NEeQ
 0KzWbxnOaSuNebo3QT+uhvM8RsWsN2xSVOmfg1sn6BjRwG11+GCI9CuZZARNk1po
 LivJY9s/1Sh3OBBGuZXC7BwyGAq41vHJLS+Nm9prrlpTkBXITBiC/acsGVM2zw6c
 YaiNBSP/OAd1RYFVDqlQ5A3RioL5tWcvvqDNd8in95bMovzKFrJ8gGhVOARFUwD5
 ahu/vw==
 =bBWl
 -----END PGP SIGNATURE-----

Merge tag 'pull-tcg-20211111' of https://gitlab.com/rth7680/qemu into staging

appease coverity vs extract2
update docs for ctpop opcodes
tcg/s390x build fix for gcc11

# gpg: Signature made Thu 11 Nov 2021 12:05:20 PM CET
# gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg:                issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [ultimate]

* tag 'pull-tcg-20211111' of https://gitlab.com/rth7680/qemu:
  tcg/s390x: Fix tcg_out_vec_op argument type
  tcg: Document ctpop opcodes
  tcg: Remove TCI experimental status
  tcg/optimize: Add an extra cast to fold_extract2

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2021-11-11 12:07:24 +01:00
commit 70f872ca91
7 changed files with 19 additions and 11 deletions

View File

@ -54,10 +54,12 @@ Those hosts are officially supported, with various accelerators:
* - x86
- hax, hvf (64 bit only), kvm, nvmm, tcg, whpx (64 bit only), xen
Other host architectures are not supported. It is possible to build QEMU on an
unsupported host architecture using the configure ``--enable-tcg-interpreter``
option to enable the experimental TCI support, but note that this is very slow
and is not recommended.
Other host architectures are not supported. It is possible to build QEMU system
emulation on an unsupported host architecture using the configure
``--enable-tcg-interpreter`` option to enable the TCI support, but note that
this is very slow and is not recommended for normal use. QEMU user emulation
requires host-specific support for signal handling, therefore TCI won't help
on unsupported host architectures.
Non-supported architectures may be removed in the future following the
:ref:`deprecation process<Deprecated features>`.

View File

@ -335,7 +335,7 @@ tcg_arch = config_host['ARCH']
if not get_option('tcg').disabled()
if cpu not in supported_cpus
if get_option('tcg_interpreter')
warning('Unsupported CPU @0@, will use TCG with TCI (experimental and slow)'.format(cpu))
warning('Unsupported CPU @0@, will use TCG with TCI (slow)'.format(cpu))
else
error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
endif
@ -3290,7 +3290,7 @@ endif
summary_info += {'TCG support': config_all.has_key('CONFIG_TCG')}
if config_all.has_key('CONFIG_TCG')
if get_option('tcg_interpreter')
summary_info += {'TCG backend': 'TCI (TCG with bytecode interpreter, experimental and slow)'}
summary_info += {'TCG backend': 'TCI (TCG with bytecode interpreter, slow)'}
else
summary_info += {'TCG backend': 'native (@0@)'.format(cpu)}
endif

View File

@ -59,7 +59,7 @@ option('xen_pci_passthrough', type: 'feature', value: 'auto',
option('tcg', type: 'feature', value: 'auto',
description: 'TCG support')
option('tcg_interpreter', type: 'boolean', value: false,
description: 'TCG with bytecode interpreter (experimental and slow)')
description: 'TCG with bytecode interpreter (slow)')
option('cfi', type: 'boolean', value: 'false',
description: 'Control-Flow Integrity (CFI)')
option('cfi_debug', type: 'boolean', value: 'false',

View File

@ -13,8 +13,7 @@ meson_options_help() {
printf "%s\n" ' jemalloc/system/tcmalloc)'
printf "%s\n" ' --enable-slirp[=CHOICE] Whether and how to find the slirp library'
printf "%s\n" ' (choices: auto/disabled/enabled/internal/system)'
printf "%s\n" ' --enable-tcg-interpreter TCG with bytecode interpreter (experimental and'
printf "%s\n" ' slow)'
printf "%s\n" ' --enable-tcg-interpreter TCG with bytecode interpreter (slow)'
printf "%s\n" ' --enable-trace-backends=CHOICE'
printf "%s\n" ' Set available tracing backends [log] (choices:'
printf "%s\n" ' dtrace/ftrace/log/nop/simple/syslog/ust)'

View File

@ -254,6 +254,12 @@ t0 = t1 ? clz(t1) : t2
t0 = t1 ? ctz(t1) : t2
* ctpop_i32/i64 t0, t1
t0 = number of bits set in t1
With "ctpop" short for "count population", matching
the function name used in include/qemu/host-utils.h.
********* Shifts/Rotates
* shl_i32/i64 t0, t1, t2

View File

@ -1365,7 +1365,7 @@ static bool fold_extract2(OptContext *ctx, TCGOp *op)
v2 <<= 64 - shr;
} else {
v1 = (uint32_t)v1 >> shr;
v2 = (int32_t)v2 << (32 - shr);
v2 = (uint64_t)((int32_t)v2 << (32 - shr));
}
return tcg_opt_gen_movi(ctx, op, op->args[0], v1 | v2);
}

View File

@ -2699,7 +2699,8 @@ static void tcg_out_dupi_vec(TCGContext *s, TCGType type, unsigned vece,
static void tcg_out_vec_op(TCGContext *s, TCGOpcode opc,
unsigned vecl, unsigned vece,
const TCGArg *args, const int *const_args)
const TCGArg args[TCG_MAX_OP_ARGS],
const int const_args[TCG_MAX_OP_ARGS])
{
TCGType type = vecl + TCG_TYPE_V64;
TCGArg a0 = args[0], a1 = args[1], a2 = args[2];