github.com/ovechkin-dm/go-dyno@v0.0.23/proxy/stubs_120_amd64.go (about)

     1  //go:build amd64 && (go1.18 || go1.19 || go1.20) && !go1.21
     2  
     3  package proxy
     4  
     5  import (
     6  	"unsafe"
     7  )
     8  
     9  //go:linkname moveMakeFuncArgPtrs reflect.moveMakeFuncArgPtrs
    10  func moveMakeFuncArgPtrs(ctxt *makeFuncCtxt, args unsafe.Pointer)
    11  
    12  //go:linkname callReflect reflect.callReflect
    13  func callReflect(ctxt *makeFuncImpl, frame unsafe.Pointer, retValid *bool, regs unsafe.Pointer)
    14  
    15  func callReflectCustom(ctxt *DynamicStruct, frame unsafe.Pointer, retValid *bool, regs unsafe.Pointer, num int) {
    16  	fp := unsafe.Pointer(uintptr(frame) + 8)
    17  	callReflect(ctxt.methods[num].fn, fp, retValid, regs)
    18  }
    19  
    20  func moveMakeFuncArgPtrsCustom(ctxt *DynamicStruct, args unsafe.Pointer, num int) {
    21  	moveMakeFuncArgPtrs(&ctxt.methods[num].fn.makeFuncCtxt, args)
    22  }