simd
simd copied to clipboard
AMD64 assembly violates golang ABI and may cause crashes on stack unwinding
Many assembler functions in this package clobber the BP register and do not restore it. This violates the golang ABI and may cause issues with stack unwinding. The BP register is callee-save and should be either restored before exiting the function or the function should have a stack, so that the compiler can insert a preamble that saves and restored the register.
For example here the BP register is written to, but the original value is not restored upon leaving.
See a related avo issue for a more in depth explanation.