mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: ppc64le working, not optimized enough
This time with the cherry-pick from the proper patch of the old CL. Stack size increased. Corrected NaN-comparison glitches. Marked g register as clobbered by calls. Fixed shared libraries. live_ssa.go still disabled because of differences. Presumably turning on more optimization will fix both the stack size and the live_ssa.go glitches. Enhanced debugging output for shared libs test. Rebased onto master. Updates #16010. Change-Id: I40864faf1ef32c118fb141b7ef8e854498e6b2c4 Reviewed-on: https://go-review.googlesource.com/27159 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
dea6dab40c
commit
5b9ff11c3d
17 changed files with 121 additions and 128 deletions
|
|
@ -480,12 +480,20 @@ func (s *regAllocState) init(f *Func) {
|
|||
if s.f.Config.ctxt.Framepointer_enabled && s.f.Config.FPReg >= 0 {
|
||||
s.allocatable &^= 1 << uint(s.f.Config.FPReg)
|
||||
}
|
||||
if s.f.Config.ctxt.Flag_shared {
|
||||
switch s.f.Config.arch {
|
||||
case "ppc64le": // R2 already reserved.
|
||||
s.allocatable &^= 1 << 11 // R12 -- R0 is skipped in PPC64Ops.go
|
||||
}
|
||||
}
|
||||
if s.f.Config.ctxt.Flag_dynlink {
|
||||
switch s.f.Config.arch {
|
||||
case "amd64":
|
||||
s.allocatable &^= 1 << 15 // R15
|
||||
case "arm":
|
||||
s.allocatable &^= 1 << 9 // R9
|
||||
case "ppc64le": // R2 already reserved.
|
||||
s.allocatable &^= 1 << 11 // R12 -- R0 is skipped in PPC64Ops.go
|
||||
case "arm64":
|
||||
// nothing to do?
|
||||
case "386":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue