func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) { … } // Rewrite p, if necessary, to access global data via the global offset table. func (c *ctxtz) rewriteToUseGot(p *obj.Prog) { … } func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { … } // stacksplitPre generates the function stack check prologue following // Prog p (which should be the TEXT Prog). It returns one or two // branch Progs that must be patched to jump to the morestack epilogue, // and the Prog that starts the morestack check. func (c *ctxtz) stacksplitPre(p *obj.Prog, framesize int32) (pPre, pPreempt, pCheck *obj.Prog) { … } // stacksplitPost generates the function epilogue that calls morestack // and returns the new last instruction in the function. // // p is the last Prog in the function. pPre and pPreempt, if non-nil, // are the instructions that branch to the epilogue. This will fill in // their branch targets. pCheck is the Prog that begins the stack check. func (c *ctxtz) stacksplitPost(p *obj.Prog, pPre, pPreempt, pCheck *obj.Prog, framesize int32) *obj.Prog { … } var unaryDst … var Links390x …