1
0
mirror of https://github.com/golang/go synced 2024-11-22 20:50:05 -07:00

cmd/compile: sort regalloc switch by architecture

Also tweak comment for the arm64 case.

Change-Id: I073405bd2acf901dcaaf33a034a84b6a09dd4a83
Reviewed-on: https://go-review.googlesource.com/c/go/+/334869
Trust: Joel Sing <joel@sing.id.au>
Reviewed-by: Meng Zhuo <mzh@golangcn.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
This commit is contained in:
Joel Sing 2021-07-16 02:36:52 +10:00
parent e17439e087
commit dcee007aad

View File

@ -620,20 +620,20 @@ func (s *regAllocState) init(f *Func) {
} }
if s.f.Config.ctxt.Flag_dynlink { if s.f.Config.ctxt.Flag_dynlink {
switch s.f.Config.arch { switch s.f.Config.arch {
case "amd64":
s.allocatable &^= 1 << 15 // R15
case "arm":
s.allocatable &^= 1 << 9 // R9
case "ppc64le": // R2 already reserved.
// nothing to do
case "arm64":
// nothing to do?
case "386": case "386":
// nothing to do. // nothing to do.
// Note that for Flag_shared (position independent code) // Note that for Flag_shared (position independent code)
// we do need to be careful, but that carefulness is hidden // we do need to be careful, but that carefulness is hidden
// in the rewrite rules so we always have a free register // in the rewrite rules so we always have a free register
// available for global load/stores. See gen/386.rules (search for Flag_shared). // available for global load/stores. See gen/386.rules (search for Flag_shared).
case "amd64":
s.allocatable &^= 1 << 15 // R15
case "arm":
s.allocatable &^= 1 << 9 // R9
case "arm64":
// nothing to do
case "ppc64le": // R2 already reserved.
// nothing to do
case "s390x": case "s390x":
s.allocatable &^= 1 << 11 // R11 s.allocatable &^= 1 << 11 // R11
default: default: