This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

quality of code produced for arm cortex-A8


              My name is Ajmal A. I was compiling a program with neon
intrinsics for arm cortex A-8. When I examined the output code, I
observed that, among the available 32 d-registers of neon, the program
uses only those from d16 (either if it's used as double word registers
or quad word registers). And another problem is with the vld
instructions. For vld instruction, it always uses the registers  d16,
d17, .... Even if there are free registers like d26,d27, etc it pushes
the contents of the registers d16, d17,... to the stack.

I am using gcc 4.4.0, compiled using android-ndk-r4.

For compiling I used the following command:
-fpic -mthumb-interwork -ffunction-sections -funwind-tables
-fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__
-D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -Wno-psabi -march=armv7-a
-mfloat-abi=softfp -mthumb -Os -fomit-frame-pointer
-fno-strict-aliasing -finline-limit=64 -mfpu=neon
-I/home/master/ajmal/ndk/samples/hello-neon/jni -DANDROID
-DHAVE_NEON=1 -Wa,--noexecstack -O3 -DNDEBUG -g  -c -MMD -MP -MF
/home/master/ajmal/ndk/samples/hello-neon/jni/$1.c -o

where $1 is the filename without the extension.

I have tried the latest version of gcc (4.5.0) also, with no better results.

Can you please tell me if there is a special reason for not using the
other d registers, or for the stack operations. I have gone through
the gcc manuals and some files gcc sources, but I couldn't clarify the

(My language proficiency is not so good, and this is the first time I
am writing an e-mail for such an authority. I am sorry for any
mistakes due to them).

Thank you in advance.
Ajmal. A

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]