Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: register conflict between external linker and duffzero on arm64 [1.16 backport] #46928

Closed
gopherbot opened this issue Jun 25, 2021 · 5 comments
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Milestone

Comments

@gopherbot
Copy link

@randall77 requested issue #32773 to be considered for backport to the next 1.16 minor release.

@gopherbot, please open backport issues.

@gopherbot gopherbot added the CherryPickCandidate Used during the release process for point releases label Jun 25, 2021
@gopherbot gopherbot added this to the Go1.16.6 milestone Jun 25, 2021
@ianlancetaylor
Copy link
Contributor

Relevant CL: https://golang.org/cl/184437

CC @cherrymui

@ianlancetaylor
Copy link
Contributor

See #46924.

@gopherbot
Copy link
Author

Change https://golang.org/cl/331029 mentions this issue: [release-branch.go1.16] cmd/compile: mark R16, R17 clobbered for non-standard calls on ARM64

@toothrot toothrot added the CherryPickApproved Used during the release process for point releases label Jul 8, 2021
@toothrot
Copy link
Contributor

toothrot commented Jul 8, 2021

Approved. This is a serious issue with no workaround.

@gopherbot gopherbot removed the CherryPickCandidate Used during the release process for point releases label Jul 8, 2021
@dmitshur dmitshur modified the milestones: Go1.16.6, Go1.16.7 Jul 12, 2021
@gopherbot
Copy link
Author

Closed by merging 8b6ae9b to release-branch.go1.16.

gopherbot pushed a commit that referenced this issue Aug 2, 2021
…standard calls on ARM64

On ARM64, (external) linker generated trampoline may clobber R16
and R17. In CL 183842 we change Duff's devices not to use those
registers. However, this is not enough. The register allocator
also needs to know that these registers may be clobbered in any
calls that don't follow the standard Go calling convention. This
include Duff's devices and the write barrier.

Fixes #46928.
Updates #32773.

Change-Id: Ia52a891d9bbb8515c927617dd53aee5af5bd9aa4
Reviewed-on: https://go-review.googlesource.com/c/go/+/184437
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Meng Zhuo <mzh@golangcn.org>
Reviewed-by: Keith Randall <khr@golang.org>
Trust: Meng Zhuo <mzh@golangcn.org>
(cherry picked from commit 11b4aee)
Reviewed-on: https://go-review.googlesource.com/c/go/+/331029
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
@golang golang locked and limited conversation to collaborators Aug 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CherryPickApproved Used during the release process for point releases FrozenDueToAge
Projects
None yet
Development

No branches or pull requests

4 participants