From cdda3aec7fbcd574ce8af4877d166f764e8c4c02 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Thu, 15 Feb 2018 10:38:25 -0500 Subject: [PATCH] target-arm/arm-semi.c: Support widening APIs to 64 bits The 64-bit A64 semihosting API has some pervasive changes from the 32-bit version: * all parameter blocks are arrays of 64-bit values, not 32-bit * the semihosting call number is passed in W0 * the return value is a 64-bit value in X0 Implement the necessary handling for this widening. Backports relevant parts of commit faacc041619581c566c21ed87aa1933420731282 from qemu --- qemu/target-arm/cpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/target-arm/cpu.h b/qemu/target-arm/cpu.h index d0d67b1e..5d6c23c7 100644 --- a/qemu/target-arm/cpu.h +++ b/qemu/target-arm/cpu.h @@ -512,7 +512,7 @@ typedef struct CPUARMState { ARMCPU *cpu_arm_init(struct uc_struct *uc, const char *cpu_model); int cpu_arm_exec(struct uc_struct *uc, CPUState *cpu); -uint32_t do_arm_semihosting(CPUARMState *env); +target_ulong do_arm_semihosting(CPUARMState *env); void aarch64_sync_32_to_64(CPUARMState *env); void aarch64_sync_64_to_32(CPUARMState *env);