Index: sys/arch/powerpc/booke/booke_pmap.c =================================================================== RCS file: /cvsroot/src/sys/arch/powerpc/booke/booke_pmap.c,v retrieving revision 1.38 diff -u -p -r1.38 booke_pmap.c --- sys/arch/powerpc/booke/booke_pmap.c 17 Apr 2023 06:46:53 -0000 1.38 +++ sys/arch/powerpc/booke/booke_pmap.c 24 Sep 2024 07:27:35 -0000 @@ -356,8 +360,8 @@ void pmap_copy_page(paddr_t src, paddr_t dst) { const size_t line_size = curcpu()->ci_ci.dcache_line_size; - vaddr_t src_va = pmap_md_map_poolpage(src, NBPG); - vaddr_t dst_va = pmap_md_map_poolpage(dst, NBPG); + register vaddr_t src_va __asm("r20") = pmap_md_map_poolpage(src, NBPG); + register vaddr_t dst_va __asm("r21") = pmap_md_map_poolpage(dst, NBPG); const vaddr_t end = src_va + PAGE_SIZE; PMAP_COUNT(copied_pages); @@ -372,14 +376,12 @@ pmap_copy_page(paddr_t src, paddr_t dst) src_va += 32, dst_va += 32, i += 32) { register_t tmp; __asm __volatile( - "mr %[tmp],31" "\n\t" - "lmw 24,0(%[src])" "\n\t" - "stmw 24,0(%[dst])" "\n\t" - "mr 31,%[tmp]" "\n\t" + "lmw 22,0(%[src])" "\n\t" + "stmw 22,0(%[dst])" "\n\t" : [tmp] "=&r"(tmp) : [src] "b"(src_va), [dst] "b"(dst_va) - : "r24", "r25", "r26", "r27", - "r28", "r29", "r30", "memory"); + : "r22", "r23", "r24", "r25", + "r26", "r27", "r28", "r29", "memory"); } } pmap_md_unmap_poolpage(src_va, NBPG);