mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-23 01:51:55 -06:00
target/loongarch/kvm: fpu save the vreg registers high 192bit
On kvm side, get_fpu/set_fpu save the vreg registers high 192bits,
but QEMU missing.
Cc: qemu-stable@nongnu.org
Signed-off-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>
Message-Id: <20240514110752.989572-1-gaosong@loongson.cn>
(cherry picked from commit 07c0866103
)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
41558f42b3
commit
d27df7187b
1 changed files with 6 additions and 0 deletions
|
@ -436,6 +436,9 @@ static int kvm_loongarch_get_regs_fp(CPUState *cs)
|
||||||
env->fcsr0 = fpu.fcsr;
|
env->fcsr0 = fpu.fcsr;
|
||||||
for (i = 0; i < 32; i++) {
|
for (i = 0; i < 32; i++) {
|
||||||
env->fpr[i].vreg.UD[0] = fpu.fpr[i].val64[0];
|
env->fpr[i].vreg.UD[0] = fpu.fpr[i].val64[0];
|
||||||
|
env->fpr[i].vreg.UD[1] = fpu.fpr[i].val64[1];
|
||||||
|
env->fpr[i].vreg.UD[2] = fpu.fpr[i].val64[2];
|
||||||
|
env->fpr[i].vreg.UD[3] = fpu.fpr[i].val64[3];
|
||||||
}
|
}
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
env->cf[i] = fpu.fcc & 0xFF;
|
env->cf[i] = fpu.fcc & 0xFF;
|
||||||
|
@ -455,6 +458,9 @@ static int kvm_loongarch_put_regs_fp(CPUState *cs)
|
||||||
fpu.fcc = 0;
|
fpu.fcc = 0;
|
||||||
for (i = 0; i < 32; i++) {
|
for (i = 0; i < 32; i++) {
|
||||||
fpu.fpr[i].val64[0] = env->fpr[i].vreg.UD[0];
|
fpu.fpr[i].val64[0] = env->fpr[i].vreg.UD[0];
|
||||||
|
fpu.fpr[i].val64[1] = env->fpr[i].vreg.UD[1];
|
||||||
|
fpu.fpr[i].val64[2] = env->fpr[i].vreg.UD[2];
|
||||||
|
fpu.fpr[i].val64[3] = env->fpr[i].vreg.UD[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue