Translated in English

01

NEON programmer Needed !

août

I was recently contacted by a company which proposed me optimize critical parts of an application designed to run on the iPhone (see Android someday). Let me say right now, being paid to do NEON assembly code, I did not hesitate for long!
So after a fortnight of optimizations, I’m pretty happy with the result because the application now works significantly faster!

This post is a translation of “Recherche programmeur NEON !

more...
 | Tags: ,
20

A simple NEON optimization method

juin

This post is a translation of “Méthode simple d’optimisation de code NEON

Since I discovered NEON, I had the opportunity to encode several small programs to test the beast.
NEON really is one of the highlights of Cortex. Its use is really simple, the big amount of registers and its instructions with 3 registers make its usage easier than on other processors.
Highly pipelined, the order of instructions is quite significant.
Whichever program you will achieve with NEON, you rarely falls on the optimal version of its implementation the first time. Finally, once you have pipelined at best, there is a last small optimization that allows almost every time to gain a few more cycles …

more...
 | Tags: ,
17

Program to count the cycles of the A8 cortex: v0.8

juin

Let’s go for of the cycle counter v0.8

This post is a translation of “Programme pour compter les cycles du cortex A8: v08.

Changes and evolutions in this new version are quite numerous.

  • Managing interactions between NEON and VPF
  • The cycle counter now check the validity of immediate values
  • You can now assign a inline variable to a register to allow the cycle counter to work with inline C code
  • Every analyzed code returns a permalink you can use (in a newsgroup for example) to show a code
  • Correction (or addition) of several hundreds of rules
more...
 | Tags:
25

Bilinear enlarge with NEON

mai

This post is a translation of “Agrandissement bilinéaire avec NEON

Between two versions of the cycle counter, I felt like a little fun with an exercise a little more playful.
So today, a small stop in the field of image processing … activity where normally, NEON is expected to excel.

more...
 | Tags: ,
15

Program to count the cycles of the A8 cortex: v0.7

mai

This post is a translation of “Programme pour compter les cycles du cortex A8: v0.7.

The latest version of the cycle counter is online.

I now have the clear objective of integrating the cycle counter in an assembly editor (ebola), so I have greatly changed the output format.
The default rendering (and now the only) is the rendering type “source. ”
The cycle counter just adds information, without adding or removing any line code.

more...
 | Tags:
10

Interactions between ARM and NEON

mai

This post is a translation of “Intéractions entre NEON et l’ARM

As I said sooner, NEON has a specific instruction queue for up to 16 instructions before blocking the functioning of the ARM. This queue raises many questions!
How an NEON instruction using a ARM register (such as memory access, for example) can it be done long after its decoding while ensuring that its address register was unchanged in the meantime.
How the transfer (VMOV) between ARM registers and NEON registers works ?
What are interactions between NEON and VPF?
So many questions for which I have not found answers in the documentation. It does not matter! A great shot of tests, I finally found a beginning of explanation.

more...
 | Tags:
17

Focus on branch instructions.

avr

This post is a translation of “Focus sur les instructions de branchement.

The branch instruction of the Cortex A8 is a rather complex instruction.
I realized a lot of tests to be able to better manage this instruction into the cycle counter.
Here is a summary of the results obtained. Of course, as usual, there is a lot of speculation in what I say. But in the absence of more explicit documentation about the Cortex, I am forced to rely on observation in order to understand a little better branch operation.

more...
12

Program to count the cycles of the A8 cortex: v0.6

avr

This post is a translation of “Programme pour compter les cycles du cortex A8: v0.6.

A more complex cycle counter

The operation of NEON led me to re-develop the engine of the cycle counter. The simulation is now closer to reality, even if there are some questions I have not found answers, on which I had to make some speculations.

more...
 | Tags:
09

Ebola: the first test and return to square one

avr

This post is a translation of “Ebola : premiers essais et retour à la case départ

It’s been a little while now that I’ve tested my idea of ​​a language.
I just had not time to speak about it…

Finally, after mature reflection, my language is passed in the trash in favor of a assembler editor.

more...
01

#0: Begin programming assembler with gcc

avr

This post is a translation of “#0: Débuter la programmation Assembleur avec gcc

I was asked several times how to begin programming in assembler on ARM and where to find documentation or tutorials.
It is true that this is not so easy to find information begins when the ARM assembler.
On the one hand, the ARM is a specialized processor, on the other, the assembler language is not too fashionable these days (which is a shame).

So I told myself, “go!” If I can help new adventurers to embark on the adventure.

more...