Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [arm-gnu] Advanced SIMD instruction support


  • To: akshay.joshi@xxxxxxxxxxx
  • Subject: Re: [arm-gnu] Advanced SIMD instruction support
  • From: Paul Brook <paul@xxxxxxxxxxxxxxxx>
  • Date: Wed, 17 Sep 2008 11:47:29 +0100

> Well, I am using the 2.6.24 kernel. And it does say that it has NEON
> support. But when I try to run a small program which has SIMD isntructions,
> it gives me an "Illegal Instruction" error at run-time.
> The wierd part is that I get this error for different SIMD instructions at
> different times... I'm running the SIMD code in a loop. Sometimes I get the
> error in the 1st iteration and sometimes in between. Sometimes it even runs
> successfully w/o giving any error.

Your kernel is old and buggy. NEON support wasn't merged until 2.6.25. You've 
obviously got a broken backport or prototype patch.

> Then I read the FPEXC register after the call to
> "setup_arch(&command_line)" and before the call to "sched_init()" in
> init/main.c and it showed that the FPEXC.EN bit was 0. (which indicates
> that SIMD & VFP instructions are disabled.)

Thats normal. Linux does lazy VFP register saving, so VFP is usually disabled 
immediately after a context switch. Blindly enabling it will cause corruption 
when multiple VFP processes are run.

Paul