On Wed, Aug 27, 2025 at 4:07 AM Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> We will use this function beyond kvm.c.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> target/arm/internals.h | 3 +++
> target/arm/helper.c | 11 +++++++++++
> target/arm/kvm.c | 11 -----------
> 3 files changed, 14 insertions(+), 11 deletions(-)
>
> diff --git a/target/arm/internals.h b/target/arm/internals.h
> index 1b3d0244fd..08e2acdb99 100644
> --- a/target/arm/internals.h
> +++ b/target/arm/internals.h
> @@ -1981,4 +1981,7 @@ void vfp_clear_float_status_exc_flags(CPUARMState *env);
> void vfp_set_fpcr_to_host(CPUARMState *env, uint32_t val, uint32_t mask);
> bool arm_pan_enabled(CPUARMState *env);
>
> +/* Compare uint64_t for qsort and bsearch. */
> +int compare_u64(const void *a, const void *b);
> +
> #endif
> diff --git a/target/arm/helper.c b/target/arm/helper.c
> index 0c1299ff84..d230f9e766 100644
> --- a/target/arm/helper.c
> +++ b/target/arm/helper.c
> @@ -40,6 +40,17 @@
>
> static void switch_mode(CPUARMState *env, int mode);
>
> +int compare_u64(const void *a, const void *b)
> +{
> + if (*(uint64_t *)a > *(uint64_t *)b) {
> + return 1;
> + }
> + if (*(uint64_t *)a < *(uint64_t *)b) {
> + return -1;
> + }
> + return 0;
> +}
> +
> uint64_t raw_read(CPUARMState *env, const ARMCPRegInfo *ri)
> {
> assert(ri->fieldoffset);
> diff --git a/target/arm/kvm.c b/target/arm/kvm.c
> index 6672344855..9e569eff65 100644
> --- a/target/arm/kvm.c
> +++ b/target/arm/kvm.c
> @@ -718,17 +718,6 @@ void kvm_arm_register_device(MemoryRegion *mr, uint64_t devid, uint64_t group,
> memory_region_ref(kd->mr);
> }
>
> -static int compare_u64(const void *a, const void *b)
> -{
> - if (*(uint64_t *)a > *(uint64_t *)b) {
> - return 1;
> - }
> - if (*(uint64_t *)a < *(uint64_t *)b) {
> - return -1;
> - }
> - return 0;
> -}
> -
> /*
> * cpreg_values are sorted in ascending order by KVM register ID
> * (see kvm_arm_init_cpreg_list). This allows us to cheaply find
> --
> 2.43.0
>
>