git: 2e6e9d154100 - stable/14 - amd64 la57_trampoline: save registers in memory
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 23 Sep 2024 13:03:47 UTC
The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2e6e9d154100f7bede90f2041cb3a897871f0766 commit 2e6e9d154100f7bede90f2041cb3a897871f0766 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2024-09-12 05:43:44 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2024-09-23 13:03:07 +0000 amd64 la57_trampoline: save registers in memory (cherry picked from commit 280e50461a1f638088e7a0b9116976821c374b56) --- sys/amd64/amd64/locore.S | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/sys/amd64/amd64/locore.S b/sys/amd64/amd64/locore.S index 3df3dd722f45..1ed9085e655c 100644 --- a/sys/amd64/amd64/locore.S +++ b/sys/amd64/amd64/locore.S @@ -91,11 +91,12 @@ ENTRY(btext) /* la57_trampoline(%rdi pml5) */ ENTRY(la57_trampoline) - movq %rsp,%r11 - movq %rbx,%r10 - movq %rbp,%r9 - movq %cr4,%r8 - orl $CR4_LA57,%r8d + movq %rsp,lst(%rip) + movq %rbx,lst+8(%rip) + movq %rbp,lst+0x10(%rip) + movq %cr4,%rax + orq $CR4_LA57,%rax + movq %rax,lst+0x18(%rip) leaq la57_trampoline_end(%rip),%rsp movq %cr0,%rbp @@ -143,12 +144,14 @@ l1: movl $(3<<3),%eax lretl .code64 -l2: movq %r11,%rsp - movq %r10,%rbx - movq %r9,%rbp - movq %r8,%cr4 +l2: movq lst(%rip),%rsp + movq lst+8(%rip),%rbx + movq lst+0x10(%rip),%rbp + movq lst+0x18(%rip),%rax + movq %rax,%cr4 retq .p2align 4,0 +lst: .quad 0,0,0,0 ENTRY(la57_trampoline_gdt_desc) .word la57_trampoline_end - la57_trampoline_gdt .long 0, 0 /* filled by pmap_bootstrap_la57 */