Greetings,
I'm currently experimenting with Jekyll and I'm trying to make an GNU ARM Assembly syntax highlighter for Rouge.
However, the ARM Architecture Reference Manual does not seem to have a simple complete list of mnemonics. They are all mentioned, but not in a quick run-down list.
I'm currently trying to extract the mnemonics from GNU Binutils source code but, still, is there a list of all mnemonics understood by each ARM architecture, with mention of the potential suffixes (notably on ARMv7) ?
Hi,
Section A8.8 of the ARMv7-AR Architecture Reference Manual (ARM DDI 0406C.c) lists all instructions in alphabetical order.
Similarly in the ARMv8-A Architecture Reference Manual (ARM DDI 0487A.j):
Is that what you're looking for? You'll have to click through each one to see the potential suffixes, for example clicking on 'DMB' in the list in Section A8.8 of the ARMv7-AR ARM will list 'SY', 'ST', 'ISH', 'ISHST', 'NSH', 'NSHST', 'OSH', and 'OSHST'.
Ah, interesting !
I had an old version (2009) of the ARMv7 architecture manual that did not have a PDF index, but it seems that the new one (ARM DDI 0406C.c) does, so I could begin extracting these informations from there, indeed, and complete with the informations of each page.
I also found Quick Reference Cards . Are they up-to-date ? Also, looking at the copyright notice at the end, can I use these informations ? I see that some informations are missing, like the accepted options for Hints, for example.
Glad that's helpful
Regarding the quick reference cards, I'll admit that I'm not sure. One thing to keep in mind is that those cards at the link you gave show the latest release in the change log being 'M' which was in 2008, whereas looking at the ARMv7-A Architecture Reference Manual's change log:
So it looks like quite a lot has happened in the ARMv7-A Architecture Reference Manual since 2008, including numerous additions, clarifications, and errata. Some of those certainly sound like they could affect the instruction listing, whether by adding new instructions or adding new suffixes to existing instructions (new system registers for example).
Well then, I'll start with the mnemonics described in the Architecture Manual and what I find on assembler implementations like binutils, and update from there if needs be then .
Thanks for these explanations.