...
Text file
src/runtime/valgrind_arm64.s
Documentation: runtime
1// Copyright 2025 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build valgrind && linux
6
7#include "textflag.h"
8
9// See valgrind_amd64.s for notes about this assembly.
10
11// func valgrindClientRequest(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (ret uintptr)
12TEXT runtime·valgrindClientRequest(SB), NOSPLIT, $0-56
13 // Load the address of the first of the (contiguous) arguments into x4.
14 MOVD $args+0(FP), R4
15
16 // Zero x3, since some requests may not populate it.
17 MOVD ZR, R3
18
19 // Emit the special preamble.
20 ROR $3, R12; ROR $13, R12
21 ROR $51, R12; ROR $61, R12
22
23 // "Execute" the client request.
24 ORR R10, R10
25
26 // Copy the result out of x3.
27 MOVD R3, ret+48(FP)
28
29 RET
View as plain text