qemu-user-static crash when executing generated NEON code due to failure to detect invalidation Description of problem: `qemu-arm-static` crashes 100% of times when attempting to run NEON code. The same executable, when run in `system` emulation mode, works without issue. I experience this particular issue when attempting to test GStreamer's Orc library with NEON codegen with QEMU user emulation. Steps to reproduce: 1. Clone https://gitlab.freedesktop.org/gstreamer/orc.git 2. Build with `meson setup build -Ddefault_library=static; meson compile -C build` 3. Run `qemu-arm-static ./build/tools/orc-bugreport` Additional information: The crash always happens inside the same JIT code. It is not a memory access, so there is no reason for QEMU to report SIGSEGV: ``` Program received signal SIGSEGV, Segmentation fault. 0x409e503c in ?? () (gdb) bt #0 0x409e503c in ?? () #1 0x00408bc6 in orc_executor_run (ex=0x51cfc0) at ../orc/orcexecutor.c:51 #2 0x00489692 in orc_test_compare_output_full_for_target (program=0x4bcd90, flags=0, target_name=0x0) at ../orc-test/orctest.c:800 #3 0x00489004 in orc_test_compare_output_full (program=0x4bcd90, flags=0) at ../orc-test/orctest.c:664 #4 0x00404826 in test_opcode_src (opcode=0x4b098c ) at ../tools/orc-bugreport.c:252 #5 0x004045d8 in test_opcodes () at ../tools/orc-bugreport.c:188 #6 0x004043f2 in main (argc=1, argv=0x40800704) at ../tools/orc-bugreport.c:118 (gdb) disas 0x409e5030 No function contains specified address. (gdb) disas 0x409e5030, +10 Dump of assembler code from 0x409e5030 to 0x409e503a: 0x409e5030: vld1.8 {d4-d5}, [r3] 0x409e5034: vst1.8 {d4-d5}, [r2] 0x409e5038: add r2, r2, #16 End of assembler dump. (gdb) disas 0x409e5030, +20 Dump of assembler code from 0x409e5030 to 0x409e5044: 0x409e5030: vld1.8 {d4-d5}, [r3] 0x409e5034: vst1.8 {d4-d5}, [r2] 0x409e5038: add r2, r2, #16 => 0x409e503c: add r3, r3, #16 0x409e5040: subs r12, r12, #1 End of assembler dump. (gdb) ```