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:
parent
355c3a037e
commit
593f5bbad7
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user