Various fixes for 7.0

- make clean also cleans tcg tests
   - fix rounding error in i386 fildl[l]
   - more clean-ups to gitdm/mailmap metadata
   - apply some organisation to docs/devel
   - clean-up semihosting argv handling
   - add custom runner for aarch32
   - remove old qemu_logo.pdf
   - document QEMU_PLUGIN env var
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmI6+T8ACgkQ+9DbCVqe
 KkTt1wgAh+OS1tNCKj75lYKAXb0ZakOMijDHwHllZ3N1zN4QlhnAaJJ76MANwWRj
 uRGzGpQOsScIvLPO+z7pcYpdPlzQIO+Lm9oHLN91pYrp//8Qb9qYJTO1DVrraA9G
 +wvgulJPxp3hz/kQw02WvoudrgyGezKDgihgTzoGVenJASbPhaIvp8WTHMIbAcie
 lRbQ/HNKz4SJSh6VSpHlhgc5qh+34gHhVdp2rugEWvVp+a1ZOh8YStlAeIQg/DZ9
 8DpfCRcTd0pds7MNICR0DKfjabsTupeDEgxyitoSq2Ki8vRnEvDi8/DGNsESGjxx
 urSutcpK69bnzTHmd5Sn+TkAiYrR+w==
 =epEk
 -----END PGP SIGNATURE-----

Merge tag 'pull-fixes-for-7.0-230322-1' of https://github.com/stsquad/qemu into staging

Various fixes for 7.0

  - make clean also cleans tcg tests
  - fix rounding error in i386 fildl[l]
  - more clean-ups to gitdm/mailmap metadata
  - apply some organisation to docs/devel
  - clean-up semihosting argv handling
  - add custom runner for aarch32
  - remove old qemu_logo.pdf
  - document QEMU_PLUGIN env var

# gpg: Signature made Wed 23 Mar 2022 10:41:03 GMT
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full]
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* tag 'pull-fixes-for-7.0-230322-1' of https://github.com/stsquad/qemu:
  docs/tcg-plugins: document QEMU_PLUGIN behaviour
  docs: remove qemu_logo.pdf
  gitlab: include new aarch32 job in custom-runners
  semihosting: clean up handling of expanded argv
  docs/devel: try and impose some organisation
  mailmap/gitdm: more fixes for bad tags and authors
  target/i386: force maximum rounding precision for fildl[l]
  tests/Makefile.include: Let "make clean" remove the TCG tests, too

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2022-03-23 11:45:35 +00:00
commit e309ce90a2
15 changed files with 129 additions and 46 deletions

View File

@ -16,4 +16,5 @@ variables:
include:
- local: '/.gitlab-ci.d/custom-runners/ubuntu-20.04-s390x.yml'
- local: '/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch64.yml'
- local: '/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml'
- local: '/.gitlab-ci.d/custom-runners/centos-stream-8-x86_64.yml'

View File

@ -28,7 +28,11 @@ Thiemo Seufer <ths@networkno.de> ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
malc <av1474@comtv.ru> malc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
# Corrupted Author fields
Aaron Larson <alarson@ddci.com> alarson@ddci.com
Andreas Färber <andreas.faerber@web.de> Andreas Färber <andreas.faerber>
Jason Wang <jasowang@redhat.com> Jason Wang <jasowang>
Marek Dolata <mkdolata@us.ibm.com> mkdolata@us.ibm.com <mkdolata@us.ibm.com>
Michael Ellerman <mpe@ellerman.id.au> michael@ozlabs.org <michael@ozlabs.org>
Nick Hudson <hnick@vmware.com> hnick@vmware.com <hnick@vmware.com>
# There is also a:
@ -70,6 +74,7 @@ Yongbok Kim <yongbok.kim@mips.com> <yongbok.kim@imgtec.com>
# Also list preferred name forms where people have changed their
# git author config, or had utf8/latin1 encoding issues.
Aaron Lindsay <aaron@os.amperecomputing.com>
Aaron Larson <alarson@ddci.com>
Alexey Gerasimenko <x1917x@gmail.com>
Alex Chen <alex.chen@huawei.com>
Alex Ivanov <void@aleksoft.net>
@ -144,6 +149,7 @@ Pan Nengyuan <pannengyuan@huawei.com>
Pavel Dovgaluk <dovgaluk@ispras.ru>
Pavel Dovgaluk <pavel.dovgaluk@gmail.com>
Pavel Dovgaluk <Pavel.Dovgaluk@ispras.ru>
Peter Chubb <peter.chubb@nicta.com.au>
Peter Crosthwaite <crosthwaite.peter@gmail.com>
Peter Crosthwaite <peter.crosthwaite@petalogix.com>
Peter Crosthwaite <peter.crosthwaite@xilinx.com>

View File

@ -34,8 +34,10 @@ malc@c046a42c-6fe2-441c-8c8c-71466251a162 av1474@comtv.ru
# canonical emails
liq3ea@163.com liq3ea@gmail.com
# some broken tags
# some broken DCO tags
yuval.shaia.ml.gmail.com yuval.shaia.ml@gmail.com
jasowang jasowang@redhat.com
nicta.com.au peter.chubb@nicta.com.au
# There is also a:
# (no author) <(no author)@c046a42c-6fe2-441c-8c8c-71466251a162>

15
docs/devel/index-api.rst Normal file
View File

@ -0,0 +1,15 @@
Internal QEMU APIs
------------------
Details about how QEMU's various internal APIs. Most of these are
generated from in-code annotations to function prototypes.
.. toctree::
:maxdepth: 2
:includehidden:
bitops
loads-stores
memory
modules
ui

View File

