32 lines
813 B
ArmAsm
32 lines
813 B
ArmAsm
// Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (https://petrbalvin.org)
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
// Differential kernel for the arm64 bookkeeping statements: the funcdata.h
|
|
// pseudo-directives (GO_ARGS, NO_LOCAL_POINTERS, FUNCDATA, PCDATA) contribute
|
|
// no instruction bytes, and every function is byte-compared against
|
|
// go tool asm.
|
|
|
|
#include "textflag.h"
|
|
#include "funcdata.h"
|
|
|
|
// func bookkeep()
|
|
TEXT ·bookkeep(SB), NOSPLIT, $8-0
|
|
GO_ARGS
|
|
FUNCDATA $3, inline_tree(SB)
|
|
PCDATA $1, $2
|
|
MOVD R1, 0(RSP)
|
|
RET
|
|
|
|
// func bookkeepNoLocals()
|
|
TEXT ·bookkeepNoLocals(SB), NOSPLIT, $16-0
|
|
NO_LOCAL_POINTERS
|
|
PCDATA $0, $0
|
|
PCDATA $1, $1
|
|
MOVD R2, 8(RSP)
|
|
RET
|
|
|
|
// func bookkeepPlain()
|
|
TEXT ·bookkeepPlain(SB), NOSPLIT, $0-0
|
|
MOVD R3, R4
|
|
RET
|