// Copyright 2025 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build valgrind && linux #include "textflag.h" // See valgrind_amd64.s for notes about this assembly. // func valgrindClientRequest(uintptr, uintptr, uintptr, uintptr, uintptr, uintptr) (ret uintptr) TEXT runtime·valgrindClientRequest(SB), NOSPLIT, $0-56 // Load the address of the first of the (contiguous) arguments into x4. MOVD $args+0(FP), R4 // Zero x3, since some requests may not populate it. MOVD ZR, R3 // Emit the special preamble. ROR $3, R12; ROR $13, R12 ROR $51, R12; ROR $61, R12 // "Execute" the client request. ORR R10, R10 // Copy the result out of x3. MOVD R3, ret+48(FP) RET