Implement Xtensa datapath_is_big_endian() helper via libisa. Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- Other accesses to xtensa_isa_internal fields don't call cpu_synchronize_state(), and the libisa doesn't provide a way to switch endianness from translation code. Should we add a sync just in case? --- target/xtensa/cpu.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index 6f9039abaee..7bf792fd0f4 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -40,6 +40,13 @@ #endif +static bool xtensa_cpu_datapath_is_big_endian(CPUState *cs) +{ + CPUXtensaState *env = cpu_env(cs); + + return xtensa_isa_is_big_endian(env->config->isa); +} + static void xtensa_cpu_set_pc(CPUState *cs, vaddr value) { XtensaCPU *cpu = XTENSA_CPU(cs); @@ -256,6 +263,7 @@ static void xtensa_cpu_class_init(ObjectClass *oc, void *data) &xcc->parent_phases); cc->class_by_name = xtensa_cpu_class_by_name; + cc->datapath_is_big_endian = xtensa_cpu_datapath_is_big_endian; cc->has_work = xtensa_cpu_has_work; cc->mmu_index = xtensa_cpu_mmu_index; cc->dump_state = xtensa_cpu_dump_state; -- 2.45.2