1
0
mirror of https://github.com/golang/go synced 2024-11-08 05:56:12 -07:00

cmd/compile: adjust stack slot alignment requirements on arm64

Currently any variable that is spilled onto the stack will occupy at least 8 bytes,
because the stack offset is required to be aligned with 8 bytes on linux/arm64.
This CL removes this constraint by aligning the stack slot with its actual size.

Updates #42385

Change-Id: Icbd63dc70cd19852802e43f134355f19ba7e1e29
Reviewed-on: https://go-review.googlesource.com/c/go/+/267999
Trust: eric fang <eric.fang@arm.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
eric fang 2020-11-04 09:26:28 +00:00
parent 355c3a037e
commit 593f5bbad7

View File

@ -138,7 +138,7 @@ func (s *ssafn) AllocFrame(f *ssa.Func) {
} else { } else {
lastHasPtr = false lastHasPtr = false
} }
if Arch.LinkArch.InFamily(sys.ARM, sys.ARM64, sys.PPC64) { if Arch.LinkArch.InFamily(sys.ARM, sys.PPC64) {
s.stksize = types.Rnd(s.stksize, int64(types.PtrSize)) s.stksize = types.Rnd(s.stksize, int64(types.PtrSize))
} }
n.SetFrameOffset(-s.stksize) n.SetFrameOffset(-s.stksize)