• Josh Bleecher Snyder's avatar
    cmd/internal/obj: stop storing Text flags in From3 · ce3ee7cd
    Josh Bleecher Snyder authored
    Prior to this CL, flags such as NOSPLIT
    on ATEXT Progs were stored in From3.Offset.
    Some but not all of those flags were also
    duplicated into From.Sym.Attribute.
    
    This CL migrates all of those flags into
    From.Sym.Attribute and stops creating a From3.
    
    A side-effect of this is that printing an
    ATEXT Prog can no longer simply dump From3.Offset.
    That's kind of good, since the raw flag value
    wasn't very informative anyway, but it did
    necessitate a bunch of updates to the cmd/asm tests.
    
    The reason I'm doing this work now is that
    avoiding storing flags in both From.Sym and From3.Offset
    simplifies some other changes to fix the data
    race first described in CL 40254.
    
    This CL almost passes toolstash-check -all.
    The only changes are in cases where the assembler
    has decided that a function's flags may be altered,
    e.g. to make a function with no calls in it NOSPLIT.
    Prior to this CL, that information was not printed.
    
    Sample before:
    
    "".Ctz64 t=1 size=63 args=0x10 locals=0x0
    	0x0000 00000 (/Users/josh/go/tip/src/runtime/internal/sys/intrinsics.go:35)	TEXT	"".Ctz64(SB), $0-16
    	0x0000 00000 (/Users/josh/go/tip/src/runtime/internal/sys/intrinsics.go:35)	FUNCDATA	$0, gclocals·f207267fbf96a0178e8758c6e3e0ce28(SB)
    
    Sample after:
    
    "".Ctz64 t=1 nosplit size=63 args=0x10 locals=0x0
    	0x0000 00000 (/Users/josh/go/tip/src/runtime/internal/sys/intrinsics.go:35)	TEXT	"".Ctz64(SB), NOSPLIT, $0-16
    	0x0000 00000 (/Users/josh/go/tip/src/runtime/internal/sys/intrinsics.go:35)	FUNCDATA	$0, gclocals·f207267fbf96a0178e8758c6e3e0ce28(SB)
    
    Observe the additional "nosplit" in the first line
    and the additional "NOSPLIT" in the second line.
    
    Updates #15756
    
    Change-Id: I5c59bd8f3bdc7c780361f801d94a261f0aef3d13
    Reviewed-on: https://go-review.googlesource.com/40495
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    ce3ee7cd
Name
Last commit
Last update
..
a.out.go Loading commit data...
anames.go Loading commit data...
anames7.go Loading commit data...
asm7.go Loading commit data...
asm_test.go Loading commit data...
list7.go Loading commit data...
obj7.go Loading commit data...