| Summary: | disInstr(arm): unhandled instruction: 0xEEBE2AC6 (vcvt.s32.f32) | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | HuanTran <phongvan1phongvan> |
| Component: | memcheck | Assignee: | Julian Seward <jseward> |
| Status: | RESOLVED NOT A BUG | ||
| Severity: | crash | CC: | ivosh, phongvan1phongvan |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
Please could you supply the unhandled instruction name? You can use objdump or gdb, for example. ==980== valgrind: Unrecognised instruction at address 0x454ac (gdb) disas 0x454ac 0x000454a0 <+324>: vmul.f64 d16, d17, d16 0x000454a4 <+328>: vdiv.f64 d16, d16, d18 0x000454a8 <+332>: vcvt.f32.f64 s16, d16 0x000454ac <+336>: vcvt.s32.f32 s16, s16, #20 <-- this one 0x000454b0 <+340>: vmov r3, s16 0x000454b4 <+344>: vmov s0, r3 0x000454b8 <+348>: vcvt.f64.s32 d0, s0 Actually the code cause problem is: float rad = ...; int _rad20 = (int)(rad * (1 << 20)); When i change the code to: int _rad20 = (int)((int)rad * (1 << 20)); valgrind can work without problem, I guest the problem is multiple float with an int type Seem Release 3.11.0 (22 September 2015) fix this bug Next time please do not report bugs against soooo old releases - ideally try with sources compiled from source repository. |
CPU: Freescale i.MX6Q rev1.5 when application using abs() function on armv7 build with yocto toolchain this crash happen: disInstr(arm): unhandled instruction: 0xEEBE2AC6 cond=14(0xE) 27:20=235(0xEB) 4:4=0 3:0=6(0x6) ==2400== valgrind: Unrecognised instruction at address 0x44da4.