• Austin Clements's avatar
    runtime, reflect: access runtime.reflectcall directly · 4f3604d3
    Austin Clements authored
    Currently, package runtime contains the definition of reflect.call,
    even though it's just a jump to runtime.reflectcall. This "push"
    symbol is confusing, since it's not clear where the definition of
    reflect.call comes from when you're in the reflect package.
    
    Replace this with a "pull" symbol: the runtime now defines only
    runtime.reflectcall and package reflect uses a go:linkname to access
    this symbol directly. This makes it clear where reflect.call is coming
    from without any spooky action at a distance and eliminates all of the
    definitions of reflect.call in the runtime.
    
    Change-Id: I3ec73cd394efe9df8d3061a57c73aece2e7048dd
    Reviewed-on: https://go-review.googlesource.com/c/148657
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    4f3604d3
asm_amd64.s 42.5 KB