aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2009-07-30 08:54:49 +0000
committerNick Clifton <nickc@redhat.com>2009-07-30 08:54:49 +0000
commitcab7e4d9d5c513292e9c0b61f3eabab812ea9fb8 (patch)
tree9a72f0c4d9e9a25453d14aacdb7234395b9842df /gas
parentf746e6b904db0d9261efddec0be84eea81755ff9 (diff)
downloadfsf-binutils-gdb-cab7e4d9d5c513292e9c0b61f3eabab812ea9fb8.zip
fsf-binutils-gdb-cab7e4d9d5c513292e9c0b61f3eabab812ea9fb8.tar.gz
fsf-binutils-gdb-cab7e4d9d5c513292e9c0b61f3eabab812ea9fb8.tar.bz2
* doc/c-arm.texi (ARM-Instruction-Set): New node. Documents the
different syntaxes support by the ARM port. (ARM Directives): Add entry for .syntax.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/doc/c-arm.texi41
2 files changed, 45 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3824197..4eff58b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,9 @@
2009-07-30 Nick Clifton <nickc@redhat.com>
+ * doc/c-arm.texi (ARM-Instruction-Set): New node. Documents the
+ different syntaxes support by the ARM port.
+ (ARM Directives): Add entry for .syntax.
+
* doc/c-mips.texi (MIPS insn): Fix typo.
2009-07-29 Alan Modra <amodra@bigpond.net.au>
diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi
index e30a938..7e45624 100644
--- a/gas/doc/c-arm.texi
+++ b/gas/doc/c-arm.texi
@@ -323,11 +323,47 @@ features. The default is to warn.
@node ARM Syntax
@section Syntax
@menu
+* ARM-Instruction-Set:: Instruction Set
* ARM-Chars:: Special Characters
* ARM-Regs:: Register Names
* ARM-Relocations:: Relocations
@end menu
+@node ARM-Instruction-Set
+@subsection Instruction Set Syntax
+Two slightly different syntaxes are support for ARM and THUMB
+instructions. The default, @code{divided}, uses the old style where
+ARM and THUMB instructions had their own, separate syntaxes. The new,
+@code{unified} syntax, which can be selected via the @code{.syntax}
+directive, and has the following main features:
+
+@table @bullet
+@item
+Immediate operands do not require a @code{#} prefix.
+
+@item
+The @code{IT} instruction may appear, and if it does it is validated
+against subsequent conditional affixes. In ARM mode it does not
+generate machine code, in THUMB mode it does.
+
+@item
+For ARM instructions the conditional affixes always appear at the end
+of the instruction. For THUMB instructions conditional affixes can be
+used, but only inside the scope of an @code{IT} instruction.
+
+@item
+All of the instructions new to the V6T2 architecture (and later) are
+available. (Only a few such instructions can be written in the
+@code{divided} syntax).
+
+@item
+The @code{.N} and @code{.W} suffixes are recognized and honored.
+
+@item
+All instructions set the flags if and only if they have an @code{s}
+affix.
+@end table
+
@node ARM-Chars
@subsection Special Characters
@@ -722,6 +758,11 @@ This directive emits relocations that evaluate to the section-relative
offset of each expression's symbol. This directive is only supported
for PE targets.
+@cindex @code{.syntax} directive, ARM
+@item .syntax [@code{unified} | @code{divided}]
+This directive sets the Instruction Set Syntax as described in the
+@ref{ARM-Instruction-Set} section.
+
@c TTTTTTTTTTTTTTTTTTTTTTTTTT
@cindex @code{.thumb} directive, ARM