@ -0,0 +1,19 @@
QEMU Build and Test System
--------------------------
Details about how QEMU's build system works and how it is integrated
into our testing infrastructure. You will need to understand some of
the basics if you are adding new files and targets to the build.
.. toctree::
:maxdepth: 2
:includehidden:
build-system
kconfig
testing
qtest
ci
qapi-code-gen
fuzzing
control-flow-integrity

View File

@ -0,0 +1,21 @@
Internal Subsystem Information
------------------------------
Details about QEMU's various subsystems including how to add features to them.
.. toctree::
:maxdepth: 2
:includehidden:
qom
atomics
block-coroutine-wrapper
clocks
ebpf_rss
migration
multi-process
reset
s390-dasd-ipl
tracing
vfio-migration
writing-monitor-commands

View File

@ -0,0 +1,17 @@
QEMU Community Processes
------------------------
Notes about how to interact with the community and how and where to submit patches.
.. toctree::
:maxdepth: 2
:includehidden:
code-of-conduct
conflict-resolution
style
submitting-a-patch
trivial-patches
stable-process
submitting-a-pull-request
secure-coding-practices

16
docs/devel/index-tcg.rst Normal file
View File

@ -0,0 +1,16 @@
TCG Emulation
-------------
Details about QEMU's Tiny Code Generator and the infrastructure
associated with emulation. You do not need to worry about this if you
are only implementing things for HW accelerated hypervisors.
.. toctree::
:maxdepth: 2
:includehidden:
tcg
decodetree
multi-thread-tcg
tcg-icount
tcg-plugins

View File

@ -7,44 +7,12 @@ You only need to read it if you are interested in reading or
modifying QEMU's source code.
.. toctree::
:maxdepth: 2
:maxdepth: 1
:includehidden:
code-of-conduct
conflict-resolution
build-system
style
kconfig
testing
fuzzing
control-flow-integrity
loads-stores
memory
migration
atomics
stable-process
ci
qtest
decodetree
secure-coding-practices
tcg
tcg-icount
tracing
multi-thread-tcg
tcg-plugins
bitops
ui
reset
s390-dasd-ipl
clocks
qom
modules
block-coroutine-wrapper
multi-process
ebpf_rss
vfio-migration
qapi-code-gen
writing-monitor-commands
trivial-patches
submitting-a-patch
submitting-a-pull-request
index-process
index-build
index-api
index-internals
index-tcg

View File

@ -27,13 +27,18 @@ Once built a program can be run with multiple plugins loaded each with
their own arguments::
$QEMU $OTHER_QEMU_ARGS \
-plugin tests/plugin/libhowvec.so,inline=on,count=hint \
-plugin tests/plugin/libhotblocks.so
-plugin contrib/plugin/libhowvec.so,inline=on,count=hint \
-plugin contrib/plugin/libhotblocks.so
Arguments are plugin specific and can be used to modify their
behaviour. In this case the howvec plugin is being asked to use inline
ops to count and break down the hint instructions by type.
Linux user-mode emulation also evaluates the environment variable
``QEMU_PLUGIN``::
QEMU_PLUGIN="file=contrib/plugins/libhowvec.so,inline=on,count=hint" $QEMU
Writing plugins
---------------

Binary file not shown.

View File

@ -51,7 +51,7 @@ typedef struct SemihostingConfig {
bool enabled;
SemihostingTarget target;
Chardev *chardev;
const char **argv;
char **argv;
int argc;
const char *cmdline; /* concatenated argv */
} SemihostingConfig;
@ -98,8 +98,8 @@ static int add_semihosting_arg(void *opaque,
if (strcmp(name, "arg") == 0) {
s->argc++;
/* one extra element as g_strjoinv() expects NULL-terminated array */
s->argv = g_realloc(s->argv, (s->argc + 1) * sizeof(void *));
s->argv[s->argc - 1] = val;
s->argv = g_renew(char *, s->argv, s->argc + 1);
s->argv[s->argc - 1] = g_strdup(val);
s->argv[s->argc] = NULL;
}
return 0;

View File

@ -237,24 +237,37 @@ void helper_fldl_ST0(CPUX86State *env, uint64_t val)
merge_exception_flags(env, old_flags);
}
static FloatX80RoundPrec tmp_maximise_precision(float_status *st)
{
FloatX80RoundPrec old = get_floatx80_rounding_precision(st);
set_floatx80_rounding_precision(floatx80_precision_x, st);
return old;
}
void helper_fildl_ST0(CPUX86State *env, int32_t val)
{
int new_fpstt;
FloatX80RoundPrec old = tmp_maximise_precision(&env->fp_status);
new_fpstt = (env->fpstt - 1) & 7;
env->fpregs[new_fpstt].d = int32_to_floatx80(val, &env->fp_status);
env->fpstt = new_fpstt;
env->fptags[new_fpstt] = 0; /* validate stack entry */
set_floatx80_rounding_precision(old, &env->fp_status);
}
void helper_fildll_ST0(CPUX86State *env, int64_t val)
{
int new_fpstt;
FloatX80RoundPrec old = tmp_maximise_precision(&env->fp_status);
new_fpstt = (env->fpstt - 1) & 7;
env->fpregs[new_fpstt].d = int64_to_floatx80(val, &env->fp_status);
env->fpstt = new_fpstt;
env->fptags[new_fpstt] = 0; /* validate stack entry */
set_floatx80_rounding_precision(old, &env->fp_status);
}
uint32_t helper_fsts_ST0(CPUX86State *env)

View File

@ -155,6 +155,6 @@ check-build: run-ninja
check-clean:
rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
clean: check-clean
clean: check-clean clean-tcg
endif