code: func pctopcdata(ctxt *Link, sym *LSym, oldval int, p *Prog, phase int, arg interface{}) int {
  	if phase == 0 || p.As != ctxt.Arch.APCDATA || p.From.Offset != int64(arg.(int)) {
  		return oldval
  	}
  	if int64(int(p.To.Offset)) != p.To.Offset {
  		ctxt.Diag("overflow in PCDATA instruction: %P", p)
  		log.Fatalf("bad code")
  	}
  	return int(p.To.Offset)
  }
docs: // pctopcdata computes the pcdata value in effect at p.
  // A PCDATA instruction sets the value in effect at future
  // non-PCDATA instructions.
  // Since PCDATA instructions have no width in the final code,
  // it does not matter which phase we use for the update.