diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2022-03-23 11:45:35 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2022-03-23 11:45:36 +0000 |
commit | e309ce90a23bef4f5210a8c49d53441144be293c (patch) | |
tree | 6d8e866bb92a345424707d15b415fd5296f654af | |
parent | 15ef89d2a1a7b93845a6b09c2ee8e1979f6eb30b (diff) | |
parent | 0f37cf2f71f764c5649e149c774172df7ab187c7 (diff) | |
download | qemu-e309ce90a23bef4f5210a8c49d53441144be293c.zip qemu-e309ce90a23bef4f5210a8c49d53441144be293c.tar.gz qemu-e309ce90a23bef4f5210a8c49d53441144be293c.tar.bz2 |
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>
-rw-r--r-- | .gitlab-ci.d/custom-runners.yml | 1 | ||||
-rw-r--r-- | .gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml (renamed from .gitlab-ci.d/custom-runners/ubuntu-20.40-aarch32.yml) | 0 | ||||
-rw-r--r-- | .mailmap | 6 | ||||
-rw-r--r-- | contrib/gitdm/aliases | 4 | ||||
-rw-r--r-- | docs/devel/index-api.rst | 15 | ||||
-rw-r--r-- | docs/devel/index-build.rst | 19 | ||||
-rw-r--r-- | docs/devel/index-internals.rst | 21 | ||||
-rw-r--r-- | docs/devel/index-process.rst | 17 | ||||
-rw-r--r-- | docs/devel/index-tcg.rst | 16 | ||||
-rw-r--r-- | docs/devel/index.rst | 46 | ||||
-rw-r--r-- | docs/devel/tcg-plugins.rst | 9 | ||||
-rw-r--r-- | docs/qemu_logo.pdf | bin | 9117 -> 0 bytes | |||
-rw-r--r-- | semihosting/config.c | 6 | ||||
-rw-r--r-- | target/i386/tcg/fpu_helper.c | 13 | ||||
-rw-r--r-- | tests/Makefile.include | 2 |
15 files changed, 129 insertions, 46 deletions
diff --git a/.gitlab-ci.d/custom-runners.yml b/.gitlab-ci.d/custom-runners.yml index 3e76a20..15aaccc 100644 --- a/.gitlab-ci.d/custom-runners.yml +++ b/.gitlab-ci.d/custom-runners.yml @@ -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' diff --git a/.gitlab-ci.d/custom-runners/ubuntu-20.40-aarch32.yml b/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml index 9c589bc..9c589bc 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-20.40-aarch32.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-20.04-aarch32.yml @@ -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> diff --git a/contrib/gitdm/aliases b/contrib/gitdm/aliases index 4792413..e26b00a 100644 --- a/contrib/gitdm/aliases +++ b/contrib/gitdm/aliases @@ -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> diff --git a/docs/devel/index-api.rst b/docs/devel/index-api.rst new file mode 100644 index 0000000..b749240 --- /dev/null +++ b/docs/devel/index-api.rst @@ -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 diff --git a/docs/devel/index-build.rst b/docs/devel/index-build.rst new file mode 100644 index 0000000..d96894f --- /dev/null +++ b/docs/devel/index-build.rst @@ -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 diff --git a/docs/devel/index-internals.rst b/docs/devel/index-internals.rst new file mode 100644 index 0000000..bb118b8 --- /dev/null +++ b/docs/devel/index-internals.rst @@ -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 diff --git a/docs/devel/index-process.rst b/docs/devel/index-process.rst new file mode 100644 index 0000000..314e9e9 --- /dev/null +++ b/docs/devel/index-process.rst @@ -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 diff --git a/docs/devel/index-tcg.rst b/docs/devel/index-tcg.rst new file mode 100644 index 0000000..3acbd95 --- /dev/null +++ b/docs/devel/index-tcg.rst @@ -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 diff --git a/docs/devel/index.rst b/docs/devel/index.rst index afd9375..a682070 100644 --- a/docs/devel/index.rst +++ b/docs/devel/index.rst @@ -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 diff --git a/docs/devel/tcg-plugins.rst b/docs/devel/tcg-plugins.rst index f93ef4f..a7cc44a 100644 --- a/docs/devel/tcg-plugins.rst +++ b/docs/devel/tcg-plugins.rst @@ -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 --------------- diff --git a/docs/qemu_logo.pdf b/docs/qemu_logo.pdf Binary files differdeleted file mode 100644 index 294cb7d..0000000 --- a/docs/qemu_logo.pdf +++ /dev/null diff --git a/semihosting/config.c b/semihosting/config.c index 137171b..50d8210 100644 --- a/semihosting/config.c +++ b/semihosting/config.c @@ -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; diff --git a/target/i386/tcg/fpu_helper.c b/target/i386/tcg/fpu_helper.c index cdd8e9f..ebf5e73 100644 --- a/target/i386/tcg/fpu_helper.c +++ b/target/i386/tcg/fpu_helper.c @@ -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) diff --git a/tests/Makefile.include b/tests/Makefile.include index b89018c..05c534e 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -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 |