kvm, arm: fix the size of MISCREG_FPSR and MISCREG_FPCR
authorCiro Santilli <ciro.santilli@arm.com>
Mon, 30 Sep 2019 15:52:32 +0000 (16:52 +0100)
committerCiro Santilli <ciro.santilli@arm.com>
Mon, 7 Oct 2019 10:26:20 +0000 (10:26 +0000)
commita00953c0a7c80ac68003546a50b6556975720235
treeb0ee410feb377b08c9d89d0f06a499453345c11e
parenta586380b32a199b40d1f6f5e14ce7731ee5a3c67
kvm, arm: fix the size of MISCREG_FPSR and MISCREG_FPCR

Those registers are 32-bit instead of 64 in the KVM API.

The Linux kernel 5.2 linux/Documentation/virtual/kvm/api.txt contains:

    0x6020 0000 0010 00d4 FPSR        32  fp_regs.fpsr
    0x6020 0000 0010 00d5 FPCR        32  fp_regs.fpcr

The register itself is 64-bit in the ARM manual, but the top 32 are
RES0.

This fixes the following error when running ARM KVM early in the
simulation:

panic: KVM: Failed to set register (0x60300000001000d4) value
(errno: 22)

Change-Id: I8fe6e12df4809992173200a42e3ce5414748bdad
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21300
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
src/arch/arm/kvm/armv8_cpu.cc