NEON User Guide / Tutorial with GNU Assembler

Are there any resources that would cover the syntax for using the NEON assembly using the GNU collector? I read that the syntax is different from the one used by the RVCT assembler, but this is the only thing I can find for documentation. Are there any good resources to start?

+4
source share
3 answers

The NEON syntax is the same as one small detail: load balancing / stores use @ in ARM and :: in GAS. This is because @ is a comment character in GAS.

ARM:

vld1.32 {d0-d3}, [ r1@128 ]! vld1.32 {d16-d19}, [ r1@128 ] 

GAS:

  vld1.32 {d0-d3}, [r1,:128]! vld1.32 {d16-d19}, [r1,:128] 
+4
source

I wrote some information about the ARM + NEON assembly code for GCC (including an example implementation of the NEON function) at http://www.shervinemami.info/armAssembly.html

+2
source

One thing that doesn't explain itself when starting with GAS is the way to define a character. The way it works in ARM assembler will not work with GAS.

But in GAS, you can simply use #define to make a character for some case. Such as...

#define MyLoopCounter r0

#define MyLoopInc #32

So that...

add MyLoopCounter,MyLoopCounter,MyLoopInc

coincides with

add r0,r0,#32

Otherwise, I found that almost everything else was the same, and, of course, the difference in alignment, as already mentioned.

+1
source

All Articles