[arm-gnu] Assembler error with VMSR NEON instruction

Lloyd Gomez Lloyd.Gomez at amlogic.com
Fri Dec 14 09:17:58 UTC 2012


Hi Ricardo,

Thank you so much for the quick response.  I downloaded 2012.09-63 and was able to successfully compile and run my test.

Take care,
Lloyd
________________________________________
From: Ricardo Anguiano [ricardo_anguiano at mentor.com]
Sent: Thursday, December 13, 2012 3:57 PM
To: Lloyd Gomez
Cc: arm-gnu at codesourcery.com
Subject: Re: [arm-gnu] Assembler error with VMSR NEON instruction

On 12/13/2012 3:33 PM, Lloyd Gomez wrote:

> I am trying to compile some code for our Cortex-A9 with NEON device
> and am getting the following error when running the assembler:
>
> arm-none-eabi-as -gdwarf2 -mcpu=cortex-a9 -mfpu=neon -mthumb-interwork -I/home/lloyd.gomez/work/project_m8/ucode  --defsym Install_Process_Irq=1 --defsym Install_Process_Fiq=1 host_boot_ddr_generic.s -o host_boot_ddr_generic.o
>
> host_boot_ddr_generic.s: Assembler messages:
>
> host_boot_ddr_generic.s:435: Error: operand 0 must be FPSCR -- `vmsr FPEXC,r0'
>
> VMSR is a valid instruction so I don’t know why the assembler is
> complaining.  This is too bad because I need this instruction to
> enable NEON in our chip.  Has anyone else run into this problem?

This looks like a bug patched earlier this year:

http://lists.gnu.org/archive/html/bug-binutils/2012-03/msg00097.html

> Here’s my version of arm-none-eabi-as:
>
> GNU assembler (Sourcery G++ Lite 2011.03-42) 2.20.51.20100809

The most recent release is 2012.09-63.  Download it from here:

      http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

I tried 2012.09-63 on the code snippet from the bug report and as appears to
work without complaint:

ricardo at sourcerydemo:~/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI$ cat ~/foo.s
         mov     r0, #(0x1 << 30)
         vmsr    fpexc, r0
ricardo at sourcerydemo:~/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI$ bin/arm-none-eabi-as -gdwarf2 -mcpu=cortex-a9 -mfpu=neon -mthumb-interwork ~/foo.s -o ~/foo.o
ricardo at sourcerydemo:~/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI$ bin/arm-none-eabi-objdump -d ~/foo.o

/home/ricardo/foo.o:     file format elf32-littlearm


Disassembly of section .text:

00000000 <.text>:
    0:   e3a00101        mov     r0, #1073741824 ; 0x40000000
    4:   eee80a10        vmsr    fpexc, r0

Thanks,
--
Ricardo Anguiano
Mentor Graphics
+1-510-354-6774



More information about the arm-gnu mailing list