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?


Reply via email to