[runtime] Don't stash M to stack in arm64 VDSO calls

In fa7ad458444fd2604fb3930aa6b46f12f367dd59, I failed to remove a line
from a previous iteration where I stored the M on the stack. No stack
space is being reserved for the M, which is potentially problematic for
syscalls that don't reserve any space / reserve less than 8 bytes of
space for frame.

Change-Id: I61d82a91cf5a3a21e9b29a9913e1576cb5c0fed4
diff --git a/src/runtime/mkfuchsiavdso.go b/src/runtime/mkfuchsiavdso.go
index a695256..11f22e7 100644
--- a/src/runtime/mkfuchsiavdso.go
+++ b/src/runtime/mkfuchsiavdso.go
@@ -258,7 +258,6 @@
 		fmt.Fprint(buf, "\tMOVD LR, m_vdsoPC(R21)\n")
 		fmt.Fprint(buf, "\tMOVD RSP, R20\n")
 		fmt.Fprint(buf, "\tMOVD R20, m_vdsoSP(R21)\n")
-		fmt.Fprint(buf, "\tMOVD R21, 8(RSP)\n")
 	}
 
 	if _, ok := blockingSyscalls[def.Name]; ok {
diff --git a/src/runtime/vdsocalls_fuchsia_arm64.s b/src/runtime/vdsocalls_fuchsia_arm64.s
index b35b049..24296fd 100644
--- a/src/runtime/vdsocalls_fuchsia_arm64.s
+++ b/src/runtime/vdsocalls_fuchsia_arm64.s
@@ -18,7 +18,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW clock_id+0(FP), R0
 	BL vdso_zx_clock_get(SB)
 	MOVD R0, ret+8(FP)
@@ -34,7 +33,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW clock_id+0(FP), R0
 	MOVD out+8(FP), R1
 	BL vdso_zx_clock_get_new(SB)
@@ -51,7 +49,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	BL vdso_zx_clock_get_monotonic(SB)
 	MOVD R0, ret+0(FP)
 	MOVD g_m(g), R21
@@ -66,7 +63,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD deadline+0(FP), R0
 	BL vdso_zx_nanosleep(SB)
 	MOVW R0, ret+8(FP)
@@ -82,7 +78,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	BL vdso_zx_ticks_get(SB)
 	MOVD R0, ret+0(FP)
 	MOVD g_m(g), R21
@@ -97,7 +92,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	BL vdso_zx_ticks_per_second(SB)
 	MOVD R0, ret+0(FP)
 	MOVD g_m(g), R21
@@ -112,7 +106,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD nanoseconds+0(FP), R0
 	BL vdso_zx_deadline_after(SB)
 	MOVD R0, ret+8(FP)
@@ -128,7 +121,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW clock_id+4(FP), R1
 	MOVD offset+8(FP), R2
@@ -146,7 +138,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	BL vdso_zx_system_get_dcache_line_size(SB)
 	MOVW R0, ret+0(FP)
 	MOVD g_m(g), R21
@@ -161,7 +152,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	BL vdso_zx_system_get_num_cpus(SB)
 	MOVW R0, ret+0(FP)
 	MOVD g_m(g), R21
@@ -176,7 +166,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD version+0(FP), R0
 	MOVD version_size+8(FP), R1
 	BL vdso_zx_system_get_version(SB)
@@ -193,7 +182,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	BL vdso_zx_system_get_physmem(SB)
 	MOVD R0, ret+0(FP)
 	MOVD g_m(g), R21
@@ -208,7 +196,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW kind+0(FP), R0
 	MOVD features+8(FP), R1
 	BL vdso_zx_system_get_features(SB)
@@ -225,7 +212,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD addr+0(FP), R0
 	MOVD size+8(FP), R1
 	MOVW options+16(FP), R2
@@ -243,7 +229,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_handle_close(SB)
 	MOVW R0, ret+8(FP)
@@ -259,7 +244,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD handles+0(FP), R0
 	MOVD num_handles+8(FP), R1
 	BL vdso_zx_handle_close_many(SB)
@@ -276,7 +260,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW rights+4(FP), R1
 	MOVD out+8(FP), R2
@@ -294,7 +277,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW rights+4(FP), R1
 	MOVD out+8(FP), R2
@@ -312,7 +294,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	CALL runtime·entersyscall(SB)
 	MOVW handle+0(FP), R0
 	MOVW signals+4(FP), R1
@@ -333,7 +314,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	CALL runtime·entersyscall(SB)
 	MOVD items+0(FP), R0
 	MOVD count+8(FP), R1
@@ -353,7 +333,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW port+4(FP), R1
 	MOVD key+8(FP), R2
@@ -373,7 +352,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW clear_mask+4(FP), R1
 	MOVW set_mask+8(FP), R2
@@ -391,7 +369,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW clear_mask+4(FP), R1
 	MOVW set_mask+8(FP), R2
@@ -409,7 +386,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW property+4(FP), R1
 	MOVD value+8(FP), R2
@@ -428,7 +404,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW property+4(FP), R1
 	MOVD value+8(FP), R2
@@ -447,7 +422,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW scope+4(FP), R1
 	MOVD cookie+8(FP), R2
@@ -465,7 +439,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW scope+4(FP), R1
 	MOVD cookie+8(FP), R2
@@ -483,7 +456,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW topic+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -504,7 +476,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD koid+8(FP), R1
 	MOVW rights+16(FP), R2
@@ -523,7 +494,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW profile+4(FP), R1
 	MOVW options+8(FP), R2
@@ -541,7 +511,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW options+0(FP), R0
 	MOVD out0+8(FP), R1
 	MOVD out1+16(FP), R2
@@ -559,7 +528,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bytes+8(FP), R2
@@ -582,7 +550,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bytes+8(FP), R2
@@ -605,7 +572,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bytes+8(FP), R2
@@ -626,7 +592,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD deadline+8(FP), R2
@@ -647,7 +612,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD deadline+0(FP), R0
 	MOVD args+8(FP), R1
 	MOVD actual_bytes+16(FP), R2
@@ -666,7 +630,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD deadline+8(FP), R2
@@ -687,7 +650,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW options+0(FP), R0
 	MOVD out0+8(FP), R1
 	MOVD out1+16(FP), R2
@@ -705,7 +667,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -725,7 +686,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -745,7 +705,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW socket_to_share+4(FP), R1
 	BL vdso_zx_socket_share(SB)
@@ -762,7 +721,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD out_socket+8(FP), R1
 	BL vdso_zx_socket_accept(SB)
@@ -779,7 +737,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	BL vdso_zx_socket_shutdown(SB)
@@ -796,7 +753,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	BL vdso_zx_thread_exit(SB)
 	MOVD g_m(g), R21
 	MOVD $0, m_vdsoSP(R21)
@@ -810,7 +766,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW process+0(FP), R0
 	MOVD name+8(FP), R1
 	MOVD name_size+16(FP), R2
@@ -830,7 +785,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD thread_entry+8(FP), R1
 	MOVD stack+16(FP), R2
@@ -850,7 +804,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW kind+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -869,7 +822,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW kind+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -888,7 +840,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW prio+0(FP), R0
 	BL vdso_zx_thread_set_priority(SB)
 	MOVW R0, ret+8(FP)
@@ -904,7 +855,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD retcode+0(FP), R0
 	BL vdso_zx_process_exit(SB)
 	MOVD g_m(g), R21
@@ -919,7 +869,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW job+0(FP), R0
 	MOVD name+8(FP), R1
 	MOVD name_size+16(FP), R2
@@ -940,7 +889,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW thread+4(FP), R1
 	MOVD entry+8(FP), R2
@@ -961,7 +909,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD vaddr+8(FP), R1
 	MOVD buffer+16(FP), R2
@@ -981,7 +928,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD vaddr+8(FP), R1
 	MOVD buffer+16(FP), R2
@@ -1001,7 +947,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW parent_job+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD out+8(FP), R2
@@ -1019,7 +964,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVW topic+8(FP), R2
@@ -1039,7 +983,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW port+4(FP), R1
 	MOVD key+8(FP), R2
@@ -1058,7 +1001,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD token+8(FP), R1
 	BL vdso_zx_task_suspend(SB)
@@ -1075,7 +1017,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD token+8(FP), R1
 	BL vdso_zx_task_suspend_token(SB)
@@ -1092,7 +1033,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW port+4(FP), R1
 	MOVW options+8(FP), R2
@@ -1110,7 +1050,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_task_kill(SB)
 	MOVW R0, ret+8(FP)
@@ -1126,7 +1065,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW options+0(FP), R0
 	MOVD out+8(FP), R1
 	BL vdso_zx_event_create(SB)
@@ -1143,7 +1081,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW options+0(FP), R0
 	MOVD out0+8(FP), R1
 	MOVD out1+16(FP), R2
@@ -1161,7 +1098,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD value_ptr+0(FP), R0
 	MOVW current_value+8(FP), R1
 	MOVW new_futex_owner+12(FP), R2
@@ -1180,7 +1116,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD value_ptr+0(FP), R0
 	MOVW wake_count+8(FP), R1
 	BL vdso_zx_futex_wake(SB)
@@ -1197,7 +1132,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD value_ptr+0(FP), R0
 	MOVW wake_count+8(FP), R1
 	MOVW current_value+12(FP), R2
@@ -1218,7 +1152,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD value_ptr+0(FP), R0
 	BL vdso_zx_futex_wake_single_owner(SB)
 	MOVW R0, ret+8(FP)
@@ -1234,7 +1167,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD value_ptr+0(FP), R0
 	MOVW current_value+8(FP), R1
 	MOVD requeue_ptr+16(FP), R2
@@ -1254,7 +1186,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD value_ptr+0(FP), R0
 	MOVD koid+8(FP), R1
 	BL vdso_zx_futex_get_owner(SB)
@@ -1271,7 +1202,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW options+0(FP), R0
 	MOVD out+8(FP), R1
 	BL vdso_zx_port_create(SB)
@@ -1288,7 +1218,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD packet+8(FP), R1
 	BL vdso_zx_port_queue(SB)
@@ -1305,7 +1234,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	CALL runtime·entersyscall(SB)
 	MOVW handle+0(FP), R0
 	MOVD deadline+8(FP), R1
@@ -1325,7 +1253,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW source+4(FP), R1
 	MOVD key+8(FP), R2
@@ -1343,7 +1270,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW options+0(FP), R0
 	MOVW clock_id+4(FP), R1
 	MOVD out+8(FP), R2
@@ -1361,7 +1287,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD deadline+8(FP), R1
 	MOVD slack+16(FP), R2
@@ -1379,7 +1304,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_timer_cancel(SB)
 	MOVW R0, ret+8(FP)
@@ -1395,7 +1319,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD size+0(FP), R0
 	MOVW options+8(FP), R1
 	MOVD out+16(FP), R2
@@ -1413,7 +1336,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD offset+16(FP), R2
@@ -1432,7 +1354,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD offset+16(FP), R2
@@ -1451,7 +1372,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD size+8(FP), R1
 	BL vdso_zx_vmo_get_size(SB)
@@ -1468,7 +1388,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD size+8(FP), R1
 	BL vdso_zx_vmo_set_size(SB)
@@ -1485,7 +1404,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW op+4(FP), R1
 	MOVD offset+8(FP), R2
@@ -1506,7 +1424,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD offset+8(FP), R2
@@ -1526,7 +1443,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW cache_policy+4(FP), R1
 	BL vdso_zx_vmo_set_cache_policy(SB)
@@ -1543,7 +1459,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW vmex+4(FP), R1
 	MOVD out+8(FP), R2
@@ -1561,7 +1476,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW parent_vmar+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD offset+8(FP), R2
@@ -1582,7 +1496,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_vmar_destroy(SB)
 	MOVW R0, ret+8(FP)
@@ -1598,7 +1511,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD vmar_offset+8(FP), R2
@@ -1620,7 +1532,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD addr+8(FP), R1
 	MOVD len+16(FP), R2
@@ -1638,7 +1549,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD addr+8(FP), R2
@@ -1657,7 +1567,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_cprng_draw_once(SB)
@@ -1674,7 +1583,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_cprng_draw(SB)
@@ -1690,7 +1598,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_cprng_add_entropy(SB)
@@ -1707,7 +1614,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD elem_count+0(FP), R0
 	MOVD elem_size+8(FP), R1
 	MOVW options+16(FP), R2
@@ -1727,7 +1633,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD elem_size+8(FP), R1
 	MOVD data+16(FP), R2
@@ -1747,7 +1652,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD elem_size+8(FP), R1
 	MOVD data+16(FP), R2
@@ -1767,7 +1671,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW root_job+0(FP), R0
 	MOVD profile+8(FP), R1
 	MOVD out+16(FP), R2
@@ -1785,7 +1688,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW vmar_handle+0(FP), R0
 	MOVD addr+8(FP), R1
 	MOVD size+16(FP), R2
@@ -1804,7 +1706,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD value_ptr+0(FP), R0
 	MOVW wake_count+8(FP), R1
 	MOVW new_value+12(FP), R2
@@ -1822,7 +1723,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD out+8(FP), R2
@@ -1840,7 +1740,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -1859,7 +1758,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -1878,7 +1776,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD data+8(FP), R1
 	MOVW offset+16(FP), R2
@@ -1898,7 +1795,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW action+4(FP), R1
 	MOVW options+8(FP), R2
@@ -1917,7 +1813,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW id+4(FP), R1
 	MOVW arg0+8(FP), R2
@@ -1936,7 +1831,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW kind+4(FP), R1
 	MOVW action+8(FP), R2
@@ -1957,7 +1851,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD buffer_size+16(FP), R2
@@ -1975,7 +1868,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_debug_write(SB)
@@ -1992,7 +1884,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD buffer_size+16(FP), R2
@@ -2010,7 +1901,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW src_obj+0(FP), R0
 	MOVW src_num+4(FP), R1
 	MOVW options+8(FP), R2
@@ -2029,7 +1919,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW port_handle+4(FP), R1
 	MOVD key+8(FP), R2
@@ -2048,7 +1937,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD out_timestamp+8(FP), R1
 	BL vdso_zx_interrupt_wait(SB)
@@ -2065,7 +1953,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_interrupt_destroy(SB)
 	MOVW R0, ret+8(FP)
@@ -2081,7 +1968,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_interrupt_ack(SB)
 	MOVW R0, ret+8(FP)
@@ -2097,7 +1983,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD timestamp+8(FP), R2
@@ -2115,7 +2000,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW vcpu+4(FP), R1
 	MOVW options+8(FP), R2
@@ -2133,7 +2017,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVD io_addr+4(FP), R1
 	MOVW len+8(FP), R2
@@ -2151,7 +2034,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW bti+0(FP), R0
 	MOVD size+8(FP), R1
 	MOVW alignment_log2+16(FP), R2
@@ -2170,7 +2052,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVD paddr+8(FP), R1
 	MOVD size+16(FP), R2
@@ -2189,7 +2070,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVW typ+4(FP), R1
 	MOVD desc+8(FP), R2
@@ -2209,7 +2089,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW iommu+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bti_id+8(FP), R2
@@ -2228,7 +2107,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVW vmo+8(FP), R2
@@ -2251,7 +2129,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_bti_release_quarantine(SB)
 	MOVW R0, ret+8(FP)
@@ -2267,7 +2144,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_pmt_unpin(SB)
 	MOVW R0, ret+8(FP)
@@ -2283,7 +2159,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVD format+8(FP), R1
 	MOVD width+16(FP), R2
@@ -2303,7 +2178,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVW vmo+4(FP), R1
 	MOVW len+8(FP), R2
@@ -2325,7 +2199,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD acpi_rsdp+8(FP), R1
 	MOVD smbios+16(FP), R2
@@ -2343,7 +2216,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW handle+0(FP), R0
 	MOVD parameters+8(FP), R1
 	MOVD out_smc_result+16(FP), R2
@@ -2361,7 +2233,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW parent_rsrc+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD base+8(FP), R2
@@ -2383,7 +2254,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVW kernel_vmo+4(FP), R1
 	MOVW bootimage_vmo+8(FP), R2
@@ -2401,7 +2271,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD buffer_size+16(FP), R2
@@ -2419,7 +2288,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW resource+0(FP), R0
 	MOVW cmd+4(FP), R1
 	MOVD arg+8(FP), R2
@@ -2437,7 +2305,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW options+0(FP), R0
 	MOVD out_pager+8(FP), R1
 	BL vdso_zx_pager_create(SB)
@@ -2454,7 +2321,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW pager+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVW port+8(FP), R2
@@ -2475,7 +2341,6 @@
 	MOVD LR, m_vdsoPC(R21)
 	MOVD RSP, R20
 	MOVD R20, m_vdsoSP(R21)
-	MOVD R21, 8(RSP)
 	MOVW pager+0(FP), R0
 	MOVW pager_vmo+4(FP), R1
 	MOVD offset+8(FP), R2