mirror of https://github.com/xqemu/xqemu.git
target-arm: sort TCG cpreg list by KVM-style 64 bit ID number
Both KVM and TCG populate the cpreg_list with 64 bit register IDs, but in the TCG side the cpreg_list is sorted using the 32 bit ID version while in the kvm side the 64 bit ID version is used. This patch makes the sorting of the cpreg_list consistent between KVM and TCG. Signed-off-by: Alvise Rigo <a.rigo@virtualopensystems.com> Message-id: 1381513125-26802-1-git-send-email-a.rigo@virtualopensystems.com [PMM: fixed indent, coding style and commit message formatting] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
8641136c54
commit
cbf239b769
|
@ -225,10 +225,16 @@ static void count_cpreg(gpointer key, gpointer opaque)
|
|||
|
||||
static gint cpreg_key_compare(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
uint32_t aidx = *(uint32_t *)a;
|
||||
uint32_t bidx = *(uint32_t *)b;
|
||||
uint64_t aidx = cpreg_to_kvm_id(*(uint32_t *)a);
|
||||
uint64_t bidx = cpreg_to_kvm_id(*(uint32_t *)b);
|
||||
|
||||
return aidx - bidx;
|
||||
if (aidx > bidx) {
|
||||
return 1;
|
||||
}
|
||||
if (aidx < bidx) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cpreg_make_keylist(gpointer key, gpointer value, gpointer udata)
|
||||
|
|
Loading…
Reference in New Issue