Specify memory alignment in ARM instructions for "assembler-with-cpp"

Shervin Emami shervin.emami@gmail.com
Tue Sep 28 14:40:00 GMT 2010

Hi Richard,

I tried but it still doesn't work and I've tried every keyboard symbol
there is in instead of the @ symbol and I've tried different parts of
the instruction but none of them seem to work.

For example:

vld1.8        {q0}, [r0:64]

Command line:
CompileC build/Test.build/Release-iphoneos/Test.build/Objects-normal/armv7/libASM.o
Classes/libASM.s normal armv7 assembler-with-cpp

cd /Users/shervinemami/Documents/Test

setenv LANG en_US.US-ASCII
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -x
assembler-with-cpp -arch armv7 -fmessage-length=0 -pipe -Wno-trigraphs
-fpascal-strings -O3 -mdynamic-no-pic -Wreturn-type -Wunused-variable
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk
-funroll-loops -ffast-math -fstrict-aliasing -fvisibility=hidden
-gdwarf-2 -mthumb -miphoneos-version-min=4.0 -iquote
-iquote ./build/Test.build/Release-iphoneos/Test.build/Test-project-headers.hmap
-F./build/Release-iphoneos -I./build/Release-iphoneos/include
-I./build/Test.build/Release-iphoneos/Test.build/DerivedSources -c
./Classes/libASM.s -o

GCC error message:
libASM.s:355:']' expected -- `vld1.8 {q0},[r0:64]'
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2
failed with exit code 1

I have tried with both GCC-4.2 and LLVM-GCC-4.2 (using XCode3.2) and
they both give the same error. I don't suppose you have any ideas?

Shervin Emami.

On Tue, Sep 28, 2010 at 12:33 AM, Richard Earnshaw <rearnsha@arm.com> wrote:
> On Tue, 2010-09-28 at 00:00 +0800, Shervin Emami wrote:
>> Hi,
>> I am using gcc-4.2 to "compile" my ARMv7 assembly language .s file as
>> part of an XCode3.2 project on Mac OSX 10.6. I am using ARM NEON
>> assembly language instructions, but gcc doesn't allow me to set the
>> memory alignment for ARM NEON loads. For example, the following
>> assembly language instruction should tell the ARM NEON coprocessor
>> that it should load a chunk of memory from memory that is aligned to
>> 64 bytes:
>> vld1.8 {q0}, [r0@64]
>> This should run execute faster than the instruction for unknown memory
>> alignment:
>> vld1.8 {q0}, [r0]
>> Unfortunately, gcc-4.2 gives me an error when it sees the @ symbol. Is
>> there any way to specify the memory alignment in assembly code (for
>> NEON load and store instructions)?
> Use a colon (:) in place of the @ sign (in GAS @ is the comment
> character).
> R.

More information about the Gcc-help mailing list