33 lines
958 B
ArmAsm
33 lines
958 B
ArmAsm
// 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
|