Hello everybody, I arm building VP8 (WebM) for QEMU, when I configure VP8 for ARMv6 then it run ok on QEMU but when I build it with ARMv7 then it's not run on QEMU, I asked on WebM's forum of Google and they said that QEMU does not support VP8 NEON code right now I ran debug to test their replys and I realized that QEMU runs NEON instructions incorrectly. Example I run some NEON instructions on QEMU as: vld1.8 {q0, q1}, [r2]! vld1.8 {q4, q5}, [r10]! vld1.8 {q2, q3}, [r2]! then QEMU only runs the first NEON instruction and when run the first instruction QEMU will jump to: void cpu_loop_exit(void) { /* NOTE: the register at this point must be saved by hand because longjmp restore them */ regs_to_env(); longjmp(env->jmp_env, 1); }
and from the second instruction to end, QEMU's not run, if I run other ARM instruction then I run NEON instruction then QEMU still runs all the instructions until it met the NEON instruction then all other instructions after that NEON instruction will not run. Example: mov r2 r1 # run add r3 r4 r2 # run vld1.8 {q0, q1}, [r2]! # run mov r5 r4 # not run I don't know why? I think QEMU supported for NEON instructions but may be it run incorrectly and have some problems with NEON instructions. Please help me to confirm them and can you say for me what are the NEON instructions that QEMU not support?