Revert "[runtime] Use vdso{SP,PC} to allow pprof tracebacks for VDSO calls"

This reverts commit 570718fb20e426ee5091b3f512966a5913feac87. This is
suspected to cause flakiness in some CI tests.

Change-Id: I4486d0f1bb5b48ed2ad45443c487a383c3083ff3
diff --git a/src/runtime/mkfuchsiavdso.go b/src/runtime/mkfuchsiavdso.go
index 32bed9d..fb0c55b 100644
--- a/src/runtime/mkfuchsiavdso.go
+++ b/src/runtime/mkfuchsiavdso.go
@@ -150,8 +150,6 @@
 // Zircon system calls for the Fuchsia OS.
 // Generated by mkfuchsia.go, do not edit.
 
-#include "go_asm.h"
-#include "go_tls.h"
 #include "textflag.h"
 #include "funcdata.h"
 
@@ -221,12 +219,11 @@
 		retReg = "AX"
 		suffix8 = "Q"
 		suffix4 = "L"
-		frameSize = 8
 		switch len(def.Args) {
 		case 7:
-			frameSize += 16 + 8
+			frameSize = 16 + 8
 		case 8:
-			frameSize += 16 + 2*8
+			frameSize = 16 + 2*8
 		}
 	case "arm64":
 		regArgs = arm64RegArgs
@@ -242,24 +239,6 @@
 	fmt.Fprint(buf, "\tGO_ARGS\n")
 	fmt.Fprint(buf, "\tNO_LOCAL_POINTERS\n")
 
-	// Set vdso{PC,SP} so that pprof tracebacks work for VDSO calls.
-	switch *arch {
-	case "amd64":
-		fmt.Fprint(buf, "\tget_tls(CX)\n")
-		fmt.Fprint(buf, "\tMOVQ g(CX), AX\n")
-		fmt.Fprint(buf, "\tMOVQ g_m(AX), R14\n")
-		fmt.Fprint(buf, "\tPUSHQ R14\n")
-		fmt.Fprintf(buf, "\tMOVQ %d(SP), DX\n", frameSize+16)
-		fmt.Fprint(buf, "\tMOVQ DX, m_vdsoPC(R14)\n")
-		fmt.Fprintf(buf, "\tLEAQ %d(SP), DX\n", frameSize+16)
-		fmt.Fprint(buf, "\tMOVQ DX, m_vdsoSP(R14)\n")
-	case "arm64":
-		fmt.Fprint(buf, "\tMOVD g_m(g), R21\n")
-		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")
-	}
-
 	if _, ok := blockingSyscalls[def.Name]; ok {
 		fmt.Fprintf(buf, "\tCALL runtime·entersyscall(SB)\n")
 	}
@@ -314,13 +293,5 @@
 	if _, ok := blockingSyscalls[def.Name]; ok {
 		fmt.Fprintf(buf, "\t%s runtime·exitsyscall(SB)\n", callIns)
 	}
-	// Clear vdsoSP. sigprof only checks vdsoSP for generating tracebacks, so we can leave vdsoPC alone.
-	switch *arch {
-	case "amd64":
-		fmt.Fprintf(buf, "\tPOPQ R14\n")
-		fmt.Fprintf(buf, "\tMOVQ $0, m_vdsoSP(R14)\n")
-	case "arm64":
-		fmt.Fprintf(buf, "\tMOVD $0, m_vdsoSP(R21)\n")
-	}
 	fmt.Fprintf(buf, "\tRET\n")
 }
diff --git a/src/runtime/vdsocalls_fuchsia_amd64.s b/src/runtime/vdsocalls_fuchsia_amd64.s
index 70460d7..3faaa57 100644
--- a/src/runtime/vdsocalls_fuchsia_amd64.s
+++ b/src/runtime/vdsocalls_fuchsia_amd64.s
@@ -5,389 +5,199 @@
 // Zircon system calls for the Fuchsia OS.
 // Generated by mkfuchsia.go, do not edit.
 
-#include "go_asm.h"
-#include "go_tls.h"
 #include "textflag.h"
 #include "funcdata.h"
 
 // func vdsoCall_zx_clock_get(clock_id uint32) int64
