]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj: add stmt prologueEnd to DWARF for arm64
authorDavid Chase <drchase@google.com>
Fri, 13 Mar 2020 01:30:30 +0000 (21:30 -0400)
committerDavid Chase <drchase@google.com>
Wed, 13 May 2020 22:15:39 +0000 (22:15 +0000)
Change-Id: I7e9ec2835f1a7d9821dff3e868aebf07fece8137
Reviewed-on: https://go-review.googlesource.com/c/go/+/223297
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alessandro Arzilli <alessandro.arzilli@gmail.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/internal/obj/arm64/obj7.go

index 09f603a05992f2d33c30f2f9411065ccffdc0371..b046685ada83bbb984de44323f97313747a5d633 100644 (file)
@@ -33,6 +33,7 @@ package arm64
 import (
        "cmd/internal/obj"
        "cmd/internal/objabi"
+       "cmd/internal/src"
        "cmd/internal/sys"
        "math"
 )
@@ -593,6 +594,8 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
                                p = c.stacksplit(p, c.autosize) // emit split check
                        }
 
+                       var prologueEnd *obj.Prog
+
                        aoffset := c.autosize
                        if aoffset > 0xF0 {
                                aoffset = 0xF0
@@ -619,6 +622,8 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
                                q.To.Type = obj.TYPE_REG
                                q.To.Reg = REGTMP
 
+                               prologueEnd = q
+
                                q = obj.Appendp(q, c.newprog)
                                q.Pos = p.Pos
                                q.As = AMOVD
@@ -662,8 +667,12 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
                                q1.To.Offset = int64(-aoffset)
                                q1.To.Reg = REGSP
                                q1.Spadj = aoffset
+
+                               prologueEnd = q1
                        }
 
+                       prologueEnd.Pos = prologueEnd.Pos.WithXlogue(src.PosPrologueEnd)
+
                        if objabi.Framepointer_enabled(objabi.GOOS, objabi.GOARCH) {
                                q1 = obj.Appendp(q1, c.newprog)
                                q1.Pos = p.Pos