I believe the opcode is valid but perhaps not on the Intel Xeon quad-core that I am developing on. My application uses a closed-source video decoder made by Pegasus ( libpicl20.so ). This decoder supports multiple machine architectures so that at run-time it can select the best performing machine instructions to use. Is there a work-around to tell Valgrind to skip libpicl20.so?
libFesVideo Version: 0.0.683
Date: 4/9/2009 10:44AM
Selecting Starboard Camera...
vex x86->IR: unhandled instruction bytes: 0xCB 0x55 0x8B 0xEC
==9455== Process terminating with default action of signal 4 (SIGILL): dumping core
==9455== Illegal opcode at address 0x7B3ABB5
==9455== at 0x7B3ABB5: ???
==9455== by 0x407A2BE: picosCallPegasusProc (in /home/esutton/sys/bin/libpicl20.so)
==9455== by 0x4074724: (within /home/esutton/sys/bin/libpicl20.so)
==9455== by 0x407491E: (within /home/esutton/sys/bin/libpicl20.so)
==9455== by 0x40798DD: threadfn (in /home/esutton/sys/bin/libpicl20.so)
==9455== by 0x41C45A: start_thread (in /lib/libpthread-2.5.so)
==9455== by 0x373C4D: clone (in /lib/libc-2.5.so)
Thanks for a great tool and thanks in advance for your help,
Well 0xCB appears to be a FAR RET instruction, which is pretty obscure. It's not new though - it's an ancient artefact of 16 bit days.