cmd/internal/obj/loong64: optimize isRestartable implementation
Align the type of the flag member in the loong64 Optab struct with
obj.Prog.Mark, allowing the asmout function to use it directly.
Also fix a bug where cases 15, 61, and 65 in the asmout functionwere
not properly marked as NOTUSETMP.
Additionally, update the UnsafePoint marking logic:
a. Mark as UnsafePoint if the offset register is REGTMP during
register-offset memory access operations.
b. Add UnsafePoint marking for the ALSL instruction series when
thesecond source operand register is REGTMP.
Change-Id: I91527c73e08fc1b0462fab21e02d1a9b7bd05d8c
Reviewed-on: https://go-review.googlesource.com/c/go/+/840125
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Mark Freeman <mark@golang.org>
Reviewed-by: Meidan Li <limeidan@loongson.cn>
Reviewed-by: Michael Pratt <mpratt@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 4.0 Attribution license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://go.dev/dl/.
After downloading a binary release, visit https://go.dev/doc/install for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://go.dev/doc/install/source for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://go.dev/doc/contribute.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://go.dev/wiki/Questions for a list of places to ask questions about the Go language.