Philippe Mathieu-Daudé
715e3c1afb
cpu: Move CPUClass::write_elf* to SysemuCPUOps
...
The write_elf*() handlers are used to dump vmcore images.
This feature is only meaningful for system emulation.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-19-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé
da383e0263
cpu: Move CPUClass::virtio_is_big_endian to SysemuCPUOps
...
VirtIO devices are only meaningful with system emulation.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-17-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé
feece4d070
cpu: Move CPUClass::vmsd to SysemuCPUOps
...
Migration is specific to system emulation.
- Move the CPUClass::vmsd field to SysemuCPUOps,
- restrict VMSTATE_CPU() macro to sysemu,
- vmstate_dummy is now unused, remove it.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-16-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé
8b80bd28a5
cpu: Introduce SysemuCPUOps structure
...
Introduce a structure to hold handler specific to sysemu.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210517105140.1062037-15-f4bug@amsat.org >
[rth: Squash "restrict hw/core/sysemu-cpu-ops.h" patch]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Philippe Mathieu-Daudé
744c72a837
cpu: Rename CPUClass vmsd -> legacy_vmsd
...
Quoting Peter Maydell [*]:
There are two ways to handle migration for
a CPU object:
(1) like any other device, so it has a dc->vmsd that covers
migration for the whole object. As usual for objects that are a
subclass of a parent that has state, the first entry in the
VMStateDescription field list is VMSTATE_CPU(), which migrates
the cpu_common fields, followed by whatever the CPU's own migration
fields are.
(2) a backwards-compatible mechanism for CPUs that were
originally migrated using manual "write fields to the migration
stream structures". The on-the-wire migration format
for those is based on the 'env' pointer (which isn't a QOM object),
and the cpu_common part of the migration data is elsewhere.
cpu_exec_realizefn() handles both possibilities:
* for type 1, dc->vmsd is set and cc->vmsd is not,
so cpu_exec_realizefn() does nothing, and the standard
"register dc->vmsd for a device" code does everything needed
* for type 2, dc->vmsd is NULL and so we register the
vmstate_cpu_common directly to handle the cpu-common fields,
and the cc->vmsd to handle the per-CPU stuff
You can't change a CPU from one type to the other without breaking
migration compatibility, which is why some guest architectures
are stuck on the cc->vmsd form. New targets should use dc->vmsd.
To avoid new targets to start using type (2), rename cc->vmsd as
cc->legacy_vmsd. The correct field to implement is dc->vmsd (the
DeviceClass one).
See also commit b170fce3dd
("cpu: Register VMStateDescription
through CPUState") for historic background.
[*] https://www.mail-archive.com/qemu-devel@nongnu.org/msg800849.html
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Cc: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20210517105140.1062037-13-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-26 15:33:59 -07:00
Richard Henderson
e543f94685
target/ppc: Remove type argument for mmubooke206_get_physical_address
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-16-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
5507d62609
target/ppc: Remove type argument from mmubooke206_check_tlb
...
We can now use MMU_INST_FETCH from access_type for this.
Unify the I/D code paths, making use of prot_for_access_type.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-15-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
40079604ae
target/ppc: Remove type argument from mmubooke_get_physical_address
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-14-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
05c3ef1451
target/ppc: Remove type argument from mmubooke_check_tlb
...
We can now use MMU_INST_FETCH from access_type for this.
Unify the I/D code paths, making use of prot_for_access_type.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-13-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
61d2cde867
target/ppc: Remove type argument from mmu40x_get_physical_address
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-12-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
590fc3c01d
target/ppc: Remove type argument from get_bat_6xx_tlb
...
We can now use MMU_INST_FETCH from access_type for this.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-11-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
f3f5794d79
target/ppc: Remove type argument from ppc6xx_tlb_check
...
We can now use MMU_INST_FETCH from access_type for this.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-10-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
574c5585e3
target/ppc: Remove type argument from ppc6xx_tlb_pte_check
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-9-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
91e615a07d
target/ppc: Remove type argument from check_prot
...
We can now use MMU_INST_FETCH from access_type for this.
Use prot_for_access_type to simplify everything.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-8-richard.henderson@linaro.org >
[dwg: Remove a stray trailing whitespace]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:51:51 +10:00
Richard Henderson
9630cd6262
target/ppc: Use MMUAccessType in mmu_helper.c
...
This replaces 'int rw' with 'MMUAccessType access_type'.
Comparisons vs zero become either MMU_DATA_LOAD or MMU_DATA_STORE,
since we had previously squashed rw to 0 for code access.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-7-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:50:47 +10:00
Richard Henderson
352e3627b2
target/ppc: Rename access_type to type in mmu_helper.c
...
The variable that holds ACCESS_INT, ACCESS_FLOAT, etc is
variously called 'int type' or 'int access_type' within
this file. Standardize on 'int type' throughout.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-6-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:50:47 +10:00
Richard Henderson
31fa64ecfd
target/ppc: Use MMUAccessType in mmu-hash32.c
...
We must leave the 'int rwx' parameter to ppc_hash32_handle_mmu_fault
for now, but will clean that up later.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-5-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:50:47 +10:00
Richard Henderson
59dec5bf5a
target/ppc: Use MMUAccessType in mmu-hash64.c
...
We must leave the 'int rwx' parameter to ppc_hash64_handle_mmu_fault
for now, but will clean that up later.
Signed-off-by: Ricgard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-4-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:50:47 +10:00
Richard Henderson
13c5fdbac6
target/ppc: Use MMUAccessType in mmu-radix64.c
...
We must leave the 'int rwx' parameter to ppc_radix64_handle_mmu_fault
for now, but will clean that up later.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-3-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:50:47 +10:00
Richard Henderson
182357dbb6
target/ppc: Introduce prot_for_access_type
...
Use this in the three places we currently have a local array
indexed by rwx (which happens to have the same values).
The types will match up correctly with additional changes.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-2-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:50:47 +10:00
Giuseppe Musacchio
861f10fd52
target/ppc: Fix load endianness for lxvwsx/lxvdsx
...
TARGET_WORDS_BIGENDIAN may not match the machine endianness if that's a
runtime-configurable parameter.
Fixes: bcb0b7b1a1
Fixes: afae37d98a
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/212
Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com >
Message-Id: <20210518133020.58927-1-thatlemon@gmail.com >
Tested-by: Paul A. Clarke <pc@us.ibm.com >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:44:04 +10:00
Richard Henderson
51eb7b1d10
target/ppc: Use translator_loop_temp_check
...
The special logging is unnecessary. It will have been done
immediately before in the log file.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Reviewed-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Message-Id: <20210517205025.3777947-9-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
46a0add975
target/ppc: Mark helper_raise_exception* as noreturn
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210517205025.3777947-8-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
0032dbdb41
target/ppc: Tidy exception vs exit_tb
...
We do not need to emit an exit_tb after an exception,
as the latter will exit via longjmp.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210517205025.3777947-7-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
13b4557567
target/ppc: Move single-step check to ppc_tr_tb_stop
...
When single-stepping, force max_insns to 1 in init_disas
so that we exit the translation loop immediately.
Combine the single-step checks in tb_stop, and give the
gdb exception priority over the cpu exception, just as
we already do in gen_lookup_and_goto_ptr.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210517205025.3777947-6-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
7a3fe174b1
target/ppc: Remove DisasContext.exception
...
Now that we have removed all of the fake exceptions, and all real
exceptions exit via DISAS_NORETURN, we can remove this field.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210517205025.3777947-5-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
6086c751c3
target/ppc: Replace POWERPC_EXCP_BRANCH with DISAS_NORETURN
...
The translation of branch instructions always results in exit from
the TB. Remove the synthetic "exception" after no more uses.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210517205025.3777947-4-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
d736de8ff6
target/ppc: Replace POWERPC_EXCP_STOP with DISAS_EXIT_UPDATE
...
Remove the synthetic "exception" after no more uses.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210517205025.3777947-3-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
f5b6daacd6
target/ppc: Introduce gen_icount_io_start
...
Create a function to handle the details for interacting with icount.
Force the exit from the tb via DISAS_TOO_MANY, which allows chaining
to the next tb, where the code emitted for gen_tb_start() will
determine if we must exit. We can thus remove any matching
conditional call to gen_stop_exception.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210517205025.3777947-2-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:29 +10:00
Richard Henderson
a68cf3a520
target/ppc: Remove unnecessary gen_io_end calls
...
Since ba3e792669
, we switched the implementation of icount
to always reset can_do_io at the start of the following TB.
Most of them were removed in 9e9b10c649
, but some were missed.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-10-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
59bf23faf5
target/ppc: Replace POWERPC_EXCP_SYNC with DISAS_EXIT
...
Remove the synthetic "exception" after no more uses.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-9-matheus.ferst@eldorado.org.br >
Reviewed-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
a9b5b3d06c
target/ppc: Introduce DISAS_{EXIT,CHAIN}{,_UPDATE}
...
Rewrite ppc_tr_tb_stop to handle these new codes.
Convert ctx->exception into these new codes at the end of
ppc_tr_translate_insn, prior to pushing the change back
throughout translate.c.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-8-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
2736fc6181
target/ppc: Simplify gen_debug_exception
...
Two of the call sites that use gen_debug_exception have already
updated NIP. Only ppc_tr_breakpoint_check requires the update.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-7-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
506fadcfd7
target/ppc: Remove special case for POWERPC_EXCP_TRAP
...
Since POWERPC_EXCP_TRAP is raised by gen_exception_err,
we will have also set DISAS_NORETURN.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-6-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
da3527d96d
target/ppc: Remove special case for POWERPC_SYSCALL
...
Since POWERPC_SYSCALL is raised by gen_exception_err,
we will have also set DISAS_NORETURN.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-5-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
3d8a5b69bd
target/ppc: Move DISAS_NORETURN setting into gen_exception*
...
There are other valid settings for is_jmp besides
DISAS_NEXT and DISAS_NORETURN, so eliminating that
dichotomy from ppc_tr_translate_insn is helpful.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-4-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
624cb07fde
target/ppc: Split out decode_legacy
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-3-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Richard Henderson
2c2bcb1b50
target/ppc: Add cia field to DisasContext
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br >
Message-Id: <20210512185441.3619828-2-matheus.ferst@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
47334e1738
target/ppc: moved ppc_cpu_dump_state to cpu_init.c
...
This function was forgotten in the cpu_init code motion series, but it
seems to be used regardless of TCG, and so needs to be moved to support
disabling TCG.
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Message-Id: <20210512140813.112884-4-bruno.larsen@eldorado.org.br >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
172d74efda
target/ppc: moved ppc_store_sdr1 to cpu.c
...
Moved this function that is required in !TCG cases into a
common code file
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Message-Id: <20210512140813.112884-3-bruno.larsen@eldorado.org.br >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
[dwg: Fixed compile error with linux-user targets]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
87aff23827
target/ppc: updated vscr manipulation in machine.c
...
Updated the code in machine.c to use the generic ppc_{store,get}_vscr
instead of helper style functions, so it can build without TCG
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Message-Id: <20210512140813.112884-7-bruno.larsen@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
c19940db0f
target/ppc: created ppc_{store,get}_vscr for generic vscr usage
...
Some functions unrelated to TCG use helper_m{t,f}vscr, so generic versions
of those functions were added to cpu.c, in preparation for compilation
without TCG
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Message-Id: <20210512140813.112884-2-bruno.larsen@eldorado.org.br >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
3e770bf7a9
target/ppc: isolated cpu init from translation logic
...
finished isolation of CPU initialization logic from
translation logic. CPU initialization now only has common code
and may or may not call accelerator-specific code, as the
build options require.
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Reviewed-by: David Gibson <david@gibson.dropbear.id.au >
Message-Id: <20210507115551.11436-1-bruno.larsen@eldorado.org.br >
[dwg: Fix compile error with clang linux-user builds]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
a829cec3a3
target/ppc: turned SPR R/W callbacks not static
...
To be able to compile translate_init.c.inc as a standalone file,
we have to make the callbacks accessible outside of translate.c;
This patch does exactly that
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Message-Id: <20210507115512.11376-1-bruno.larsen@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Lucas Mateus Castro (alqotel)
03282a3ab8
hw/ppc: moved has_spr to cpu.h
...
Moved has_spr to cpu.h as ppc_has_spr and turned it into an inline function.
Change spr verification in pnv.c and spapr.c to a version that can
compile in a !TCG environment.
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br >
Message-Id: <20210507164146.67086-1-lucas.araujo@eldorado.org.br >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Lucas Mateus Castro (alqotel)
45998ffcb4
target/ppc: moved ppc_store_lpcr to misc_helper.c
...
Moved the function ppc_store from mmu-hash64.c to misc_helper.c and the
prototype from mmu-hash64.h to cpu.h as it is a more appropriate place,
but it will have to have its implementation moved to a new file as
misc_helper.c should not be compiled in a !TCG environment.
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br >
Message-Id: <20210506163941.106984-4-lucas.araujo@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Lucas Mateus Castro (alqotel)
fd1eb085da
target/ppc: moved function out of mmu-hash64
...
The function ppc_hash64_filter_pagesizes has been moved from a function
with prototype in mmu-hash64.h and implemented in mmu-hash64.c to
a static function in hw/ppc/spapr_caps.c as it's only used in that file.
Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br >
Message-Id: <20210506163941.106984-3-lucas.araujo@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
37f219c8f8
target/ppc: move SPR R/W callbacks to translate.c
...
Moved all read and write callbacks for SPRs away from
translate_init.c.inc and into translate.c; these functions are
TCG only, so this motion is required to enable building with
the flag disable-tcg
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210506190837.6921-1-bruno.larsen@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
a08eea67cb
target/ppc: renamed SPR registration functions
...
Renamed all gen_spr_* and gen_* functions specifically related to
registering SPRs to register_*_sprs and register_*, to avoid future
confusion with other TCG related code.
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210505155310.62710-2-bruno.larsen@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00
Bruno Larsen (billionai)
1cc9e93ca8
target/ppc: Fold gen_*_xer into their callers
...
folded gen_{read,write}_xer into their only callers, spr_{read,write}_xer
Signed-off-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210504140157.76066-2-bruno.larsen@eldorado.org.br >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 10:30:28 +10:00