Index: kernel/arch/sparc64/src/asm.S
===================================================================
--- kernel/arch/sparc64/src/asm.S	(revision c98e6ee244a8e271a395a052069c23bca4f8b538)
+++ kernel/arch/sparc64/src/asm.S	(revision 9fcdb2e47bf10ab0360bec803e2a1699dbf56f42)
@@ -42,4 +42,5 @@
 .global memcpy
 memcpy:
+	mov	%o0, %o3		! save dst
 	add	%o1, 7, %g1
 	and	%g1, -8, %g1
@@ -60,5 +61,5 @@
 2:
 	jmp	%o7 + 8			! exit point
-	mov	%o1, %o0
+	mov	%o3, %o0
 3:
 	and	%g1, -8, %g1
@@ -94,5 +95,5 @@
 
 	jmp	%o7 + 8			! exit point
-	mov	%o1, %o0
+	mov	%o3, %o0
 
 /*
@@ -101,4 +102,5 @@
 .global memcpy_from_uspace
 memcpy_from_uspace:
+	mov	%o0, %o3		! save dst
 	add	%o1, 7, %g1
 	and	%g1, -8, %g1
@@ -119,5 +121,5 @@
 2:
 	jmp	%o7 + 8			! exit point
-	mov	%o1, %o0
+	mov	%o3, %o0
 3:
 	and	%g1, -8, %g1
@@ -153,5 +155,5 @@
 
 	jmp	%o7 + 8			! exit point
-	mov	%o1, %o0
+	mov	%o3, %o0
 
 /*
@@ -160,4 +162,5 @@
 .global memcpy_to_uspace
 memcpy_to_uspace:
+	mov	%o0, %o3		! save dst
 	add	%o1, 7, %g1
 	and	%g1, -8, %g1
@@ -178,5 +181,5 @@
 2:
 	jmp	%o7 + 8			! exit point
-	mov	%o1, %o0
+	mov	%o3, %o0
 3:
 	and	%g1, -8, %g1
@@ -212,5 +215,5 @@
 
 	jmp	%o7 + 8			! exit point
-	mov	%o1, %o0
+	mov	%o3, %o0
 
 .global memcpy_from_uspace_failover_address
