From e7307034ccdd3c3e482f80b9ea6d4a69bb04d7b6 Mon Sep 17 00:00:00 2001 From: cuiweixie Date: Fri, 5 Aug 2022 14:01:57 +0000 Subject: cmd/compile: store combine on amd64 Fixes #54120 Change-Id: I6915b6e8d459d9becfdef4fdcba95ee4dea6af05 GitHub-Last-Rev: 03f19942c7a697d3b5e696e700a9827633d709bb GitHub-Pull-Request: golang/go#54126 Reviewed-on: https://go-review.googlesource.com/c/go/+/420115 Reviewed-by: Keith Randall Reviewed-by: Dmitri Shuralyov TryBot-Result: Gopher Robot Reviewed-by: Than McIntosh Run-TryBot: Wayne Zuo --- test/codegen/memcombine.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/codegen') diff --git a/test/codegen/memcombine.go b/test/codegen/memcombine.go index 1427f7a7d5..6e0132744c 100644 --- a/test/codegen/memcombine.go +++ b/test/codegen/memcombine.go @@ -369,6 +369,14 @@ func store_le64_idx(b []byte, x uint64, idx int) { binary.LittleEndian.PutUint64(b[idx:], x) } +func store_le64_idx2(dst []byte, d, length, offset int) []byte { + a := dst[d : d+length] + b := dst[d-offset:] + // amd64:`MOVQ\s.*\(.*\)\(.*\*1\)$`,-`SHR.` + binary.LittleEndian.PutUint64(a, binary.LittleEndian.Uint64(b)) + return dst +} + func store_le64_load(b []byte, x *[8]byte) { _ = b[8] // amd64:-`MOV[BWL]` -- cgit v1.3