diff options
| author | ruinan <ruinan.sun@arm.com> | 2022-08-18 01:31:57 +0000 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2023-02-28 03:16:44 +0000 |
| commit | 4d180f71dca041a39b50b9dec8a0ebec5cc02b90 (patch) | |
| tree | de718da37f917630d4dab3620a23fba111fbee52 /src/os/exec | |
| parent | dd16258f48bc9e328ef2086a49da0432fe46f413 (diff) | |
| download | go-4d180f71dca041a39b50b9dec8a0ebec5cc02b90.tar.xz | |
cmd/compile: omit redundant sign/unsign extension on arm64
On Arm64, all 32-bit instructions will ignore the upper 32 bits and
clear them to zero for the result. No need to do an unsign extend before
a 32 bit op.
This CL removes the redundant unsign extension only for the existing
32-bit opcodes, and also omits the sign extension when the upper bit of
the result can be predicted.
Fixes #42162
Change-Id: I61e6670bfb8982572430e67a4fa61134a3ea240a
CustomizedGitHooks: yes
Reviewed-on: https://go-review.googlesource.com/c/go/+/427454
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Eric Fang <eric.fang@arm.com>
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Eric Fang <eric.fang@arm.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/os/exec')
0 files changed, 0 insertions, 0 deletions
