]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/doc/c-rx.texi
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / doc / c-rx.texi
index cb89bd66c277336a0c22a7e6bd2b3dc896b405e0..14f3d7fe8c8ebc04b82be37bd29a2ae45446c404 100644 (file)
@@ -1,5 +1,4 @@
-@c Copyright 2008, 2009, 2011
-@c Free Software Foundation, Inc.
+@c Copyright (C) 2008-2021 Free Software Foundation, Inc.
 @c This is part of the GAS manual.
 @c For copying conditions, see the file as.texinfo.
 @ifset GENERIC
@@ -14,7 +13,7 @@
 
 @cindex RX support
 @menu
-* RX-Opts::                   RX Assembler Command Line Options
+* RX-Opts::                   RX Assembler Command-line Options
 * RX-Modifiers::              Symbolic Operand Modifiers
 * RX-Directives::             Assembler Directives
 * RX-Float::                  Floating Point
@@ -26,8 +25,8 @@
 @cindex options, RX
 @cindex RX options
 
-The Renesas RX port of @code{@value{AS}} has a few target specfic
-command line options:
+The Renesas RX port of @code{@value{AS}} has a few target specific
+command-line options:
 
 @table @code
 
@@ -93,6 +92,42 @@ This option tells the assembler how many registers have been reserved
 for use by interrupt handlers.  This is needed in order to compute the
 correct values for the @code{%gpreg} and @code{%pidreg} meta registers.
 
+@cindex @samp{-mgcc-abi}
+@item -mgcc-abi
+This option tells the assembler that the old GCC ABI is being used by
+the assembled code.  With this version of the ABI function arguments
+that are passed on the stack are aligned to a 32-bit boundary.
+
+@cindex @samp{-mrx-abi}
+@item -mrx-abi
+This option tells the assembler that the official RX ABI is being used
+by the assembled code.  With this version of the ABI function
+arguments that are passed on the stack are aligned to their natural
+alignments.  This option is the default.
+
+@cindex @samp{-mcpu=}
+@item -mcpu=@var{name}
+This option tells the assembler the target CPU type.  Currently the
+@code{rx100}, @code{rx200}, @code{rx600}, @code{rx610}, @code{rxv2},
+@code{rxv3} and @code{rxv3-dfpu} are recognised as valid cpu names.
+Attempting to assemble an instructionnot supported by the indicated
+cpu type will result in an error message being generated.
+
+@cindex @samp{-mno-allow-string-insns}
+@item -mno-allow-string-insns
+This option tells the assembler to mark the object file that it is
+building as one that does not use the string instructions
+@code{SMOVF}, @code{SCMPU}, @code{SMOVB}, @code{SMOVU}, @code{SUNTIL}
+@code{SWHILE} or the @code{RMPA} instruction.  In addition the mark
+tells the linker to complain if an attempt is made to link the binary
+with another one that does use any of these instructions.
+
+Note - the inverse of this option, @code{-mallow-string-insns}, is
+not needed.  The assembler automatically detects the use of the
+the instructions in the source code and labels the resulting
+object file appropriately.  If no string instructions are detected
+then the object file is labelled as being one that can be linked with
+either string-using or string-banned object files.
 @end table
 
 @node RX-Modifiers
@@ -155,6 +190,16 @@ assembler directives:
 @cindex RX assembler directive .3byte
 Inserts a 3-byte value into the output file at the current location.
 
+@item .fetchalign
+@cindex assembler directive .fetchalign, RX
+@cindex RX assembler directive .fetchalign
+If the next opcode following this directive spans a fetch line
+boundary (8 byte boundary), the opcode is aligned to that boundary.
+If the next opcode does not span a fetch line, this directive has no
+effect.  Note that one or more labels may be between this directive
+and the opcode; those labels are aligned as well.  Any inserted bytes
+due to alignment will form a NOP opcode.
+
 @end table
 
 @node RX-Float
@@ -173,7 +218,7 @@ The floating point formats generated by directives are these.
 
 @cindex @code{double} directive, RX
 @item .double
-If the @option{-m64bit-doubles} command line option has been specified
+If the @option{-m64bit-doubles} command-line option has been specified
 then then @code{double} directive generates @code{double} precision
 (64-bit) floating point constants, otherwise it generates
 @code{single} precision (32-bit) floating point constants.  To force