aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2022-03-23 11:45:35 +0000
committerPeter Maydell <peter.maydell@linaro.org>2022-03-23 11:45:36 +0000
commite309ce90a23bef4f5210a8c49d53441144be293c (patch)
tree6d8e866bb92a345424707d15b415fd5296f654af
parent15ef89d2a1a7b93845a6b09c2ee8e1979f6eb30b (diff)
parent0f37cf2f71f764c5649e149c774172df7ab187c7 (diff)
downloadqemu-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.yml1
-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--.mailmap6
-rw-r--r--contrib/gitdm/aliases4
-rw-r--r--docs/devel/index-api.rst15
-rw-r--r--docs/devel/index-build.rst19
-rw-r--r--docs/devel/index-internals.rst21
-rw-r--r--docs/devel/index-process.rst17
-rw-r--r--docs/devel/index-tcg.rst16
-rw-r--r--docs/devel/index.rst46
-rw-r--r--docs/devel/tcg-plugins.rst9
-rw-r--r--docs/qemu_logo.pdfbin9117 -> 0 bytes
-rw-r--r--semihosting/config.c6
-rw-r--r--target/i386/tcg/fpu_helper.c13
-rw-r--r--tests/Makefile.include2
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
diff --git a/.mailmap b/.mailmap
index 5113f55..09dcd8c 100644
--- a/.mailmap
+++ b/.mailmap
@@ -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
deleted file mode 100644
index 294cb7d..0000000
--- a/docs/qemu_logo.pdf
+++ /dev/null
Binary files differ
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