On 02.06.21 11:43, Janosch Frank wrote:
The lmg overwrites r3 which we later use to reference the fprs and fpc.
Let's do the lmg at the end where overwriting is fine.
Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx>
---
Finding this took me longer than I'd like to admit. :)
---
s390x/cpu.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/s390x/cpu.S b/s390x/cpu.S
index e2ad56c8..82b5e25d 100644
--- a/s390x/cpu.S
+++ b/s390x/cpu.S
@@ -81,11 +81,11 @@ sie64a:
stg %r3,__SF_SIE_SAVEAREA(%r15) # save guest register save area
# Load guest's gprs, fprs and fpc
- lmg %r0,%r13,SIE_SAVEAREA_GUEST_GRS(%r3)
.irp i, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
ld \i, \i * 8 + SIE_SAVEAREA_GUEST_FPRS(%r3)
.endr
lfpc SIE_SAVEAREA_GUEST_FPC(%r3)
+ lmg %r0,%r13,SIE_SAVEAREA_GUEST_GRS(%r3)
# Move scb ptr into r14 for the sie instruction
lg %r14,__SF_SIE_CONTROL(%r15)
Oh, that's nasty
Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
--
Thanks,
David / dhildenb