qemu/target/xtensa
Max Filippov 89bec9e911 target/xtensa: break circular register dependencies
Currently topologic opcode sorting stops at the first detected
dependency loop. Introduce struct opcode_arg_copy that describes
temporary register copy. Scan remaining opcodes searching for
dependencies that can be broken, break them by introducing temporary
register copies and record them in an array. In case of success
create local temporaries and initialize them with current register
values. Share single temporary copy between all register users. Delete
temporaries after translation.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2019-02-28 04:43:22 -08:00
..
core-dc232b target/xtensa: drop num_[core_]regs from dc232b/dc233c configs 2018-11-20 12:20:41 -08:00
core-dc233c target/xtensa: drop num_[core_]regs from dc232b/dc233c configs 2018-11-20 12:20:41 -08:00
core-de212 Remove unnecessary variables for function return value 2018-05-20 08:48:13 +03:00
core-fsf Remove unnecessary variables for function return value 2018-05-20 08:48:13 +03:00
core-sample_controller Remove unnecessary variables for function return value 2018-05-20 08:48:13 +03:00
core-test_kc705_be target/xtensa: add test_kc705_be core 2018-08-19 18:57:57 -07:00
core-test_mmuhifi_c3 target/xtensa: fixup test_mmuhifi_c3 overlay 2019-02-18 21:29:08 -08:00
core-dc232b.c target/xtensa: drop num_[core_]regs from dc232b/dc233c configs 2018-11-20 12:20:41 -08:00
core-dc233c.c target/xtensa: drop num_[core_]regs from dc232b/dc233c configs 2018-11-20 12:20:41 -08:00
core-de212.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
core-fsf.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
core-sample_controller.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
core-test_kc705_be.c target/xtensa: add test_kc705_be core 2018-08-19 18:57:57 -07:00
core-test_mmuhifi_c3.c target/xtensa: add test_mmuhifi_c3 core 2019-01-28 11:55:20 -08:00
cpu-qom.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu.c target/xtensa: convert to do_transaction_failed 2018-09-17 11:05:26 -07:00
cpu.h target/xtensa: reorganize register handling in translators 2019-02-28 04:43:22 -08:00
dbg_helper.c target/xtensa: extract debug helpers 2019-01-13 23:35:34 -08:00
exc_helper.c target/xtensa: fix access to the INTERRUPT SR 2019-01-24 10:44:26 -08:00
fpu_helper.c target/xtensa: extract FPU helpers 2019-01-13 23:33:42 -08:00
gdbstub.c target/xtensa: gdbstub fix register counting 2018-11-20 12:20:41 -08:00
helper.c target/xtensa: reorganize register handling in translators 2019-02-28 04:43:22 -08:00
helper.h target/xtensa: only rotate window in the retw helper 2019-02-28 04:43:22 -08:00
import_core.sh target/xtensa/import_core.sh: don't add duplicate 'static' 2019-02-08 19:37:45 -08:00
Makefile.objs target/xtensa: add test_mmuhifi_c3 core 2019-01-28 11:55:20 -08:00
mmu_helper.c target/xtensa: extract MMU helpers 2019-01-13 23:34:57 -08:00
monitor.c monitor: Fix crashes when using HMP commands without CPU 2017-02-21 18:29:01 +00:00
op_helper.c target/xtensa: fix access to the INTERRUPT SR 2019-01-24 10:44:26 -08:00
overlay_tool.h target/xtensa: move xtensa_finalize_config to xtensa_core_class_init 2019-02-18 21:29:08 -08:00
translate.c target/xtensa: break circular register dependencies 2019-02-28 04:43:22 -08:00
win_helper.c target/xtensa: only rotate window in the retw helper 2019-02-28 04:43:22 -08:00
xtensa-isa-internal.h target/xtensa: import libisa source 2017-12-18 21:26:19 -08:00
xtensa-isa.c Clean up includes 2018-02-09 05:05:11 +01:00
xtensa-isa.h Use #include "..." for our own headers, <...> for others 2018-02-09 05:05:11 +01:00
xtensa-semi.c target/xtensa: support input from chardev console 2018-09-17 11:09:04 -07:00