feat(arm64): whole-vector moves, bookkeeping ops and truncating-move lowering
Assisted-by: GLM 5.3 Flash
This commit is contained in:
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user