Philippe Mathieu-Daudé and Thomas Huth
4c44a98051
target/mips: Prefer fast cpu_env() over slower CPU QOM cast macro
...
Mechanical patch produced running the command documented
in scripts/coccinelle/cpu_env.cocci_template header.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20240129164514.73104-19-philmd@linaro.org >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2024-03-12 12:04:24 +01:00
Philippe Mathieu-Daudé and Thomas Huth
348802b526
target: Replace CPU_GET_CLASS(cpu -> obj) in cpu_reset_hold() handler
...
Since CPU() macro is a simple cast, the following are equivalent:
Object *obj;
CPUState *cs = CPU(obj)
In order to ease static analysis when running
scripts/coccinelle/cpu_env.cocci from the previous commit,
replace:
- CPU_GET_CLASS(cpu);
+ CPU_GET_CLASS(obj);
Most code use the 'cs' variable name for CPUState handle.
Replace few 's' -> 'cs' to unify cpu_reset_hold() style.
No logical change in this patch.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Acked-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20240129164514.73104-7-philmd@linaro.org >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2024-03-12 11:46:16 +01:00
Philippe Mathieu-Daudé
747448d11a
target/mips: Remove the unused DisasContext::saar field
...
DisasContext::saar is not used, remove it.
Reported-by: Paolo Bonzini <pbonzini@redhat.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240209090513.9401-11-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
fa82742621
target/mips: Remove CPUMIPSState::CP0_SAARI field
...
Remove the unused CP0_SAARI register.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240209090513.9401-10-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
ee58fddcbb
target/mips: Remove helpers accessing SAARI register
...
DisasContext::saar boolean is never set, so this code
is not reachable. Remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240209090513.9401-9-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
5235993f98
target/mips: Remove CPUMIPSState::CP0_SAAR[2] field
...
Remove the unused CP0_SAAR[2] registers.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240209090513.9401-8-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
addd0c2874
target/mips: Remove unused mips_def_t::SAARP field
...
The SAARP field added in commit 5fb2dcd179 ("target/mips: Provide
R/W access to SAARI and SAAR CP0 registers") has never been used,
remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240215080629.51190-1-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
c2bb8e1bcc
target/mips: Remove CPUMIPSState::saarp field
...
This field is never set, so remove the unreachable code.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240209090513.9401-5-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
b267e78908
target/mips: Remove MIPSITUState::itu field
...
Previous commits removed the MT*C0(SAAR) helpers which
were using CPUMIPSState::itu, we can now remove it too.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240209090513.9401-4-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
e1152f8166
target/mips: Remove helpers accessing SAAR registers
...
DisasContext::saar boolean is never set, so this code
is not reachable. Remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240209090513.9401-2-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Philippe Mathieu-Daudé
86468930a1
target/mips: Use qemu_irq typedef for CPUMIPSState::irq member
...
Missed during commit d537cf6c86 ("Unify IRQ handling")
when qemu_irq typedef was introduced for IRQState.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240130111111.6372-1-philmd@linaro.org >
2024-02-15 15:53:12 +01:00
Paolo Bonzini and Alex Bennée
2df1eb2756
kconfig: use "select" to enable semihosting
...
Just like all other dependencies, these can be expressed in Kconfig
files rather than in the default configurations.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240129115809.1039924-1-pbonzini@redhat.com >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20240207163812.3231697-10-alex.bennee@linaro.org >
2024-02-09 17:52:30 +00:00
Richard Henderson
a120d32097
include/exec: Implement cpu_mmu_index generically
...
For user-only mode, use MMU_USER_IDX.
For system mode, use CPUClass.mmu_index.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
Richard Henderson
0efa3dc275
target/mips: Populate CPUClass.mmu_index
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
Richard Henderson
6ebf33c5dc
target/mips: Split out mips_env_mmu_index
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
Richard Henderson
4e999bf419
target/mips: Pass ptw_mmu_idx down from mips_cpu_tlb_fill
...
Rather than adjust env->hflags so that the value computed
by cpu_mmu_index() changes, compute the mmu_idx that we
want directly and pass it down.
Introduce symbolic constants for MMU_{KERNEL,ERL}_IDX.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
Richard Henderson
1764ad70ce
include/qemu: Add TCGCPUOps typedef to typedefs.h
...
QEMU coding style recommends using structure typedefs.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-01-29 21:04:10 +10:00
Anton Johansson and Richard Henderson
85c19af63e
include/exec: Use vaddr in DisasContextBase for virtual addresses
...
Updates target/ QEMU_LOG macros to use VADDR_PRIx for printing updated
DisasContextBase fields.
Signed-off-by: Anton Johansson <anjo@rev.ng >
Message-Id: <20240119144024.14289-10-anjo@rev.ng >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-01-29 07:06:03 +10:00
Anton Johansson and Richard Henderson
32f0c394bb
target: Use vaddr in gen_intermediate_code
...
Makes gen_intermediate_code() signature target agnostic so the function
can be called from accel/tcg/translate-all.c without target specifics.
Signed-off-by: Anton Johansson <anjo@rev.ng >
Message-Id: <20240119144024.14289-9-anjo@rev.ng >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-01-29 07:06:03 +10:00
Stefan Hajnoczi
195801d700
system/cpus: rename qemu_mutex_lock_iothread() to bql_lock()
...
The Big QEMU Lock (BQL) has many names and they are confusing. The
actual QemuMutex variable is called qemu_global_mutex but it's commonly
referred to as the BQL in discussions and some code comments. The
locking APIs, however, are called qemu_mutex_lock_iothread() and
qemu_mutex_unlock_iothread().
The "iothread" name is historic and comes from when the main thread was
split into into KVM vcpu threads and the "iothread" (now called the main
loop thread). I have contributed to the confusion myself by introducing
a separate --object iothread, a separate concept unrelated to the BQL.
The "iothread" name is no longer appropriate for the BQL. Rename the
locking APIs to:
- void bql_lock(void)
- void bql_unlock(void)
- bool bql_locked(void)
There are more APIs with "iothread" in their names. Subsequent patches
will rename them. There are also comments and documentation that will be
updated in later patches.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com >
Reviewed-by: Paul Durrant <paul@xen.org >
Acked-by: Fabiano Rosas <farosas@suse.de >
Acked-by: David Woodhouse <dwmw@amazon.co.uk >
Reviewed-by: Cédric Le Goater <clg@kaod.org >
Acked-by: Peter Xu <peterx@redhat.com >
Acked-by: Eric Farman <farman@linux.ibm.com >
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com >
Acked-by: Hyman Huang <yong.huang@smartx.com >
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com >
Message-id: 20240102153529.486531-2-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com >
2024-01-08 10:45:43 -05:00
Gavin Shan and Philippe Mathieu-Daudé
4b26aa9f3a
target: Use generic cpu_model_from_type()
...
Use generic cpu_model_from_type() when the CPU model name needs to
be extracted from the CPU type name.
Signed-off-by: Gavin Shan <gshan@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20231114235628.534334-23-gshan@redhat.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
2024-01-05 16:20:14 +01:00
Gavin Shan and Philippe Mathieu-Daudé
31c5147010
target/mips: Use generic cpu_list()
...
Before it's applied:
[gshan@gshan q]$ ./build/qemu-system-mips64 -cpu ?
MIPS '4Kc'
MIPS '4Km'
MIPS '4KEcR1'
MIPS 'XBurstR1'
MIPS '4KEmR1'
MIPS '4KEc'
MIPS '4KEm'
MIPS '24Kc'
MIPS '24KEc'
MIPS '24Kf'
MIPS '34Kf'
MIPS '74Kf'
MIPS 'XBurstR2'
MIPS 'M14K'
MIPS 'M14Kc'
MIPS 'P5600'
MIPS 'mips32r6-generic'
MIPS 'I7200'
MIPS 'R4000'
MIPS 'VR5432'
MIPS '5Kc'
MIPS '5Kf'
MIPS '20Kc'
MIPS 'MIPS64R2-generic'
MIPS '5KEc'
MIPS '5KEf'
MIPS 'I6400'
MIPS 'I6500'
MIPS 'Loongson-2E'
MIPS 'Loongson-2F'
MIPS 'Loongson-3A1000'
MIPS 'Loongson-3A4000'
MIPS 'mips64dspr2'
MIPS 'Octeon68XX'
After it's applied:
[gshan@gshan q]$ ./build/qemu-system-mips64 -cpu ?
Available CPUs:
20Kc
24Kc
24KEc
24Kf
34Kf
4Kc
4KEc
4KEcR1
4KEm
4KEmR1
4Km
5Kc
5KEc
5KEf
5Kf
74Kf
I6400
I6500
I7200
Loongson-2E
Loongson-2F
Loongson-3A1000
Loongson-3A4000
M14K
M14Kc
mips32r6-generic
mips64dspr2
MIPS64R2-generic
Octeon68XX
P5600
R4000
VR5432
XBurstR1
XBurstR2
Signed-off-by: Gavin Shan <gshan@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20231114235628.534334-16-gshan@redhat.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
2024-01-05 16:20:14 +01:00
Peter Maydell
05470c3979
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging
...
* configure: use a native non-cross compiler for linux-user
* meson: cleanups
* target/i386: miscellaneous cleanups and optimizations
* target/i386: implement CMPccXADD
* target/i386: the sgx_epc_get_section stub is reachable
* esp: check for NULL result from scsi_device_find()
# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmWRImYUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroNd7AgAgcyJGiMfUkXqhefplpm06RDXQIa8
# FuoJqPb21lO75DQKfaFRAc4xGLagjJROMJGHMm9HvMu2VlwvOydkQlfFRspENxQ/
# 5XzGdb/X0A7HA/mwUfnMB1AZx0Vs32VI5IBSc6acc9fmgeZ84XQEoM3KBQHUik7X
# mSkE4eltR9gJ+4IaGo4voZtK+YoVD8nEcuqmnKihSPWizev0FsZ49aNMtaYa9qC/
# Xs3kiQd/zPibHDHJu0ulFsNZgxtUcvlLHTCf8gO4dHWxCFLXGubMush83McpRtNB
# Qoh6cTLH+PBXfrxMR3zmTZMNvo8Euls3s07Y8TkNP4vdIIE/kMeMDW1wJw==
# =mq30
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 31 Dec 2023 08:12:22 GMT
# gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg: issuer "pbonzini@redhat.com "
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org >" [full]
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com >" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1
# Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83
* tag 'for-upstream' of https://gitlab.com/bonzini/qemu : (46 commits)
meson.build: report graphics backends separately
configure, meson: rename targetos to host_os
meson: rename config_all
meson: remove CONFIG_ALL
meson: remove config_targetos
meson: remove CONFIG_POSIX and CONFIG_WIN32 from config_targetos
meson: remove OS definitions from config_targetos
meson: always probe u2f and canokey if the option is enabled
meson: move subdirs to "Collect sources" section
meson: move config-host.h definitions together
meson: move CFI detection code with other compiler flags
meson: keep subprojects together
meson: move accelerator dependency checks together
meson: move option validation together
meson: move program checks together
meson: add more sections to main meson.build
configure: unify again the case arms in probe_target_compiler
configure: remove unnecessary subshell
Makefile: clean qemu-iotests output
meson: use version_compare() to compare version
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-01-04 19:55:20 +00:00
Paolo Bonzini
cfc1a889e5
meson: rename config_all
...
config_all now lists only accelerators, rename it to indicate its actual
content.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2023-12-31 09:11:28 +01:00
Richard Henderson
6db6de6506
target/mips: Constify VMState in machine.c
...
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20231221031652.119827-13-richard.henderson@linaro.org >
2023-12-29 11:17:30 +11:00