On Wed, Jun 28, 2023 at 04:56:35PM +0100, Will Deacon wrote:
I did a bit of digging and it looks like this is my libc using a vector DUP instruction in memset:
#0 __memset_generic () at ../sysdeps/aarch64/memset.S:37
Dump of assembler code for function __memset_generic: => 0x0000fffff7edfb00 <+0>: dup v0.16b, w1
The easy option would be to require FA64 for these tests, but I guess it would be better to exit streaming mode.
We can't exit streaming mode here since the memset() is done *before* we collect the signal context, exiting streaming mode would destroy the context we're trying to collect. We can, however, open code the memset() and try to prevent the compiler optimising it I think. None of the toolchains/systems I'm using are generating FP instructions though so can't 100% confirm.