On 23/01/24, Philippe Mathieu-Daudé wrote:
Hi Anton,
On 19/1/24 15:40, Anton Johansson wrote:
Adds wrapper functions around common target specific macros required by
accel/tcg.
Signed-off-by: Anton Johansson <anjo@rev.ng>
---
include/hw/core/cpu.h | 9 +++++++
cpu-target.c | 62 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+)
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index 57d100c203..a2d65c1d7a 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -26,6 +26,7 @@
#include "exec/vaddr.h"
#include "exec/memattrs.h"
#include "exec/tlb-common.h"
+#include "exec/memop.h"
#include "qapi/qapi-types-run-state.h"
#include "qemu/bitmap.h"
#include "qemu/rcu_queue.h"
@@ -1164,6 +1165,14 @@ void cpu_exec_unrealizefn(CPUState *cpu);
* what you are doing!
*/
bool target_words_bigendian(void);
+bool target_supports_mttcg(void);
+bool target_has_precise_smc(void);
+int target_long_bits(void);
+int target_phys_addr_space_bits(void);
+uint8_t target_insn_start_words(void);
+uint8_t target_default_memory_order(void);
+uint8_t target_tlb_dyn_max_bits(void);
+MemOp target_endian_memory_order(void);
None of these helpers take argument. I don't understand
how they can be called in heterogeneous context.
No you're right, I was focused mostly on getting accel/tcg to compile
with hetrogeneous being a goal downt the line.
I like the idea of moving these fields to a struct filled out per
target, but dispatching would also work.