mirror of
https://github.com/mii443/qemu.git
synced 2025-08-23 15:48:20 +00:00
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:
@ -16,4 +16,5 @@ variables:
|
|||||||
include:
|
include:
|
||||||
- local: '/.gitlab-ci.d/custom-runners/ubuntu-20.04-s390x.yml'
|
- 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-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'
|
- local: '/.gitlab-ci.d/custom-runners/centos-stream-8-x86_64.yml'
|
||||||
|
6
.mailmap
6
.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>
|
malc <av1474@comtv.ru> malc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
|
||||||
|
|
||||||
# Corrupted Author fields
|
# 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>
|
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>
|
Nick Hudson <hnick@vmware.com> hnick@vmware.com <hnick@vmware.com>
|
||||||
|
|
||||||
# There is also a:
|
# 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
|
# Also list preferred name forms where people have changed their
|
||||||
# git author config, or had utf8/latin1 encoding issues.
|
# git author config, or had utf8/latin1 encoding issues.
|
||||||
Aaron Lindsay <aaron@os.amperecomputing.com>
|
Aaron Lindsay <aaron@os.amperecomputing.com>
|
||||||
|
Aaron Larson <alarson@ddci.com>
|
||||||
Alexey Gerasimenko <x1917x@gmail.com>
|
Alexey Gerasimenko <x1917x@gmail.com>
|
||||||
Alex Chen <alex.chen@huawei.com>
|
Alex Chen <alex.chen@huawei.com>
|
||||||
Alex Ivanov <void@aleksoft.net>
|
Alex Ivanov <void@aleksoft.net>
|
||||||
@ -144,6 +149,7 @@ Pan Nengyuan <pannengyuan@huawei.com>
|
|||||||
Pavel Dovgaluk <dovgaluk@ispras.ru>
|
Pavel Dovgaluk <dovgaluk@ispras.ru>
|
||||||
Pavel Dovgaluk <pavel.dovgaluk@gmail.com>
|
Pavel Dovgaluk <pavel.dovgaluk@gmail.com>
|
||||||
Pavel Dovgaluk <Pavel.Dovgaluk@ispras.ru>
|
Pavel Dovgaluk <Pavel.Dovgaluk@ispras.ru>
|
||||||
|
Peter Chubb <peter.chubb@nicta.com.au>
|
||||||
Peter Crosthwaite <crosthwaite.peter@gmail.com>
|
Peter Crosthwaite <crosthwaite.peter@gmail.com>
|
||||||
Peter Crosthwaite <peter.crosthwaite@petalogix.com>
|
Peter Crosthwaite <peter.crosthwaite@petalogix.com>
|
||||||
Peter Crosthwaite <peter.crosthwaite@xilinx.com>
|
Peter Crosthwaite <peter.crosthwaite@xilinx.com>
|
||||||
|
@ -34,8 +34,10 @@ malc@c046a42c-6fe2-441c-8c8c-71466251a162 av1474@comtv.ru
|
|||||||
# canonical emails
|
# canonical emails
|
||||||
liq3ea@163.com liq3ea@gmail.com
|
liq3ea@163.com liq3ea@gmail.com
|
||||||
|
|
||||||
# some broken tags
|
# some broken DCO tags
|
||||||
yuval.shaia.ml.gmail.com yuval.shaia.ml@gmail.com
|
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:
|
# There is also a:
|
||||||
# (no author) <(no author)@c046a42c-6fe2-441c-8c8c-71466251a162>
|
# (no author) <(no author)@c046a42c-6fe2-441c-8c8c-71466251a162>
|
||||||
|
15
docs/devel/index-api.rst
Normal file
15
docs/devel/index-api.rst
Normal 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
|
19
docs/devel/index-build.rst
Normal file
19
docs/devel/index-build.rst
Normal 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
|
21
docs/devel/index-internals.rst
Normal file
21
docs/devel/index-internals.rst
Normal 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
|
17
docs/devel/index-process.rst
Normal file
17
docs/devel/index-process.rst
Normal 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
16
docs/devel/index-tcg.rst
Normal 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
|
@ -7,44 +7,12 @@ You only need to read it if you are interested in reading or
|
|||||||
modifying QEMU's source code.
|
modifying QEMU's source code.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 1
|
||||||
:includehidden:
|
:includehidden:
|
||||||
|
|
||||||
code-of-conduct
|
|
||||||
conflict-resolution
|
index-process
|
||||||
build-system
|
index-build
|
||||||
style
|
index-api
|
||||||
kconfig
|
index-internals
|
||||||
testing
|
index-tcg
|
||||||
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
|
|
||||||
|
@ -27,13 +27,18 @@ Once built a program can be run with multiple plugins loaded each with
|
|||||||
their own arguments::
|
their own arguments::
|
||||||
|
|
||||||
$QEMU $OTHER_QEMU_ARGS \
|
$QEMU $OTHER_QEMU_ARGS \
|
||||||
-plugin tests/plugin/libhowvec.so,inline=on,count=hint \
|
-plugin contrib/plugin/libhowvec.so,inline=on,count=hint \
|
||||||
-plugin tests/plugin/libhotblocks.so
|
-plugin contrib/plugin/libhotblocks.so
|
||||||
|
|
||||||
Arguments are plugin specific and can be used to modify their
|
Arguments are plugin specific and can be used to modify their
|
||||||
behaviour. In this case the howvec plugin is being asked to use inline
|
behaviour. In this case the howvec plugin is being asked to use inline
|
||||||
ops to count and break down the hint instructions by type.
|
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
|
Writing plugins
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
Binary file not shown.
@ -51,7 +51,7 @@ typedef struct SemihostingConfig {
|
|||||||
bool enabled;
|
bool enabled;
|
||||||
SemihostingTarget target;
|
SemihostingTarget target;
|
||||||
Chardev *chardev;
|
Chardev *chardev;
|
||||||
const char **argv;
|
char **argv;
|
||||||
int argc;
|
int argc;
|
||||||
const char *cmdline; /* concatenated argv */
|
const char *cmdline; /* concatenated argv */
|
||||||
} SemihostingConfig;
|
} SemihostingConfig;
|
||||||
@ -98,8 +98,8 @@ static int add_semihosting_arg(void *opaque,
|
|||||||
if (strcmp(name, "arg") == 0) {
|
if (strcmp(name, "arg") == 0) {
|
||||||
s->argc++;
|
s->argc++;
|
||||||
/* one extra element as g_strjoinv() expects NULL-terminated array */
|
/* one extra element as g_strjoinv() expects NULL-terminated array */
|
||||||
s->argv = g_realloc(s->argv, (s->argc + 1) * sizeof(void *));
|
s->argv = g_renew(char *, s->argv, s->argc + 1);
|
||||||
s->argv[s->argc - 1] = val;
|
s->argv[s->argc - 1] = g_strdup(val);
|
||||||
s->argv[s->argc] = NULL;
|
s->argv[s->argc] = NULL;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -237,24 +237,37 @@ void helper_fldl_ST0(CPUX86State *env, uint64_t val)
|
|||||||
merge_exception_flags(env, old_flags);
|
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)
|
void helper_fildl_ST0(CPUX86State *env, int32_t val)
|
||||||
{
|
{
|
||||||
int new_fpstt;
|
int new_fpstt;
|
||||||
|
FloatX80RoundPrec old = tmp_maximise_precision(&env->fp_status);
|
||||||
|
|
||||||
new_fpstt = (env->fpstt - 1) & 7;
|
new_fpstt = (env->fpstt - 1) & 7;
|
||||||
env->fpregs[new_fpstt].d = int32_to_floatx80(val, &env->fp_status);
|
env->fpregs[new_fpstt].d = int32_to_floatx80(val, &env->fp_status);
|
||||||
env->fpstt = new_fpstt;
|
env->fpstt = new_fpstt;
|
||||||
env->fptags[new_fpstt] = 0; /* validate stack entry */
|
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)
|
void helper_fildll_ST0(CPUX86State *env, int64_t val)
|
||||||
{
|
{
|
||||||
int new_fpstt;
|
int new_fpstt;
|
||||||
|
FloatX80RoundPrec old = tmp_maximise_precision(&env->fp_status);
|
||||||
|
|
||||||
new_fpstt = (env->fpstt - 1) & 7;
|
new_fpstt = (env->fpstt - 1) & 7;
|
||||||
env->fpregs[new_fpstt].d = int64_to_floatx80(val, &env->fp_status);
|
env->fpregs[new_fpstt].d = int64_to_floatx80(val, &env->fp_status);
|
||||||
env->fpstt = new_fpstt;
|
env->fpstt = new_fpstt;
|
||||||
env->fptags[new_fpstt] = 0; /* validate stack entry */
|
env->fptags[new_fpstt] = 0; /* validate stack entry */
|
||||||
|
|
||||||
|
set_floatx80_rounding_precision(old, &env->fp_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t helper_fsts_ST0(CPUX86State *env)
|
uint32_t helper_fsts_ST0(CPUX86State *env)
|
||||||
|
@ -155,6 +155,6 @@ check-build: run-ninja
|
|||||||
check-clean:
|
check-clean:
|
||||||
rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
|
rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
|
||||||
|
|
||||||
clean: check-clean
|
clean: check-clean clean-tcg
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
Reference in New Issue
Block a user