Noodling around with RISC-V emulation, writing it in Go.
Supporting the atomic extension should be doable using Go atomics, but to do it right and without resorting to unsafe, I'd have to represent memory as a slice of int32s and do bullshit to read/write anything smaller than that if I want to have any sort of ergonomics on the atomic usage.
(Assuming I wanna support more than one CPU/HART running concurrently.)