]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: adjust stack slot alignment requirements on arm64
authoreric fang <eric.fang@arm.com>
Wed, 4 Nov 2020 09:26:28 +0000 (09:26 +0000)
committereric fang <eric.fang@arm.com>
Thu, 4 Mar 2021 01:30:59 +0000 (01:30 +0000)
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>
src/cmd/compile/internal/ssagen/pgen.go

index b675d1c876dce91435c0f8127bf7a1b9455fa7d2..7e15f542995c80afd012552d137acf365f36af50 100644 (file)
@@ -138,7 +138,7 @@ func (s *ssafn) AllocFrame(f *ssa.Func) {
                } else {
                        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))
                }
                n.SetFrameOffset(-s.stksize)