https://bugs.kde.org/show_bug.cgi?id=476465
Rob Bresalier <rob.bresal...@nokia.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rob.bresal...@nokia.com --- Comment #12 from Rob Bresalier <rob.bresal...@nokia.com> --- I believe I ran into this issue. I applied the patch and my application gets past it, although I don't know 100% if it is correct. Would be nice if this could get reviewed and merged into the valgrind release. I am using ARM Neoverse N2 CPU core: https://www.marvell.com/content/dam/marvell/en/public-collateral/embedded-processors/marvell-octeon-10-dpu-platform-product-brief.pdf According to SIGILL diagnostic the unhandled instruction is: 0xB8BFC000 When I decode this instruction using this link: https://armconverter.com/?disasm&code=00C0BFB8 I see it is also ldapr instruction: ldapr w0, [x0] My backtrace looks like this: ARM64 front end: load_store disInstr(arm64): unhandled instruction 0xB8BFC000 disInstr(arm64): 1011'1000 1011'1111 1100'0000 0000'0000 ==3466== valgrind: Unrecognised instruction at address 0xc5a7330. ==3466== at 0xC5A7330: load (core_arch_ops_gcc_aarch64.hpp:857) ==3466== by 0xC5A7330: load (core_ops_gcc_atomic.hpp:86) ==3466== by 0xC5A7330: load (atomic_impl.hpp:473) ==3466== by 0xC5A7330: boost::thread_detail::enter_once_region(boost::once_flag&) (once_atomic.cpp:39) ==3466== by 0xC5A1187: call_once<void (&)()> (once_atomic.hpp:123) ==3466== by 0xC5A1187: boost::detail::set_current_thread_data(boost::detail::thread_data_base*) (thread.cpp:160) ==3466== by 0xC5A44F3: thread_proxy (thread.cpp:174) ==3466== by 0xC837B97: start_thread (pthread_create.c:481) ==3466== by 0xD00199B: thread_start (clone.S:79) ==3466== Your program just tried to execute an instruction that Valgrind ==3466== did not recognise. There are two possible reasons for this. ==3466== 1. Your program has a bug and erroneously jumped to a non-code ==3466== location. If you are running Memcheck and you just saw a ==3466== warning about a bad jump, it's probably your program's fault. ==3466== 2. The instruction is legitimate but Valgrind doesn't handle it, ==3466== i.e. it's Valgrind's fault. If you think this is the case or ==3466== you are not sure, please let us know and we'll try to fix it. ==3466== Either way, Valgrind will now raise a SIGILL signal which will ==3466== probably kill your program. ==3466== ==3466== Process terminating with default action of signal 4 (SIGILL): dumping core -- You are receiving this mail because: You are watching all bug changes.