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 goXchg8( *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.9-preview. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |