// The runtime bookkeeping statements: FUNCDATA and PCDATA contribute no // text bytes on any architecture, and amd64 now matches. They sit between // real instructions here, with plain, static and offset symbol references // on the FUNCDATA lines, so the byte counts prove the zero contribution. #include "textflag.h" // func bookkeep(x int64) int64 TEXT ·bookkeep(SB), NOSPLIT, $0-16 PCDATA $0, $-1 MOVQ x+0(FP), AX PCDATA $1, $-2 FUNCDATA $0, args_stackmap(SB) ADDQ $1, AX FUNCDATA $5, arginfo0(SB) PCDATA $1, $3 MOVQ AX, ret+8(FP) FUNCDATA $1, externalfuncdata(SB) PCDATA $0, $0 RET // func bookkeepstatic() int64 TEXT ·bookkeepstatic(SB), NOSPLIT, $0-8 // A static symbol and a defined data symbol as the funcdata target. // (A symbol+offset target the toolchain itself refuses.) FUNCDATA $2, fdtable<>(SB) FUNCDATA $3, undefsym(SB) MOVQ $7, AX MOVQ AX, ret+0(FP) RET GLOBL fdtable<>(SB), NOPTR, $16