From cab7e4d9d5c513292e9c0b61f3eabab812ea9fb8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 30 Jul 2009 08:54:49 +0000 Subject: [PATCH] * doc/c-arm.texi (ARM-Instruction-Set): New node. Documents the different syntaxes support by the ARM port. (ARM Directives): Add entry for .syntax. --- gas/ChangeLog | 4 ++++ gas/doc/c-arm.texi | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 3824197ba44..4eff58b0905 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ 2009-07-30 Nick Clifton + * 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 diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi index e30a9389f12..7e4562457be 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 -- 2.30.2