diff --git a/src/cmd/internal/obj/arm64/obj7.go b/src/cmd/internal/obj/arm64/obj7.go index 709223223f..71cee60259 100644 --- a/src/cmd/internal/obj/arm64/obj7.go +++ b/src/cmd/internal/obj/arm64/obj7.go @@ -552,6 +552,13 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { c.cursym.Func.Text.Mark |= LEAF } + if c.cursym.Func.Text.Mark&LEAF != 0 { + c.cursym.Set(obj.AttrLeaf, true) + if c.autosize == 0 { + break + } + } + if !p.From.Sym.NoSplit() { p = c.stacksplit(p, c.autosize) // emit split check } @@ -560,12 +567,6 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { if aoffset > 0xF0 { aoffset = 0xF0 } - if c.cursym.Func.Text.Mark&LEAF != 0 { - c.cursym.Set(obj.AttrLeaf, true) - if c.autosize == 0 { - break - } - } // Frame is non-empty. Make sure to save link register, even if // it is a leaf function, so that traceback works.