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