libdjvulibre-3.5.22 sometimes failed in evince 2.30.3 on large documents (more than 10Mb). Valgrind shows that was when libdjvulibre tries to run uknown instruction "smsw" in MMX.cpp. Intel manual on x86 (vol. 2) shows that this instruction is obsolete and should be replaced by "mov ???, cr0" on i386 and higher. I tried to change it in 3.5.22 and evince stopped failing indeed.
My patch is for version libdjvulibre-3.5.24 and replaces "smsw" by "mov" in MMX.cpp (since I assume it may still fail sometimes).
Log in to post a comment.