-TEXT runtime·vdsoCall_zx_clock_get(SB),NOSPLIT,$8-16
+TEXT runtime·vdsoCall_zx_clock_get(SB),NOSPLIT,$0-16
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL clock_id+0(FP), DI
 	MOVQ vdso_zx_clock_get(SB), AX
 	CALL AX
 	MOVQ AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_clock_get_new(clock_id uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_clock_get_new(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_clock_get_new(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL clock_id+0(FP), DI
 	MOVQ out+8(FP), SI
 	MOVQ vdso_zx_clock_get_new(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_clock_get_monotonic() int64
-TEXT runtime·vdsoCall_zx_clock_get_monotonic(SB),NOSPLIT,$8-8
+TEXT runtime·vdsoCall_zx_clock_get_monotonic(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ vdso_zx_clock_get_monotonic(SB), AX
 	CALL AX
 	MOVQ AX, ret+0(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_nanosleep(deadline int64) int32
-TEXT runtime·vdsoCall_zx_nanosleep(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_nanosleep(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ deadline+0(FP), DI
 	MOVQ vdso_zx_nanosleep(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_ticks_get() uint64
-TEXT runtime·vdsoCall_zx_ticks_get(SB),NOSPLIT,$8-8
+TEXT runtime·vdsoCall_zx_ticks_get(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ vdso_zx_ticks_get(SB), AX
 	CALL AX
 	MOVQ AX, ret+0(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_ticks_per_second() uint64
-TEXT runtime·vdsoCall_zx_ticks_per_second(SB),NOSPLIT,$8-8
+TEXT runtime·vdsoCall_zx_ticks_per_second(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ vdso_zx_ticks_per_second(SB), AX
 	CALL AX
 	MOVQ AX, ret+0(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_deadline_after(nanoseconds int64) int64
-TEXT runtime·vdsoCall_zx_deadline_after(SB),NOSPLIT,$8-16
+TEXT runtime·vdsoCall_zx_deadline_after(SB),NOSPLIT,$0-16
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ nanoseconds+0(FP), DI
 	MOVQ vdso_zx_deadline_after(SB), AX
 	CALL AX
 	MOVQ AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32
-TEXT runtime·vdsoCall_zx_clock_adjust(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_clock_adjust(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL clock_id+4(FP), SI
 	MOVQ offset+8(FP), DX
 	MOVQ vdso_zx_clock_adjust(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_get_dcache_line_size() uint32
-TEXT runtime·vdsoCall_zx_system_get_dcache_line_size(SB),NOSPLIT,$8-4
+TEXT runtime·vdsoCall_zx_system_get_dcache_line_size(SB),NOSPLIT,$0-4
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ vdso_zx_system_get_dcache_line_size(SB), AX
 	CALL AX
 	MOVL AX, ret+0(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_get_num_cpus() uint32
-TEXT runtime·vdsoCall_zx_system_get_num_cpus(SB),NOSPLIT,$8-4
+TEXT runtime·vdsoCall_zx_system_get_num_cpus(SB),NOSPLIT,$0-4
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ vdso_zx_system_get_num_cpus(SB), AX
 	CALL AX
 	MOVL AX, ret+0(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_get_version(version unsafe.Pointer, version_size uint) int32
-TEXT runtime·vdsoCall_zx_system_get_version(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_system_get_version(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ version+0(FP), DI
 	MOVQ version_size+8(FP), SI
 	MOVQ vdso_zx_system_get_version(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_get_physmem() uint64
-TEXT runtime·vdsoCall_zx_system_get_physmem(SB),NOSPLIT,$8-8
+TEXT runtime·vdsoCall_zx_system_get_physmem(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ vdso_zx_system_get_physmem(SB), AX
 	CALL AX
 	MOVQ AX, ret+0(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_system_get_features(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_system_get_features(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL kind+0(FP), DI
 	MOVQ features+8(FP), SI
 	MOVQ vdso_zx_system_get_features(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32
-TEXT runtime·vdsoCall_zx_cache_flush(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_cache_flush(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ addr+0(FP), DI
 	MOVQ size+8(FP), SI
 	MOVL options+16(FP), DX
 	MOVQ vdso_zx_cache_flush(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_handle_close(handle uint32) int32
-TEXT runtime·vdsoCall_zx_handle_close(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_handle_close(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_handle_close(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32
-TEXT runtime·vdsoCall_zx_handle_close_many(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_handle_close_many(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ handles+0(FP), DI
 	MOVQ num_handles+8(FP), SI
 	MOVQ vdso_zx_handle_close_many(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_handle_duplicate(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_handle_duplicate(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL rights+4(FP), SI
 	MOVQ out+8(FP), DX
 	MOVQ vdso_zx_handle_duplicate(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_handle_replace(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_handle_replace(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL rights+4(FP), SI
 	MOVQ out+8(FP), DX
 	MOVQ vdso_zx_handle_replace(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_object_wait_one(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_object_wait_one(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	CALL runtime·entersyscall(SB)
 	MOVL handle+0(FP), DI
 	MOVL signals+4(FP), SI
@@ -397,22 +207,12 @@
 	CALL AX
 	MOVL AX, ret+24(FP)
 	CALL runtime·exitsyscall(SB)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_wait_many(items unsafe.Pointer, count uint, deadline int64) int32
-TEXT runtime·vdsoCall_zx_object_wait_many(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_object_wait_many(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	CALL runtime·entersyscall(SB)
 	MOVQ items+0(FP), DI
 	MOVQ count+8(FP), SI
@@ -421,22 +221,12 @@
 	CALL AX
 	MOVL AX, ret+24(FP)
 	CALL runtime·exitsyscall(SB)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32
-TEXT runtime·vdsoCall_zx_object_wait_async(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_object_wait_async(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL port+4(FP), SI
 	MOVQ key+8(FP), DX
@@ -445,66 +235,36 @@
 	MOVQ vdso_zx_object_wait_async(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32
-TEXT runtime·vdsoCall_zx_object_signal(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_object_signal(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL clear_mask+4(FP), SI
 	MOVL set_mask+8(FP), DX
 	MOVQ vdso_zx_object_signal(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32
-TEXT runtime·vdsoCall_zx_object_signal_peer(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_object_signal_peer(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL clear_mask+4(FP), SI
 	MOVL set_mask+8(FP), DX
 	MOVQ vdso_zx_object_signal_peer(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
-TEXT runtime·vdsoCall_zx_object_get_property(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_object_get_property(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL property+4(FP), SI
 	MOVQ value+8(FP), DX
@@ -512,22 +272,12 @@
 	MOVQ vdso_zx_object_get_property(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
-TEXT runtime·vdsoCall_zx_object_set_property(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_object_set_property(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL property+4(FP), SI
 	MOVQ value+8(FP), DX
@@ -535,66 +285,36 @@
 	MOVQ vdso_zx_object_set_property(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_set_cookie(handle uint32, scope uint32, cookie uint64) int32
-TEXT runtime·vdsoCall_zx_object_set_cookie(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_object_set_cookie(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL scope+4(FP), SI
 	MOVQ cookie+8(FP), DX
 	MOVQ vdso_zx_object_set_cookie(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_get_cookie(handle uint32, scope uint32, cookie unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_object_get_cookie(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_object_get_cookie(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL scope+4(FP), SI
 	MOVQ cookie+8(FP), DX
 	MOVQ vdso_zx_object_get_cookie(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_object_get_info(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_object_get_info(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL topic+4(FP), SI
 	MOVQ buffer+8(FP), DX
@@ -604,22 +324,12 @@
 	MOVQ vdso_zx_object_get_info(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_object_get_child(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_object_get_child(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ koid+8(FP), SI
 	MOVL rights+16(FP), DX
@@ -627,66 +337,36 @@
 	MOVQ vdso_zx_object_get_child(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32
-TEXT runtime·vdsoCall_zx_object_set_profile(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_object_set_profile(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL profile+4(FP), SI
 	MOVL options+8(FP), DX
 	MOVQ vdso_zx_object_set_profile(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_channel_create(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_channel_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL options+0(FP), DI
 	MOVQ out0+8(FP), SI
 	MOVQ out1+16(FP), DX
 	MOVQ vdso_zx_channel_create(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_channel_read(SB),NOSPLIT,$40-52
+TEXT runtime·vdsoCall_zx_channel_read(SB),NOSPLIT,$32-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 56(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 56(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ bytes+8(FP), DX
@@ -705,22 +385,12 @@
 	POPQ R13
 	MOVQ BP, SP
 	MOVL AX, ret+48(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_channel_read_etc(SB),NOSPLIT,$40-52
+TEXT runtime·vdsoCall_zx_channel_read_etc(SB),NOSPLIT,$32-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 56(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 56(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ bytes+8(FP), DX
@@ -739,22 +409,12 @@
 	POPQ R13
 	MOVQ BP, SP
 	MOVL AX, ret+48(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
-TEXT runtime·vdsoCall_zx_channel_write(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_channel_write(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ bytes+8(FP), DX
@@ -764,22 +424,12 @@
 	MOVQ vdso_zx_channel_write(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_channel_call_noretry(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_channel_call_noretry(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ deadline+8(FP), DX
@@ -789,22 +439,12 @@
 	MOVQ vdso_zx_channel_call_noretry(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_channel_call_finish(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_channel_call_finish(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ deadline+0(FP), DI
 	MOVQ args+8(FP), SI
 	MOVQ actual_bytes+16(FP), DX
@@ -812,22 +452,12 @@
 	MOVQ vdso_zx_channel_call_finish(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_channel_call(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_channel_call(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ deadline+8(FP), DX
@@ -837,44 +467,24 @@
 	MOVQ vdso_zx_channel_call(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_socket_create(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_socket_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL options+0(FP), DI
 	MOVQ out0+8(FP), SI
 	MOVQ out1+16(FP), DX
 	MOVQ vdso_zx_socket_create(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_socket_write(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_socket_write(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ buffer+8(FP), DX
@@ -883,22 +493,12 @@
 	MOVQ vdso_zx_socket_write(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_socket_read(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_socket_read(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ buffer+8(FP), DX
@@ -907,103 +507,53 @@
 	MOVQ vdso_zx_socket_read(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_socket_share(handle uint32, socket_to_share uint32) int32
-TEXT runtime·vdsoCall_zx_socket_share(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_socket_share(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL socket_to_share+4(FP), SI
 	MOVQ vdso_zx_socket_share(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_socket_accept(handle uint32, out_socket unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_socket_accept(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_socket_accept(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ out_socket+8(FP), SI
 	MOVQ vdso_zx_socket_accept(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32
-TEXT runtime·vdsoCall_zx_socket_shutdown(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_socket_shutdown(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ vdso_zx_socket_shutdown(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_thread_exit()
-TEXT runtime·vdsoCall_zx_thread_exit(SB),NOSPLIT,$8-0
+TEXT runtime·vdsoCall_zx_thread_exit(SB),NOSPLIT,$0-0
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ vdso_zx_thread_exit(SB), AX
 	CALL AX
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_thread_create(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_thread_create(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL process+0(FP), DI
 	MOVQ name+8(FP), SI
 	MOVQ name_size+16(FP), DX
@@ -1012,22 +562,12 @@
 	MOVQ vdso_zx_thread_create(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32
-TEXT runtime·vdsoCall_zx_thread_start(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_thread_start(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ thread_entry+8(FP), SI
 	MOVQ stack+16(FP), DX
@@ -1036,22 +576,12 @@
 	MOVQ vdso_zx_thread_start(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_thread_read_state(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_thread_read_state(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL kind+4(FP), SI
 	MOVQ buffer+8(FP), DX
@@ -1059,22 +589,12 @@
 	MOVQ vdso_zx_thread_read_state(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_thread_write_state(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_thread_write_state(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL kind+4(FP), SI
 	MOVQ buffer+8(FP), DX
@@ -1082,61 +602,31 @@
 	MOVQ vdso_zx_thread_write_state(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_thread_set_priority(prio int32) int32
-TEXT runtime·vdsoCall_zx_thread_set_priority(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_thread_set_priority(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL prio+0(FP), DI
 	MOVQ vdso_zx_thread_set_priority(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_process_exit(retcode int64)
-TEXT runtime·vdsoCall_zx_process_exit(SB),NOSPLIT,$8-8
+TEXT runtime·vdsoCall_zx_process_exit(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ retcode+0(FP), DI
 	MOVQ vdso_zx_process_exit(SB), AX
 	CALL AX
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_process_create(SB),NOSPLIT,$8-52
+TEXT runtime·vdsoCall_zx_process_create(SB),NOSPLIT,$0-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL job+0(FP), DI
 	MOVQ name+8(FP), SI
 	MOVQ name_size+16(FP), DX
@@ -1146,22 +636,12 @@
 	MOVQ vdso_zx_process_create(SB), AX
 	CALL AX
 	MOVL AX, ret+48(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32
-TEXT runtime·vdsoCall_zx_process_start(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_process_start(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL thread+4(FP), SI
 	MOVQ entry+8(FP), DX
@@ -1171,22 +651,12 @@
 	MOVQ vdso_zx_process_start(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_process_read_memory(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_process_read_memory(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vaddr+8(FP), SI
 	MOVQ buffer+16(FP), DX
@@ -1195,22 +665,12 @@
 	MOVQ vdso_zx_process_read_memory(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_process_write_memory(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_process_write_memory(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vaddr+8(FP), SI
 	MOVQ buffer+16(FP), DX
@@ -1219,44 +679,24 @@
 	MOVQ vdso_zx_process_write_memory(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_job_create(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_job_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL parent_job+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ out+8(FP), DX
 	MOVQ vdso_zx_job_create(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, count uint32) int32
-TEXT runtime·vdsoCall_zx_job_set_policy(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_job_set_policy(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVL topic+8(FP), DX
@@ -1265,22 +705,12 @@
 	MOVQ vdso_zx_job_set_policy(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_task_bind_exception_port(handle uint32, port uint32, key uint64, options uint32) int32
-TEXT runtime·vdsoCall_zx_task_bind_exception_port(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_task_bind_exception_port(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL port+4(FP), SI
 	MOVQ key+8(FP), DX
@@ -1288,149 +718,79 @@
 	MOVQ vdso_zx_task_bind_exception_port(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_task_suspend(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_task_suspend(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ token+8(FP), SI
 	MOVQ vdso_zx_task_suspend(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_task_suspend_token(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_task_suspend_token(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ token+8(FP), SI
 	MOVQ vdso_zx_task_suspend_token(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_task_resume_from_exception(handle uint32, port uint32, options uint32) int32
-TEXT runtime·vdsoCall_zx_task_resume_from_exception(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_task_resume_from_exception(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL port+4(FP), SI
 	MOVL options+8(FP), DX
 	MOVQ vdso_zx_task_resume_from_exception(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_task_kill(handle uint32) int32
-TEXT runtime·vdsoCall_zx_task_kill(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_task_kill(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_task_kill(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_event_create(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_event_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL options+0(FP), DI
 	MOVQ out+8(FP), SI
 	MOVQ vdso_zx_event_create(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_eventpair_create(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_eventpair_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL options+0(FP), DI
 	MOVQ out0+8(FP), SI
 	MOVQ out1+16(FP), DX
 	MOVQ vdso_zx_eventpair_create(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32
-TEXT runtime·vdsoCall_zx_futex_wait(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_futex_wait(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ value_ptr+0(FP), DI
 	MOVL current_value+8(FP), SI
 	MOVL new_futex_owner+12(FP), DX
@@ -1438,43 +798,23 @@
 	MOVQ vdso_zx_futex_wait(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32
-TEXT runtime·vdsoCall_zx_futex_wake(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_futex_wake(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ value_ptr+0(FP), DI
 	MOVL wake_count+8(FP), SI
 	MOVQ vdso_zx_futex_wake(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
-TEXT runtime·vdsoCall_zx_futex_requeue(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_futex_requeue(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ value_ptr+0(FP), DI
 	MOVL wake_count+8(FP), SI
 	MOVL current_value+12(FP), DX
@@ -1484,42 +824,22 @@
 	MOVQ vdso_zx_futex_requeue(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_futex_wake_single_owner(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_futex_wake_single_owner(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ value_ptr+0(FP), DI
 	MOVQ vdso_zx_futex_wake_single_owner(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
-TEXT runtime·vdsoCall_zx_futex_requeue_single_owner(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_futex_requeue_single_owner(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ value_ptr+0(FP), DI
 	MOVL current_value+8(FP), SI
 	MOVQ requeue_ptr+16(FP), DX
@@ -1528,85 +848,45 @@
 	MOVQ vdso_zx_futex_requeue_single_owner(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_futex_get_owner(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_futex_get_owner(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ value_ptr+0(FP), DI
 	MOVQ koid+8(FP), SI
 	MOVQ vdso_zx_futex_get_owner(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_port_create(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_port_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL options+0(FP), DI
 	MOVQ out+8(FP), SI
 	MOVQ vdso_zx_port_create(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_port_queue(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_port_queue(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ packet+8(FP), SI
 	MOVQ vdso_zx_port_queue(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_port_wait(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_port_wait(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	CALL runtime·entersyscall(SB)
 	MOVL handle+0(FP), DI
 	MOVQ deadline+8(FP), SI
@@ -1615,130 +895,70 @@
 	CALL AX
 	MOVL AX, ret+24(FP)
 	CALL runtime·exitsyscall(SB)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32
-TEXT runtime·vdsoCall_zx_port_cancel(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_port_cancel(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL source+4(FP), SI
 	MOVQ key+8(FP), DX
 	MOVQ vdso_zx_port_cancel(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_timer_create(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_timer_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL options+0(FP), DI
 	MOVL clock_id+4(FP), SI
 	MOVQ out+8(FP), DX
 	MOVQ vdso_zx_timer_create(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32
-TEXT runtime·vdsoCall_zx_timer_set(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_timer_set(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ deadline+8(FP), SI
 	MOVQ slack+16(FP), DX
 	MOVQ vdso_zx_timer_set(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_timer_cancel(handle uint32) int32
-TEXT runtime·vdsoCall_zx_timer_cancel(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_timer_cancel(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_timer_cancel(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmo_create(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_vmo_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ size+0(FP), DI
 	MOVL options+8(FP), SI
 	MOVQ out+16(FP), DX
 	MOVQ vdso_zx_vmo_create(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_vmo_read(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_vmo_read(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ buffer+8(FP), SI
 	MOVQ offset+16(FP), DX
@@ -1746,22 +966,12 @@
 	MOVQ vdso_zx_vmo_read(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_vmo_write(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_vmo_write(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ buffer+8(FP), SI
 	MOVQ offset+16(FP), DX
@@ -1769,64 +979,34 @@
 	MOVQ vdso_zx_vmo_write(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmo_get_size(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_vmo_get_size(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ size+8(FP), SI
 	MOVQ vdso_zx_vmo_get_size(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32
-TEXT runtime·vdsoCall_zx_vmo_set_size(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_vmo_set_size(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ size+8(FP), SI
 	MOVQ vdso_zx_vmo_set_size(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_vmo_op_range(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_vmo_op_range(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL op+4(FP), SI
 	MOVQ offset+8(FP), DX
@@ -1836,22 +1016,12 @@
 	MOVQ vdso_zx_vmo_op_range(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_clone(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmo_clone(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_vmo_clone(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ offset+8(FP), DX
@@ -1860,65 +1030,35 @@
 	MOVQ vdso_zx_vmo_clone(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32
-TEXT runtime·vdsoCall_zx_vmo_set_cache_policy(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_vmo_set_cache_policy(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL cache_policy+4(FP), SI
 	MOVQ vdso_zx_vmo_set_cache_policy(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmo_replace_as_executable(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_vmo_replace_as_executable(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL vmex+4(FP), SI
 	MOVQ out+8(FP), DX
 	MOVQ vdso_zx_vmo_replace_as_executable(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint64, size uint64, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmar_allocate(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_vmar_allocate(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL parent_vmar+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ offset+8(FP), DX
@@ -1928,42 +1068,22 @@
 	MOVQ vdso_zx_vmar_allocate(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmar_destroy(handle uint32) int32
-TEXT runtime·vdsoCall_zx_vmar_destroy(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_vmar_destroy(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_vmar_destroy(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint64, vmo uint32, vmo_offset uint64, len uint64, mapped_addr unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmar_map(SB),NOSPLIT,$32-52
+TEXT runtime·vdsoCall_zx_vmar_map(SB),NOSPLIT,$24-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 48(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 48(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ vmar_offset+8(FP), DX
@@ -1979,44 +1099,24 @@
 	POPQ R12
 	MOVQ BP, SP
 	MOVL AX, ret+48(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint64) int32
-TEXT runtime·vdsoCall_zx_vmar_unmap(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_vmar_unmap(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ addr+8(FP), SI
 	MOVQ len+16(FP), DX
 	MOVQ vdso_zx_vmar_unmap(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint64) int32
-TEXT runtime·vdsoCall_zx_vmar_protect(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_vmar_protect(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ addr+8(FP), DX
@@ -2024,84 +1124,44 @@
 	MOVQ vdso_zx_vmar_protect(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_cprng_draw_once(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_cprng_draw_once(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ buffer+0(FP), DI
 	MOVQ buffer_size+8(FP), SI
 	MOVQ vdso_zx_cprng_draw_once(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
-TEXT runtime·vdsoCall_zx_cprng_draw(SB),NOSPLIT,$8-16
+TEXT runtime·vdsoCall_zx_cprng_draw(SB),NOSPLIT,$0-16
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ buffer+0(FP), DI
 	MOVQ buffer_size+8(FP), SI
 	MOVQ vdso_zx_cprng_draw(SB), AX
 	CALL AX
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_cprng_add_entropy(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_cprng_add_entropy(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ buffer+0(FP), DI
 	MOVQ buffer_size+8(FP), SI
 	MOVQ vdso_zx_cprng_add_entropy(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_fifo_create(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_fifo_create(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ elem_count+0(FP), DI
 	MOVQ elem_size+8(FP), SI
 	MOVL options+16(FP), DX
@@ -2110,22 +1170,12 @@
 	MOVQ vdso_zx_fifo_create(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_fifo_read(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_fifo_read(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ elem_size+8(FP), SI
 	MOVQ data+16(FP), DX
@@ -2134,22 +1184,12 @@
 	MOVQ vdso_zx_fifo_read(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_fifo_write(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_fifo_write(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ elem_size+8(FP), SI
 	MOVQ data+16(FP), DX
@@ -2158,44 +1198,24 @@
 	MOVQ vdso_zx_fifo_write(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_profile_create(root_job uint32, profile unsafe.Pointer, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_profile_create(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_profile_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL root_job+0(FP), DI
 	MOVQ profile+8(FP), SI
 	MOVQ out+16(FP), DX
 	MOVQ vdso_zx_profile_create(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32
-TEXT runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL vmar_handle+0(FP), DI
 	MOVQ addr+8(FP), SI
 	MOVQ size+16(FP), DX
@@ -2203,66 +1223,36 @@
 	MOVQ vdso_zx_vmar_unmap_handle_close_thread_exit(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)
-TEXT runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$8-24
+TEXT runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0-24
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ value_ptr+0(FP), DI
 	MOVL wake_count+8(FP), SI
 	MOVL new_value+12(FP), DX
 	MOVL close_handle+16(FP), CX
 	MOVQ vdso_zx_futex_wake_handle_close_thread_exit(SB), AX
 	CALL AX
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_debuglog_create(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_debuglog_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ out+8(FP), DX
 	MOVQ vdso_zx_debuglog_create(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_debuglog_write(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_debuglog_write(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ buffer+8(FP), DX
@@ -2270,22 +1260,12 @@
 	MOVQ vdso_zx_debuglog_write(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_debuglog_read(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_debuglog_read(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ buffer+8(FP), DX
@@ -2293,22 +1273,12 @@
 	MOVQ vdso_zx_debuglog_read(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_ktrace_read(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_ktrace_read(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ data+8(FP), SI
 	MOVL offset+16(FP), DX
@@ -2317,22 +1287,12 @@
 	MOVQ vdso_zx_ktrace_read(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_ktrace_control(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_ktrace_control(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL action+4(FP), SI
 	MOVL options+8(FP), DX
@@ -2340,22 +1300,12 @@
 	MOVQ vdso_zx_ktrace_control(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32
-TEXT runtime·vdsoCall_zx_ktrace_write(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_ktrace_write(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL id+4(FP), SI
 	MOVL arg0+8(FP), DX
@@ -2363,22 +1313,12 @@
 	MOVQ vdso_zx_ktrace_write(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32
-TEXT runtime·vdsoCall_zx_mtrace_control(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_mtrace_control(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL kind+4(FP), SI
 	MOVL action+8(FP), DX
@@ -2388,87 +1328,47 @@
 	MOVQ vdso_zx_mtrace_control(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_debug_read(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_debug_read(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ buffer+8(FP), SI
 	MOVQ buffer_size+16(FP), DX
 	MOVQ vdso_zx_debug_read(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_debug_write(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_debug_write(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVQ buffer+0(FP), DI
 	MOVQ buffer_size+8(FP), SI
 	MOVQ vdso_zx_debug_write(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_debug_send_command(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_debug_send_command(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVQ buffer+8(FP), SI
 	MOVQ buffer_size+16(FP), DX
 	MOVQ vdso_zx_debug_send_command(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_interrupt_create(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_interrupt_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL src_obj+0(FP), DI
 	MOVL src_num+4(FP), SI
 	MOVL options+8(FP), DX
@@ -2476,22 +1376,12 @@
 	MOVQ vdso_zx_interrupt_create(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32
-TEXT runtime·vdsoCall_zx_interrupt_bind(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_interrupt_bind(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL port_handle+4(FP), SI
 	MOVQ key+8(FP), DX
@@ -2499,149 +1389,79 @@
 	MOVQ vdso_zx_interrupt_bind(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_interrupt_wait(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_interrupt_wait(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ out_timestamp+8(FP), SI
 	MOVQ vdso_zx_interrupt_wait(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_interrupt_destroy(handle uint32) int32
-TEXT runtime·vdsoCall_zx_interrupt_destroy(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_interrupt_destroy(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_interrupt_destroy(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_interrupt_ack(handle uint32) int32
-TEXT runtime·vdsoCall_zx_interrupt_ack(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_interrupt_ack(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_interrupt_ack(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32
-TEXT runtime·vdsoCall_zx_interrupt_trigger(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_interrupt_trigger(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ timestamp+8(FP), DX
 	MOVQ vdso_zx_interrupt_trigger(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32
-TEXT runtime·vdsoCall_zx_interrupt_bind_vcpu(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_interrupt_bind_vcpu(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL vcpu+4(FP), SI
 	MOVL options+8(FP), DX
 	MOVQ vdso_zx_interrupt_bind_vcpu(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32
-TEXT runtime·vdsoCall_zx_ioports_request(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_ioports_request(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVQ io_addr+4(FP), SI
 	MOVL len+8(FP), DX
 	MOVQ vdso_zx_ioports_request(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmo_create_contiguous(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_vmo_create_contiguous(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL bti+0(FP), DI
 	MOVQ size+8(FP), SI
 	MOVL alignment_log2+16(FP), DX
@@ -2649,22 +1469,12 @@
 	MOVQ vdso_zx_vmo_create_contiguous(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_vmo_create_physical(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_vmo_create_physical(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVQ paddr+8(FP), SI
 	MOVQ size+16(FP), DX
@@ -2672,22 +1482,12 @@
 	MOVQ vdso_zx_vmo_create_physical(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_iommu_create(SB),NOSPLIT,$8-36
+TEXT runtime·vdsoCall_zx_iommu_create(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVL typ+4(FP), SI
 	MOVQ desc+8(FP), DX
@@ -2696,22 +1496,12 @@
 	MOVQ vdso_zx_iommu_create(SB), AX
 	CALL AX
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_bti_create(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_bti_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL iommu+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ bti_id+8(FP), DX
@@ -2719,22 +1509,12 @@
 	MOVQ vdso_zx_bti_create(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, addrs_count uint, pmt unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_bti_pin(SB),NOSPLIT,$40-60
+TEXT runtime·vdsoCall_zx_bti_pin(SB),NOSPLIT,$32-60
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 56(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 56(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVL vmo+8(FP), DX
@@ -2753,62 +1533,32 @@
 	POPQ R13
 	MOVQ BP, SP
 	MOVL AX, ret+56(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_bti_release_quarantine(handle uint32) int32
-TEXT runtime·vdsoCall_zx_bti_release_quarantine(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_bti_release_quarantine(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_bti_release_quarantine(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_pmt_unpin(handle uint32) int32
-TEXT runtime·vdsoCall_zx_pmt_unpin(SB),NOSPLIT,$8-12
+TEXT runtime·vdsoCall_zx_pmt_unpin(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ vdso_zx_pmt_unpin(SB), AX
 	CALL AX
 	MOVL AX, ret+8(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_framebuffer_get_info(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_framebuffer_get_info(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVQ format+8(FP), SI
 	MOVQ width+16(FP), DX
@@ -2817,22 +1567,12 @@
 	MOVQ vdso_zx_framebuffer_get_info(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32
-TEXT runtime·vdsoCall_zx_framebuffer_set_range(SB),NOSPLIT,$32-36
+TEXT runtime·vdsoCall_zx_framebuffer_set_range(SB),NOSPLIT,$24-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 48(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 48(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVL vmo+4(FP), SI
 	MOVL len+8(FP), DX
@@ -2848,66 +1588,36 @@
 	POPQ R12
 	MOVQ BP, SP
 	MOVL AX, ret+32(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_pc_firmware_tables(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_pc_firmware_tables(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ acpi_rsdp+8(FP), SI
 	MOVQ smbios+16(FP), DX
 	MOVQ vdso_zx_pc_firmware_tables(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_smc_call(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_smc_call(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL handle+0(FP), DI
 	MOVQ parameters+8(FP), SI
 	MOVQ out_smc_result+16(FP), DX
 	MOVQ vdso_zx_smc_call(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_resource_create(SB),NOSPLIT,$32-52
+TEXT runtime·vdsoCall_zx_resource_create(SB),NOSPLIT,$24-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 48(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 48(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL parent_rsrc+0(FP), DI
 	MOVL options+4(FP), SI
 	MOVQ base+8(FP), DX
@@ -2923,109 +1633,59 @@
 	POPQ R12
 	MOVQ BP, SP
 	MOVL AX, ret+48(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32
-TEXT runtime·vdsoCall_zx_system_mexec(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_system_mexec(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVL kernel_vmo+4(FP), SI
 	MOVL bootimage_vmo+8(FP), DX
 	MOVQ vdso_zx_system_mexec(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
-TEXT runtime·vdsoCall_zx_system_mexec_payload_get(SB),NOSPLIT,$8-28
+TEXT runtime·vdsoCall_zx_system_mexec_payload_get(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVQ buffer+8(FP), SI
 	MOVQ buffer_size+16(FP), DX
 	MOVQ vdso_zx_system_mexec_payload_get(SB), AX
 	CALL AX
 	MOVL AX, ret+24(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_system_powerctl(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_system_powerctl(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL resource+0(FP), DI
 	MOVL cmd+4(FP), SI
 	MOVQ arg+8(FP), DX
 	MOVQ vdso_zx_system_powerctl(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_pager_create(options uint32, out_pager unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_pager_create(SB),NOSPLIT,$8-20
+TEXT runtime·vdsoCall_zx_pager_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL options+0(FP), DI
 	MOVQ out_pager+8(FP), SI
 	MOVQ vdso_zx_pager_create(SB), AX
 	CALL AX
 	MOVL AX, ret+16(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
 // func vdsoCall_zx_pager_create_vmo(pager uint32, port uint32, key uint64, size uint64, options uint32, out_pager_vmo unsafe.Pointer) int32
-TEXT runtime·vdsoCall_zx_pager_create_vmo(SB),NOSPLIT,$8-44
+TEXT runtime·vdsoCall_zx_pager_create_vmo(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	get_tls(CX)
-	MOVQ g(CX), AX
-	MOVQ g_m(AX), R14
-	PUSHQ R14
-	MOVQ 24(SP), DX
-	MOVQ DX, m_vdsoPC(R14)
-	LEAQ 24(SP), DX
-	MOVQ DX, m_vdsoSP(R14)
 	MOVL pager+0(FP), DI
 	MOVL port+4(FP), SI
 	MOVQ key+8(FP), DX
@@ -3035,7 +1695,5 @@
 	MOVQ vdso_zx_pager_create_vmo(SB), AX
 	CALL AX
 	MOVL AX, ret+40(FP)
-	POPQ R14
-	MOVQ $0, m_vdsoSP(R14)
 	RET
 
diff --git a/src/runtime/vdsocalls_fuchsia_arm64.s b/src/runtime/vdsocalls_fuchsia_arm64.s
index c251503..537ce5f 100644
--- a/src/runtime/vdsocalls_fuchsia_arm64.s
+++ b/src/runtime/vdsocalls_fuchsia_arm64.s
@@ -5,8 +5,6 @@
 // Zircon system calls for the Fuchsia OS.
 // Generated by mkfuchsia.go, do not edit.
 
-#include "go_asm.h"
-#include "go_tls.h"
 #include "textflag.h"
 #include "funcdata.h"
 
@@ -14,268 +12,174 @@
 TEXT runtime·vdsoCall_zx_clock_get(SB),NOSPLIT,$0-16
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW clock_id+0(FP), R0
 	BL vdso_zx_clock_get(SB)
 	MOVD R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_clock_get_new(clock_id uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_clock_get_new(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW clock_id+0(FP), R0
 	MOVD out+8(FP), R1
 	BL vdso_zx_clock_get_new(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_clock_get_monotonic() int64
 TEXT runtime·vdsoCall_zx_clock_get_monotonic(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	BL vdso_zx_clock_get_monotonic(SB)
 	MOVD R0, ret+0(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_nanosleep(deadline int64) int32
 TEXT runtime·vdsoCall_zx_nanosleep(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD deadline+0(FP), R0
 	BL vdso_zx_nanosleep(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_ticks_get() uint64
 TEXT runtime·vdsoCall_zx_ticks_get(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	BL vdso_zx_ticks_get(SB)
 	MOVD R0, ret+0(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_ticks_per_second() uint64
 TEXT runtime·vdsoCall_zx_ticks_per_second(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	BL vdso_zx_ticks_per_second(SB)
 	MOVD R0, ret+0(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_deadline_after(nanoseconds int64) int64
 TEXT runtime·vdsoCall_zx_deadline_after(SB),NOSPLIT,$0-16
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD nanoseconds+0(FP), R0
 	BL vdso_zx_deadline_after(SB)
 	MOVD R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_clock_adjust(handle uint32, clock_id uint32, offset int64) int32
 TEXT runtime·vdsoCall_zx_clock_adjust(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW clock_id+4(FP), R1
 	MOVD offset+8(FP), R2
 	BL vdso_zx_clock_adjust(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_get_dcache_line_size() uint32
 TEXT runtime·vdsoCall_zx_system_get_dcache_line_size(SB),NOSPLIT,$0-4
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	BL vdso_zx_system_get_dcache_line_size(SB)
 	MOVW R0, ret+0(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_get_num_cpus() uint32
 TEXT runtime·vdsoCall_zx_system_get_num_cpus(SB),NOSPLIT,$0-4
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	BL vdso_zx_system_get_num_cpus(SB)
 	MOVW R0, ret+0(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_get_version(version unsafe.Pointer, version_size uint) int32
 TEXT runtime·vdsoCall_zx_system_get_version(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD version+0(FP), R0
 	MOVD version_size+8(FP), R1
 	BL vdso_zx_system_get_version(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_get_physmem() uint64
 TEXT runtime·vdsoCall_zx_system_get_physmem(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	BL vdso_zx_system_get_physmem(SB)
 	MOVD R0, ret+0(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_get_features(kind uint32, features unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_system_get_features(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW kind+0(FP), R0
 	MOVD features+8(FP), R1
 	BL vdso_zx_system_get_features(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_cache_flush(addr unsafe.Pointer, size uint, options uint32) int32
 TEXT runtime·vdsoCall_zx_cache_flush(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD addr+0(FP), R0
 	MOVD size+8(FP), R1
 	MOVW options+16(FP), R2
 	BL vdso_zx_cache_flush(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_handle_close(handle uint32) int32
 TEXT runtime·vdsoCall_zx_handle_close(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_handle_close(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_handle_close_many(handles unsafe.Pointer, num_handles uint) int32
 TEXT runtime·vdsoCall_zx_handle_close_many(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD handles+0(FP), R0
 	MOVD num_handles+8(FP), R1
 	BL vdso_zx_handle_close_many(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_handle_duplicate(handle uint32, rights uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_handle_duplicate(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW rights+4(FP), R1
 	MOVD out+8(FP), R2
 	BL vdso_zx_handle_duplicate(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_handle_replace(handle uint32, rights uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_handle_replace(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW rights+4(FP), R1
 	MOVD out+8(FP), R2
 	BL vdso_zx_handle_replace(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_wait_one(handle uint32, signals uint32, deadline int64, observed unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_object_wait_one(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	CALL runtime·entersyscall(SB)
 	MOVW handle+0(FP), R0
 	MOVW signals+4(FP), R1
@@ -284,17 +188,12 @@
 	BL vdso_zx_object_wait_one(SB)
 	MOVW R0, ret+24(FP)
 	BL runtime·exitsyscall(SB)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_wait_many(items unsafe.Pointer, count uint, deadline int64) int32
 TEXT runtime·vdsoCall_zx_object_wait_many(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	CALL runtime·entersyscall(SB)
 	MOVD items+0(FP), R0
 	MOVD count+8(FP), R1
@@ -302,17 +201,12 @@
 	BL vdso_zx_object_wait_many(SB)
 	MOVW R0, ret+24(FP)
 	BL runtime·exitsyscall(SB)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_wait_async(handle uint32, port uint32, key uint64, signals uint32, options uint32) int32
 TEXT runtime·vdsoCall_zx_object_wait_async(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW port+4(FP), R1
 	MOVD key+8(FP), R2
@@ -320,115 +214,80 @@
 	MOVW options+20(FP), R4
 	BL vdso_zx_object_wait_async(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_signal(handle uint32, clear_mask uint32, set_mask uint32) int32
 TEXT runtime·vdsoCall_zx_object_signal(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW clear_mask+4(FP), R1
 	MOVW set_mask+8(FP), R2
 	BL vdso_zx_object_signal(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_signal_peer(handle uint32, clear_mask uint32, set_mask uint32) int32
 TEXT runtime·vdsoCall_zx_object_signal_peer(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW clear_mask+4(FP), R1
 	MOVW set_mask+8(FP), R2
 	BL vdso_zx_object_signal_peer(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_get_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
 TEXT runtime·vdsoCall_zx_object_get_property(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW property+4(FP), R1
 	MOVD value+8(FP), R2
 	MOVD value_size+16(FP), R3
 	BL vdso_zx_object_get_property(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_set_property(handle uint32, property uint32, value unsafe.Pointer, value_size uint) int32
 TEXT runtime·vdsoCall_zx_object_set_property(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW property+4(FP), R1
 	MOVD value+8(FP), R2
 	MOVD value_size+16(FP), R3
 	BL vdso_zx_object_set_property(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_set_cookie(handle uint32, scope uint32, cookie uint64) int32
 TEXT runtime·vdsoCall_zx_object_set_cookie(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW scope+4(FP), R1
 	MOVD cookie+8(FP), R2
 	BL vdso_zx_object_set_cookie(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_get_cookie(handle uint32, scope uint32, cookie unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_object_get_cookie(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW scope+4(FP), R1
 	MOVD cookie+8(FP), R2
 	BL vdso_zx_object_get_cookie(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_get_info(handle uint32, topic uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer, avail unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_object_get_info(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW topic+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -437,66 +296,46 @@
 	MOVD avail+32(FP), R5
 	BL vdso_zx_object_get_info(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_get_child(handle uint32, koid uint64, rights uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_object_get_child(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD koid+8(FP), R1
 	MOVW rights+16(FP), R2
 	MOVD out+24(FP), R3
 	BL vdso_zx_object_get_child(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_object_set_profile(handle uint32, profile uint32, options uint32) int32
 TEXT runtime·vdsoCall_zx_object_set_profile(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW profile+4(FP), R1
 	MOVW options+8(FP), R2
 	BL vdso_zx_object_set_profile(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_channel_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_channel_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW options+0(FP), R0
 	MOVD out0+8(FP), R1
 	MOVD out1+16(FP), R2
 	BL vdso_zx_channel_create(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_channel_read(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_channel_read(SB),NOSPLIT,$0-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bytes+8(FP), R2
@@ -507,17 +346,12 @@
 	MOVD actual_handles+40(FP), R7
 	BL vdso_zx_channel_read(SB)
 	MOVW R0, ret+48(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_channel_read_etc(handle uint32, options uint32, bytes unsafe.Pointer, handles unsafe.Pointer, num_bytes uint32, num_handles uint32, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_channel_read_etc(SB),NOSPLIT,$0-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bytes+8(FP), R2
@@ -528,17 +362,12 @@
 	MOVD actual_handles+40(FP), R7
 	BL vdso_zx_channel_read_etc(SB)
 	MOVW R0, ret+48(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_channel_write(handle uint32, options uint32, bytes unsafe.Pointer, num_bytes uint32, handles unsafe.Pointer, num_handles uint32) int32
 TEXT runtime·vdsoCall_zx_channel_write(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bytes+8(FP), R2
@@ -547,17 +376,12 @@
 	MOVW num_handles+32(FP), R5
 	BL vdso_zx_channel_write(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_channel_call_noretry(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_channel_call_noretry(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD deadline+8(FP), R2
@@ -566,34 +390,24 @@
 	MOVD actual_handles+32(FP), R5
 	BL vdso_zx_channel_call_noretry(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_channel_call_finish(deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_channel_call_finish(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD deadline+0(FP), R0
 	MOVD args+8(FP), R1
 	MOVD actual_bytes+16(FP), R2
 	MOVD actual_handles+24(FP), R3
 	BL vdso_zx_channel_call_finish(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_channel_call(handle uint32, options uint32, deadline int64, args unsafe.Pointer, actual_bytes unsafe.Pointer, actual_handles unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_channel_call(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD deadline+8(FP), R2
@@ -602,33 +416,23 @@
 	MOVD actual_handles+32(FP), R5
 	BL vdso_zx_channel_call(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_socket_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_socket_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW options+0(FP), R0
 	MOVD out0+8(FP), R1
 	MOVD out1+16(FP), R2
 	BL vdso_zx_socket_create(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_socket_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_socket_write(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -636,17 +440,12 @@
 	MOVD actual+24(FP), R4
 	BL vdso_zx_socket_write(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_socket_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_socket_read(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
@@ -654,74 +453,49 @@
 	MOVD actual+24(FP), R4
 	BL vdso_zx_socket_read(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_socket_share(handle uint32, socket_to_share uint32) int32
 TEXT runtime·vdsoCall_zx_socket_share(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW socket_to_share+4(FP), R1
 	BL vdso_zx_socket_share(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_socket_accept(handle uint32, out_socket unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_socket_accept(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD out_socket+8(FP), R1
 	BL vdso_zx_socket_accept(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_socket_shutdown(handle uint32, options uint32) int32
 TEXT runtime·vdsoCall_zx_socket_shutdown(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	BL vdso_zx_socket_shutdown(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_thread_exit()
 TEXT runtime·vdsoCall_zx_thread_exit(SB),NOSPLIT,$0-0
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	BL vdso_zx_thread_exit(SB)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_thread_create(process uint32, name unsafe.Pointer, name_size uint, options uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_thread_create(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW process+0(FP), R0
 	MOVD name+8(FP), R1
 	MOVD name_size+16(FP), R2
@@ -729,17 +503,12 @@
 	MOVD out+32(FP), R4
 	BL vdso_zx_thread_create(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_thread_start(handle uint32, thread_entry uintptr, stack uintptr, arg1 uintptr, arg2 uintptr) int32
 TEXT runtime·vdsoCall_zx_thread_start(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD thread_entry+8(FP), R1
 	MOVD stack+16(FP), R2
@@ -747,78 +516,53 @@
 	MOVD arg2+32(FP), R4
 	BL vdso_zx_thread_start(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_thread_read_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_thread_read_state(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW kind+4(FP), R1
 	MOVD buffer+8(FP), R2
 	MOVD buffer_size+16(FP), R3
 	BL vdso_zx_thread_read_state(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_thread_write_state(handle uint32, kind uint32, buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_thread_write_state(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW kind+4(FP), R1
 	MOVD buffer+8(FP), R2
 	MOVD buffer_size+16(FP), R3
 	BL vdso_zx_thread_write_state(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_thread_set_priority(prio int32) int32
 TEXT runtime·vdsoCall_zx_thread_set_priority(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW prio+0(FP), R0
 	BL vdso_zx_thread_set_priority(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_process_exit(retcode int64)
 TEXT runtime·vdsoCall_zx_process_exit(SB),NOSPLIT,$0-8
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD retcode+0(FP), R0
 	BL vdso_zx_process_exit(SB)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_process_create(job uint32, name unsafe.Pointer, name_size uint, options uint32, proc_handle unsafe.Pointer, vmar_handle unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_process_create(SB),NOSPLIT,$0-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW job+0(FP), R0
 	MOVD name+8(FP), R1
 	MOVD name_size+16(FP), R2
@@ -827,17 +571,12 @@
 	MOVD vmar_handle+40(FP), R5
 	BL vdso_zx_process_create(SB)
 	MOVW R0, ret+48(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_process_start(handle uint32, thread uint32, entry uintptr, stack uintptr, arg1 uint32, arg2 uintptr) int32
 TEXT runtime·vdsoCall_zx_process_start(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW thread+4(FP), R1
 	MOVD entry+8(FP), R2
@@ -846,17 +585,12 @@
 	MOVD arg2+32(FP), R5
 	BL vdso_zx_process_start(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_process_read_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_process_read_memory(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD vaddr+8(FP), R1
 	MOVD buffer+16(FP), R2
@@ -864,17 +598,12 @@
 	MOVD actual+32(FP), R4
 	BL vdso_zx_process_read_memory(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_process_write_memory(handle uint32, vaddr uintptr, buffer unsafe.Pointer, buffer_size uint, actual unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_process_write_memory(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD vaddr+8(FP), R1
 	MOVD buffer+16(FP), R2
@@ -882,33 +611,23 @@
 	MOVD actual+32(FP), R4
 	BL vdso_zx_process_write_memory(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_job_create(parent_job uint32, options uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_job_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW parent_job+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD out+8(FP), R2
 	BL vdso_zx_job_create(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_job_set_policy(handle uint32, options uint32, topic uint32, policy unsafe.Pointer, count uint32) int32
 TEXT runtime·vdsoCall_zx_job_set_policy(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVW topic+8(FP), R2
@@ -916,157 +635,107 @@
 	MOVW count+24(FP), R4
 	BL vdso_zx_job_set_policy(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_task_bind_exception_port(handle uint32, port uint32, key uint64, options uint32) int32
 TEXT runtime·vdsoCall_zx_task_bind_exception_port(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW port+4(FP), R1
 	MOVD key+8(FP), R2
 	MOVW options+16(FP), R3
 	BL vdso_zx_task_bind_exception_port(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_task_suspend(handle uint32, token unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_task_suspend(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD token+8(FP), R1
 	BL vdso_zx_task_suspend(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_task_suspend_token(handle uint32, token unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_task_suspend_token(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD token+8(FP), R1
 	BL vdso_zx_task_suspend_token(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_task_resume_from_exception(handle uint32, port uint32, options uint32) int32
 TEXT runtime·vdsoCall_zx_task_resume_from_exception(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW port+4(FP), R1
 	MOVW options+8(FP), R2
 	BL vdso_zx_task_resume_from_exception(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_task_kill(handle uint32) int32
 TEXT runtime·vdsoCall_zx_task_kill(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_task_kill(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_event_create(options uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_event_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW options+0(FP), R0
 	MOVD out+8(FP), R1
 	BL vdso_zx_event_create(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_eventpair_create(options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_eventpair_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW options+0(FP), R0
 	MOVD out0+8(FP), R1
 	MOVD out1+16(FP), R2
 	BL vdso_zx_eventpair_create(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_futex_wait(value_ptr unsafe.Pointer, current_value int32, new_futex_owner uint32, deadline int64) int32
 TEXT runtime·vdsoCall_zx_futex_wait(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD value_ptr+0(FP), R0
 	MOVW current_value+8(FP), R1
 	MOVW new_futex_owner+12(FP), R2
 	MOVD deadline+16(FP), R3
 	BL vdso_zx_futex_wait(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_futex_wake(value_ptr unsafe.Pointer, wake_count uint32) int32
 TEXT runtime·vdsoCall_zx_futex_wake(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD value_ptr+0(FP), R0
 	MOVW wake_count+8(FP), R1
 	BL vdso_zx_futex_wake(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_futex_requeue(value_ptr unsafe.Pointer, wake_count uint32, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
 TEXT runtime·vdsoCall_zx_futex_requeue(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD value_ptr+0(FP), R0
 	MOVW wake_count+8(FP), R1
 	MOVW current_value+12(FP), R2
@@ -1075,31 +744,21 @@
 	MOVW new_requeue_owner+28(FP), R5
 	BL vdso_zx_futex_requeue(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_futex_wake_single_owner(value_ptr unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_futex_wake_single_owner(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD value_ptr+0(FP), R0
 	BL vdso_zx_futex_wake_single_owner(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_futex_requeue_single_owner(value_ptr unsafe.Pointer, current_value int32, requeue_ptr unsafe.Pointer, requeue_count uint32, new_requeue_owner uint32) int32
 TEXT runtime·vdsoCall_zx_futex_requeue_single_owner(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD value_ptr+0(FP), R0
 	MOVW current_value+8(FP), R1
 	MOVD requeue_ptr+16(FP), R2
@@ -1107,62 +766,42 @@
 	MOVW new_requeue_owner+28(FP), R4
 	BL vdso_zx_futex_requeue_single_owner(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_futex_get_owner(value_ptr unsafe.Pointer, koid unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_futex_get_owner(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD value_ptr+0(FP), R0
 	MOVD koid+8(FP), R1
 	BL vdso_zx_futex_get_owner(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_port_create(options uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_port_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW options+0(FP), R0
 	MOVD out+8(FP), R1
 	BL vdso_zx_port_create(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_port_queue(handle uint32, packet unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_port_queue(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD packet+8(FP), R1
 	BL vdso_zx_port_queue(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_port_wait(handle uint32, deadline int64, packet unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_port_wait(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	CALL runtime·entersyscall(SB)
 	MOVW handle+0(FP), R0
 	MOVD deadline+8(FP), R1
@@ -1170,159 +809,109 @@
 	BL vdso_zx_port_wait(SB)
 	MOVW R0, ret+24(FP)
 	BL runtime·exitsyscall(SB)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_port_cancel(handle uint32, source uint32, key uint64) int32
 TEXT runtime·vdsoCall_zx_port_cancel(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW source+4(FP), R1
 	MOVD key+8(FP), R2
 	BL vdso_zx_port_cancel(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_timer_create(options uint32, clock_id uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_timer_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW options+0(FP), R0
 	MOVW clock_id+4(FP), R1
 	MOVD out+8(FP), R2
 	BL vdso_zx_timer_create(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_timer_set(handle uint32, deadline int64, slack int64) int32
 TEXT runtime·vdsoCall_zx_timer_set(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD deadline+8(FP), R1
 	MOVD slack+16(FP), R2
 	BL vdso_zx_timer_set(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_timer_cancel(handle uint32) int32
 TEXT runtime·vdsoCall_zx_timer_cancel(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_timer_cancel(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_create(size uint64, options uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmo_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD size+0(FP), R0
 	MOVW options+8(FP), R1
 	MOVD out+16(FP), R2
 	BL vdso_zx_vmo_create(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_read(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_vmo_read(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD offset+16(FP), R2
 	MOVD buffer_size+24(FP), R3
 	BL vdso_zx_vmo_read(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_write(handle uint32, buffer unsafe.Pointer, offset uint64, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_vmo_write(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD offset+16(FP), R2
 	MOVD buffer_size+24(FP), R3
 	BL vdso_zx_vmo_write(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_get_size(handle uint32, size unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmo_get_size(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD size+8(FP), R1
 	BL vdso_zx_vmo_get_size(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_set_size(handle uint32, size uint64) int32
 TEXT runtime·vdsoCall_zx_vmo_set_size(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD size+8(FP), R1
 	BL vdso_zx_vmo_set_size(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_op_range(handle uint32, op uint32, offset uint64, size uint64, buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_vmo_op_range(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW op+4(FP), R1
 	MOVD offset+8(FP), R2
@@ -1331,17 +920,12 @@
 	MOVD buffer_size+32(FP), R5
 	BL vdso_zx_vmo_op_range(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_clone(handle uint32, options uint32, offset uint64, size uint64, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmo_clone(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD offset+8(FP), R2
@@ -1349,48 +933,33 @@
 	MOVD out+24(FP), R4
 	BL vdso_zx_vmo_clone(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_set_cache_policy(handle uint32, cache_policy uint32) int32
 TEXT runtime·vdsoCall_zx_vmo_set_cache_policy(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW cache_policy+4(FP), R1
 	BL vdso_zx_vmo_set_cache_policy(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_replace_as_executable(handle uint32, vmex uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmo_replace_as_executable(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW vmex+4(FP), R1
 	MOVD out+8(FP), R2
 	BL vdso_zx_vmo_replace_as_executable(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmar_allocate(parent_vmar uint32, options uint32, offset uint64, size uint64, child_vmar unsafe.Pointer, child_addr unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmar_allocate(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW parent_vmar+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD offset+8(FP), R2
@@ -1399,31 +968,21 @@
 	MOVD child_addr+32(FP), R5
 	BL vdso_zx_vmar_allocate(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmar_destroy(handle uint32) int32
 TEXT runtime·vdsoCall_zx_vmar_destroy(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_vmar_destroy(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmar_map(handle uint32, options uint32, vmar_offset uint64, vmo uint32, vmo_offset uint64, len uint64, mapped_addr unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmar_map(SB),NOSPLIT,$0-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD vmar_offset+8(FP), R2
@@ -1433,94 +992,64 @@
 	MOVD mapped_addr+40(FP), R6
 	BL vdso_zx_vmar_map(SB)
 	MOVW R0, ret+48(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmar_unmap(handle uint32, addr uintptr, len uint64) int32
 TEXT runtime·vdsoCall_zx_vmar_unmap(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD addr+8(FP), R1
 	MOVD len+16(FP), R2
 	BL vdso_zx_vmar_unmap(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmar_protect(handle uint32, options uint32, addr uintptr, len uint64) int32
 TEXT runtime·vdsoCall_zx_vmar_protect(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD addr+8(FP), R2
 	MOVD len+16(FP), R3
 	BL vdso_zx_vmar_protect(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_cprng_draw_once(buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_cprng_draw_once(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_cprng_draw_once(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_cprng_draw(buffer unsafe.Pointer, buffer_size uint)
 TEXT runtime·vdsoCall_zx_cprng_draw(SB),NOSPLIT,$0-16
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_cprng_draw(SB)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_cprng_add_entropy(buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_cprng_add_entropy(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_cprng_add_entropy(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_fifo_create(elem_count uint, elem_size uint, options uint32, out0 unsafe.Pointer, out1 unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_fifo_create(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD elem_count+0(FP), R0
 	MOVD elem_size+8(FP), R1
 	MOVW options+16(FP), R2
@@ -1528,17 +1057,12 @@
 	MOVD out1+32(FP), R4
 	BL vdso_zx_fifo_create(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_fifo_read(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_fifo_read(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD elem_size+8(FP), R1
 	MOVD data+16(FP), R2
@@ -1546,17 +1070,12 @@
 	MOVD actual_count+32(FP), R4
 	BL vdso_zx_fifo_read(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_fifo_write(handle uint32, elem_size uint, data unsafe.Pointer, count uint, actual_count unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_fifo_write(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD elem_size+8(FP), R1
 	MOVD data+16(FP), R2
@@ -1564,116 +1083,81 @@
 	MOVD actual_count+32(FP), R4
 	BL vdso_zx_fifo_write(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_profile_create(root_job uint32, profile unsafe.Pointer, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_profile_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW root_job+0(FP), R0
 	MOVD profile+8(FP), R1
 	MOVD out+16(FP), R2
 	BL vdso_zx_profile_create(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmar_unmap_handle_close_thread_exit(vmar_handle uint32, addr uintptr, size uint, close_handle uint32) int32
 TEXT runtime·vdsoCall_zx_vmar_unmap_handle_close_thread_exit(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW vmar_handle+0(FP), R0
 	MOVD addr+8(FP), R1
 	MOVD size+16(FP), R2
 	MOVW close_handle+24(FP), R3
 	BL vdso_zx_vmar_unmap_handle_close_thread_exit(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_futex_wake_handle_close_thread_exit(value_ptr unsafe.Pointer, wake_count uint32, new_value int32, close_handle uint32)
 TEXT runtime·vdsoCall_zx_futex_wake_handle_close_thread_exit(SB),NOSPLIT,$0-24
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD value_ptr+0(FP), R0
 	MOVW wake_count+8(FP), R1
 	MOVW new_value+12(FP), R2
 	MOVW close_handle+16(FP), R3
 	BL vdso_zx_futex_wake_handle_close_thread_exit(SB)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_debuglog_create(resource uint32, options uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_debuglog_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD out+8(FP), R2
 	BL vdso_zx_debuglog_create(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_debuglog_write(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_debuglog_write(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
 	MOVD buffer_size+16(FP), R3
 	BL vdso_zx_debuglog_write(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_debuglog_read(handle uint32, options uint32, buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_debuglog_read(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD buffer+8(FP), R2
 	MOVD buffer_size+16(FP), R3
 	BL vdso_zx_debuglog_read(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_ktrace_read(handle uint32, data unsafe.Pointer, offset uint32, data_size uint, actual unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_ktrace_read(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD data+8(FP), R1
 	MOVW offset+16(FP), R2
@@ -1681,51 +1165,36 @@
 	MOVD actual+32(FP), R4
 	BL vdso_zx_ktrace_read(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_ktrace_control(handle uint32, action uint32, options uint32, ptr unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_ktrace_control(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW action+4(FP), R1
 	MOVW options+8(FP), R2
 	MOVD ptr+16(FP), R3
 	BL vdso_zx_ktrace_control(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_ktrace_write(handle uint32, id uint32, arg0 uint32, arg1 uint32) int32
 TEXT runtime·vdsoCall_zx_ktrace_write(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW id+4(FP), R1
 	MOVW arg0+8(FP), R2
 	MOVW arg1+12(FP), R3
 	BL vdso_zx_ktrace_write(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_mtrace_control(handle uint32, kind uint32, action uint32, options uint32, ptr unsafe.Pointer, ptr_size uint) int32
 TEXT runtime·vdsoCall_zx_mtrace_control(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW kind+4(FP), R1
 	MOVW action+8(FP), R2
@@ -1734,223 +1203,153 @@
 	MOVD ptr_size+24(FP), R5
 	BL vdso_zx_mtrace_control(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_debug_read(handle uint32, buffer unsafe.Pointer, buffer_size unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_debug_read(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD buffer_size+16(FP), R2
 	BL vdso_zx_debug_read(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_debug_write(buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_debug_write(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVD buffer+0(FP), R0
 	MOVD buffer_size+8(FP), R1
 	BL vdso_zx_debug_write(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_debug_send_command(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_debug_send_command(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD buffer_size+16(FP), R2
 	BL vdso_zx_debug_send_command(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_interrupt_create(src_obj uint32, src_num uint32, options uint32, out_handle unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_interrupt_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW src_obj+0(FP), R0
 	MOVW src_num+4(FP), R1
 	MOVW options+8(FP), R2
 	MOVD out_handle+16(FP), R3
 	BL vdso_zx_interrupt_create(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_interrupt_bind(handle uint32, port_handle uint32, key uint64, options uint32) int32
 TEXT runtime·vdsoCall_zx_interrupt_bind(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW port_handle+4(FP), R1
 	MOVD key+8(FP), R2
 	MOVW options+16(FP), R3
 	BL vdso_zx_interrupt_bind(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_interrupt_wait(handle uint32, out_timestamp unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_interrupt_wait(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD out_timestamp+8(FP), R1
 	BL vdso_zx_interrupt_wait(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_interrupt_destroy(handle uint32) int32
 TEXT runtime·vdsoCall_zx_interrupt_destroy(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_interrupt_destroy(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_interrupt_ack(handle uint32) int32
 TEXT runtime·vdsoCall_zx_interrupt_ack(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_interrupt_ack(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_interrupt_trigger(handle uint32, options uint32, timestamp int64) int32
 TEXT runtime·vdsoCall_zx_interrupt_trigger(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD timestamp+8(FP), R2
 	BL vdso_zx_interrupt_trigger(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_interrupt_bind_vcpu(handle uint32, vcpu uint32, options uint32) int32
 TEXT runtime·vdsoCall_zx_interrupt_bind_vcpu(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW vcpu+4(FP), R1
 	MOVW options+8(FP), R2
 	BL vdso_zx_interrupt_bind_vcpu(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_ioports_request(resource uint32, io_addr uint16, len uint32) int32
 TEXT runtime·vdsoCall_zx_ioports_request(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVD io_addr+4(FP), R1
 	MOVW len+8(FP), R2
 	BL vdso_zx_ioports_request(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_create_contiguous(bti uint32, size uint, alignment_log2 uint32, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmo_create_contiguous(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW bti+0(FP), R0
 	MOVD size+8(FP), R1
 	MOVW alignment_log2+16(FP), R2
 	MOVD out+24(FP), R3
 	BL vdso_zx_vmo_create_contiguous(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_vmo_create_physical(resource uint32, paddr uintptr, size uint, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_vmo_create_physical(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVD paddr+8(FP), R1
 	MOVD size+16(FP), R2
 	MOVD out+24(FP), R3
 	BL vdso_zx_vmo_create_physical(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_iommu_create(resource uint32, typ uint32, desc unsafe.Pointer, desc_size uint, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_iommu_create(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVW typ+4(FP), R1
 	MOVD desc+8(FP), R2
@@ -1958,34 +1357,24 @@
 	MOVD out+24(FP), R4
 	BL vdso_zx_iommu_create(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_bti_create(iommu uint32, options uint32, bti_id uint64, out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_bti_create(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW iommu+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD bti_id+8(FP), R2
 	MOVD out+16(FP), R3
 	BL vdso_zx_bti_create(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_bti_pin(handle uint32, options uint32, vmo uint32, offset uint64, size uint64, addrs unsafe.Pointer, addrs_count uint, pmt unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_bti_pin(SB),NOSPLIT,$0-60
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVW vmo+8(FP), R2
@@ -1996,45 +1385,30 @@
 	MOVD pmt+48(FP), R7
 	BL vdso_zx_bti_pin(SB)
 	MOVW R0, ret+56(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_bti_release_quarantine(handle uint32) int32
 TEXT runtime·vdsoCall_zx_bti_release_quarantine(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_bti_release_quarantine(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_pmt_unpin(handle uint32) int32
 TEXT runtime·vdsoCall_zx_pmt_unpin(SB),NOSPLIT,$0-12
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	BL vdso_zx_pmt_unpin(SB)
 	MOVW R0, ret+8(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_framebuffer_get_info(resource uint32, format unsafe.Pointer, width unsafe.Pointer, height unsafe.Pointer, stride unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_framebuffer_get_info(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVD format+8(FP), R1
 	MOVD width+16(FP), R2
@@ -2042,17 +1416,12 @@
 	MOVD stride+32(FP), R4
 	BL vdso_zx_framebuffer_get_info(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_framebuffer_set_range(resource uint32, vmo uint32, len uint32, format uint32, width uint32, height uint32, stride uint32) int32
 TEXT runtime·vdsoCall_zx_framebuffer_set_range(SB),NOSPLIT,$0-36
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVW vmo+4(FP), R1
 	MOVW len+8(FP), R2
@@ -2062,49 +1431,34 @@
 	MOVW stride+24(FP), R6
 	BL vdso_zx_framebuffer_set_range(SB)
 	MOVW R0, ret+32(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_pc_firmware_tables(handle uint32, acpi_rsdp unsafe.Pointer, smbios unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_pc_firmware_tables(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD acpi_rsdp+8(FP), R1
 	MOVD smbios+16(FP), R2
 	BL vdso_zx_pc_firmware_tables(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_smc_call(handle uint32, parameters unsafe.Pointer, out_smc_result unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_smc_call(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW handle+0(FP), R0
 	MOVD parameters+8(FP), R1
 	MOVD out_smc_result+16(FP), R2
 	BL vdso_zx_smc_call(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_resource_create(parent_rsrc uint32, options uint32, base uint64, size uint, name unsafe.Pointer, name_size uint, resource_out unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_resource_create(SB),NOSPLIT,$0-52
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW parent_rsrc+0(FP), R0
 	MOVW options+4(FP), R1
 	MOVD base+8(FP), R2
@@ -2114,80 +1468,55 @@
 	MOVD resource_out+40(FP), R6
 	BL vdso_zx_resource_create(SB)
 	MOVW R0, ret+48(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_mexec(resource uint32, kernel_vmo uint32, bootimage_vmo uint32) int32
 TEXT runtime·vdsoCall_zx_system_mexec(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVW kernel_vmo+4(FP), R1
 	MOVW bootimage_vmo+8(FP), R2
 	BL vdso_zx_system_mexec(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_mexec_payload_get(resource uint32, buffer unsafe.Pointer, buffer_size uint) int32
 TEXT runtime·vdsoCall_zx_system_mexec_payload_get(SB),NOSPLIT,$0-28
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVD buffer+8(FP), R1
 	MOVD buffer_size+16(FP), R2
 	BL vdso_zx_system_mexec_payload_get(SB)
 	MOVW R0, ret+24(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_system_powerctl(resource uint32, cmd uint32, arg unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_system_powerctl(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW resource+0(FP), R0
 	MOVW cmd+4(FP), R1
 	MOVD arg+8(FP), R2
 	BL vdso_zx_system_powerctl(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_pager_create(options uint32, out_pager unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_pager_create(SB),NOSPLIT,$0-20
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW options+0(FP), R0
 	MOVD out_pager+8(FP), R1
 	BL vdso_zx_pager_create(SB)
 	MOVW R0, ret+16(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET
 
 // func vdsoCall_zx_pager_create_vmo(pager uint32, port uint32, key uint64, size uint64, options uint32, out_pager_vmo unsafe.Pointer) int32
 TEXT runtime·vdsoCall_zx_pager_create_vmo(SB),NOSPLIT,$0-44
 	GO_ARGS
 	NO_LOCAL_POINTERS
-	MOVD g_m(g), R21
-	MOVD LR, m_vdsoPC(R21)
-	MOVD RSP, R20
-	MOVD R20, m_vdsoSP(R21)
 	MOVW pager+0(FP), R0
 	MOVW port+4(FP), R1
 	MOVD key+8(FP), R2
@@ -2196,6 +1525,5 @@
 	MOVD out_pager_vmo+32(FP), R5
 	BL vdso_zx_pager_create_vmo(SB)
 	MOVW R0, ret+40(FP)
-	MOVD $0, m_vdsoSP(R21)
 	RET