Source File
xchg8.go
Belonging Package
internal/runtime/atomic
// 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.package atomicimport ()//go:nosplitfunc ( *uint8, uint8) uint8 {// Align down to 4 bytes and use 32-bit CAS.:= (*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer()) &^ 3)):= (uintptr(unsafe.Pointer()) & 3)if goarch.BigEndian {= ^ 3}= * 8:= uint32() <<:= uint32(0xFF) <<for {:= * // Read the old 32-bit value// Clear the old 8 bits then insert the new valueif Cas(, , (&^)|) {// Return the old 8-bit valuereturn uint8(( & ) >> )}}}
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)