runtime,internal/bytealg: optimize wasmZero, wasmMove, Compare

Coalesce set/get pairs into a tee.

Change-Id: I88ccdcb148465615437bebf24145e941a037e0a5
Reviewed-on: https://go-review.googlesource.com/c/go/+/200357
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Richard Musiol <neelance@gmail.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
diff --git a/src/internal/bytealg/compare_wasm.s b/src/internal/bytealg/compare_wasm.s
index 2d28215..dc8fb33 100644
--- a/src/internal/bytealg/compare_wasm.s
+++ b/src/internal/bytealg/compare_wasm.s
@@ -45,9 +45,8 @@
 	I32WrapI64
 	Call memcmp<>(SB)
 	I64ExtendI32S
-	Set R5
+	Tee R5
 
-	Get R5
 	I64Eqz
 	If
 		// check length
diff --git a/src/runtime/sys_wasm.s b/src/runtime/sys_wasm.s
index 0cd1fe5..41260bd 100644
--- a/src/runtime/sys_wasm.s
+++ b/src/runtime/sys_wasm.s
@@ -17,10 +17,9 @@
 		Get R2
 		I32Const $1
 		I32Sub
-		Set R2
+		Tee R2
 
 		// n == 0
-		Get R2
 		I32Eqz
 		If
 			Return
@@ -54,10 +53,9 @@
 		Get R1
 		I32Const $1
 		I32Sub
-		Set R1
+		Tee R1
 
 		// n == 0
-		Get R1
 		I32Eqz
 		If
 			Return