Richard Henderson
072e057ed9
accel/tcg: Add CPUState arg to tb_invalidate_phys_range
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-04-30 12:45:05 -07:00
Philippe Mathieu-Daudé and Richard Henderson
d864cbb65d
exec: Do not include 'accel/tcg/cpu-ldst.h' in 'exec-all.h'
...
Only 2 files requiring "accel/tcg/cpu-ldst.h" API do not
include it:
- accel/tcg/cpu-exec.c
- target/arm/tcg/sve_helper.c
Include it there and remove it from "exec/exec-all.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-04-23 15:07:32 -07:00
Philippe Mathieu-Daudé and Richard Henderson
42fa9665e5
exec: Restrict 'cpu_ldst.h' to accel/tcg/
...
Mechanical change using:
$ sed -i -e 's,exec/cpu_ldst,accel/tcg/cpu-ldst,' \
$(git grep -l exec/cpu_ldst.h)
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-04-23 15:07:32 -07:00
Richard Henderson
aa6f138aba
accel/tcg: Move get_page_addr_code* declarations
...
Move the declarations from exec/exec-all.h to the
private accel/tcg/internal-common.h.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-04-23 15:04:57 -07:00
Richard Henderson
a456c72695
include/exec: Move tb_{,set_}page_addr[01] to translation-block.h
...
Move the accessor functions for TranslationBlock
into the header related to the structure.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-04-23 15:04:57 -07:00
Pierrick Bouvier and Richard Henderson
eab9254fec
exec/exec-all: remove dependency on cpu.h
...
Previous commit changed files relying transitively on it.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20250317183417.285700-8-pierrick.bouvier@linaro.org >
2025-04-23 13:52:25 -07:00
Richard Henderson
b73f58496d
accel/tcg: Split out getpc.h
...
Split out GETPC to a target-independent header.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-ID: <20250308072348.65723-3-philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-03-08 09:34:43 -08:00
Philippe Mathieu-Daudé and Richard Henderson
bf4a155b7a
accel/tcg: Restrict GETPC_ADJ to 'tb-internal.h'
...
GETPC_ADJ is only used within accel/tcg/, no need to
expose it to all the code base.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-ID: <20250308072348.65723-2-philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-03-08 08:05:40 -08:00
Philippe Mathieu-Daudé and Richard Henderson
6ff5da1600
exec: Declare tlb_flush*() in 'exec/cputlb.h'
...
Move CPU TLB related methods to "exec/cputlb.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-ID: <20241114011310.3615-19-philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-03-08 07:56:14 -08:00
Philippe Mathieu-Daudé and Richard Henderson
eb9b25c656
exec: Declare tlb_set_page() in 'exec/cputlb.h'
...
Move CPU TLB related methods to "exec/cputlb.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20241114011310.3615-18-philmd@linaro.org >
2025-03-08 07:56:14 -08:00
Philippe Mathieu-Daudé and Richard Henderson
2809e2d6c4
exec: Declare tlb_set_page_with_attrs() in 'exec/cputlb.h'
...
Move CPU TLB related methods to "exec/cputlb.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20241114011310.3615-17-philmd@linaro.org >
2025-03-08 07:56:14 -08:00
Philippe Mathieu-Daudé and Richard Henderson
a9f5ab9279
exec: Declare tlb_set_page_full() in 'exec/cputlb.h'
...
Move CPU TLB related methods to "exec/cputlb.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20241114011310.3615-16-philmd@linaro.org >
2025-03-08 07:56:14 -08:00
Philippe Mathieu-Daudé and Richard Henderson
e7d269adb2
exec: Declare tlb_reset_dirty*() in 'exec/cputlb.h'
...
Move CPU TLB related methods to "exec/cputlb.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-ID: <20241114011310.3615-14-philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-03-08 07:56:14 -08:00
Philippe Mathieu-Daudé
cbaae5338b
accel/tcg: Restrict tlb_init() / destroy() to TCG
...
Move CPU TLB related methods to accel/tcg/ scope,
in "internal-common.h".
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20250123234415.59850-9-philmd@linaro.org >
2025-03-06 15:46:17 +01:00
Philippe Mathieu-Daudé
47f7b6441a
accel/tcg: Declare cpu_loop_exit_requested() in 'exec/cpu-common.h'
...
Move cpu_loop_exit_requested() declaration to "exec/cpu-common.h",
along with the related cpu_loop_exit_noexc(), cpu_loop_exit(),
cpu_loop_exit_atomic() and cpu_loop_exit_restore() methods.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20241217140648.98538-1-philmd@linaro.org >
2024-12-20 17:44:57 +01:00
Philippe Mathieu-Daudé
1bf0d6e476
user: Move various declarations out of 'exec/exec-all.h'
...
Move various declarations related to user emulation
from "exec/exec-all.h" to "user/cpu_loop.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20241212185341.2857-19-philmd@linaro.org >
2024-12-20 17:44:57 +01:00
Philippe Mathieu-Daudé
487a31e0ac
accel/tcg: Declare mmap_[un]lock() in 'exec/page-protection.h'
...
Move mmap_lock(), mmap_unlock() declarations and the
WITH_MMAP_LOCK_GUARD() definition to 'exec/page-protection.h'.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20241212185341.2857-5-philmd@linaro.org >
2024-12-20 17:44:57 +01:00
Richard Henderson
4a75c8c7d6
include/exec: Improve probe_access_full{, _mmu} documentation
...
Suggested-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20241013184733.1423747-2-richard.henderson@linaro.org >
2024-10-22 13:45:03 -07:00
Philippe Mathieu-Daudé
99481a0988
accel: Restrict probe_access*() functions to TCG
...
This API is specific to TCG (already handled by hardware
accelerators), so restrict it with #ifdef'ry. Remove
unnecessary stubs.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240529155918.6221-1-philmd@linaro.org >
2024-07-23 18:08:44 +02:00
Nicholas Piggin
99cd12ced1
tcg/cputlb: Remove non-synced variants of global TLB flushes
...
These are no longer used.
tlb_flush_all_cpus: removed by previous commit.
tlb_flush_page_all_cpus: removed by previous commit.
tlb_flush_page_bits_by_mmuidx_all_cpus: never used.
tlb_flush_page_by_mmuidx_all_cpus: never used.
tlb_flush_page_bits_by_mmuidx_all_cpus: never used, thus:
tlb_flush_range_by_mmuidx_all_cpus: never used.
tlb_flush_by_mmuidx_all_cpus: never used.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Nicholas Piggin <npiggin@gmail.com >
2024-05-24 08:57:50 +10:00
Philippe Mathieu-Daudé
b254c342cf
accel/tcg: Access tcg_cflags with getter / setter
...
Access the CPUState::tcg_cflags via tcg_cflags_has() and
tcg_cflags_set() helpers.
Mechanical change using the following Coccinelle spatch script:
@@
expression cpu;
expression flags;
@@
- cpu->tcg_cflags & flags
+ tcg_cflags_has(cpu, flags)
@@
expression cpu;
expression flags;
@@
- (tcg_cflags_has(cpu, flags))
+ tcg_cflags_has(cpu, flags)
@@
expression cpu;
expression flags;
@@
- cpu->tcg_cflags |= flags;
+ tcg_cflags_set(cpu, flags);
Then manually moving the declarations, and adding both
tcg_cflags_has() and tcg_cflags_set() definitions.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240427155714.53669-15-philmd@linaro.org >
2024-05-06 11:21:05 +02:00
Philippe Mathieu-Daudé
9c1283dd76
exec: Declare MMUAccessType type in 'mmu-access-type.h' header
...
The MMUAccessType enum is declared in "hw/core/cpu.h".
"hw/core/cpu.h" contains declarations related to CPUState
and CPUClass. Some source files only require MMUAccessType
and don't need to pull in all CPU* declarations. In order
to simplify, create a new "exec/mmu-access-type.h" header.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240418192525.97451-2-philmd@linaro.org >
2024-04-26 17:03:05 +02:00
Philippe Mathieu-Daudé
471558cb6e
exec: Declare abi_ptr type in its own 'abi_ptr.h' header
...
The abi_ptr type is declared in "exec/cpu_ldst.h" with all
the load/store helpers. Some source files requiring abi_ptr
type don't need the load/store helpers. In order to simplify,
create a new "exec/abi_ptr.h" header.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20231212123401.37493-21-philmd@linaro.org >
2024-04-26 17:03:05 +02:00
Philippe Mathieu-Daudé
51579d40f9
exec: Reduce tlb_set_dirty() declaration scope
...
tlb_set_dirty() is only used in accel/tcg/cputlb.c,
where it is defined. Declare it statically, removing
the stub.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240418192525.97451-11-philmd@linaro.org >
2024-04-26 15:28:11 +02:00
Philippe Mathieu-Daudé and Peter Xu
7e8ccf99ed
physmem: Expose tlb_reset_dirty_range_all()
...
In order to call tlb_reset_dirty_range_all() outside of
system/physmem.c, expose its prototype.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Link: https://lore.kernel.org/r/20240312201458.79532-2-philmd@linaro.org
Signed-off-by: Peter Xu <peterx@redhat.com >
2024-03-12 17:39:40 -04:00