mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
a2c5833233
The result of running etc/update-copyright.py --this-year, fixing all the files whose mode is changed by the script, plus a build with --enable-maintainer-mode --enable-cgen-maint=yes, then checking out */po/*.pot which we don't update frequently. The copy of cgen was with commit d1dd5fcc38ead reverted as that commit breaks building of bfp opcodes files.
209 lines
5.1 KiB
Plaintext
209 lines
5.1 KiB
Plaintext
@c Copyright (C) 2012-2022 Free Software Foundation, Inc.
|
|
@c This is part of the GAS manual.
|
|
@c For copying conditions, see the file as.texinfo.
|
|
@ifset GENERIC
|
|
@page
|
|
@node XGATE-Dependent
|
|
@chapter XGATE Dependent Features
|
|
@end ifset
|
|
@ifclear GENERIC
|
|
@node Machine Dependencies
|
|
@chapter XGATE Dependent Features
|
|
@end ifclear
|
|
|
|
@cindex XGATE support
|
|
@menu
|
|
* XGATE-Opts:: XGATE Options
|
|
* XGATE-Syntax:: Syntax
|
|
* XGATE-Directives:: Assembler Directives
|
|
* XGATE-Float:: Floating Point
|
|
* XGATE-opcodes:: Opcodes
|
|
@end menu
|
|
|
|
@node XGATE-Opts
|
|
@section XGATE Options
|
|
|
|
@cindex options, XGATE
|
|
@cindex XGATE options
|
|
The Freescale XGATE version of @code{@value{AS}} has a few machine
|
|
dependent options.
|
|
|
|
@table @code
|
|
|
|
@cindex @samp{-mshort}
|
|
@item -mshort
|
|
This option controls the ABI and indicates to use a 16-bit integer ABI.
|
|
It has no effect on the assembled instructions.
|
|
This is the default.
|
|
|
|
@cindex @samp{-mlong}
|
|
@item -mlong
|
|
This option controls the ABI and indicates to use a 32-bit integer ABI.
|
|
|
|
@cindex @samp{-mshort-double}
|
|
@item -mshort-double
|
|
This option controls the ABI and indicates to use a 32-bit float ABI.
|
|
This is the default.
|
|
|
|
@cindex @samp{-mlong-double}
|
|
@item -mlong-double
|
|
This option controls the ABI and indicates to use a 64-bit float ABI.
|
|
|
|
@cindex @samp{--print-insn-syntax}
|
|
@item --print-insn-syntax
|
|
You can use the @samp{--print-insn-syntax} option to obtain the
|
|
syntax description of the instruction when an error is detected.
|
|
|
|
@cindex @samp{--print-opcodes}
|
|
@item --print-opcodes
|
|
The @samp{--print-opcodes} option prints the list of all the
|
|
instructions with their syntax. Once the list is printed
|
|
@code{@value{AS}} exits.
|
|
|
|
@end table
|
|
|
|
@node XGATE-Syntax
|
|
@section Syntax
|
|
|
|
@cindex XGATE syntax
|
|
@cindex syntax, XGATE
|
|
|
|
In XGATE RISC syntax, the instruction name comes first and it may
|
|
be followed by up to three operands. Operands are separated by commas
|
|
(@samp{,}). @code{@value{AS}} will complain if too many operands are specified
|
|
for a given instruction. The same will happen if you specified too few
|
|
operands.
|
|
|
|
@smallexample
|
|
nop
|
|
ldl #23
|
|
CMP R1, R2
|
|
@end smallexample
|
|
|
|
@cindex line comment character, XGATE
|
|
@cindex XGATE line comment character
|
|
The presence of a @samp{;} character or a @samp{!} character anywhere
|
|
on a line indicates the start of a comment that extends to the end of
|
|
that line.
|
|
|
|
A @samp{*} or a @samp{#} character at the start of a line also
|
|
introduces a line comment, but these characters do not work elsewhere
|
|
on the line. If the first character of the line is a @samp{#} then as
|
|
well as starting a comment, the line could also be logical line number
|
|
directive (@pxref{Comments}) or a preprocessor control command
|
|
(@pxref{Preprocessing}).
|
|
|
|
@cindex line separator, XGATE
|
|
@cindex statement separator, XGATE
|
|
@cindex XGATE line separator
|
|
The XGATE assembler does not currently support a line separator
|
|
character.
|
|
|
|
@cindex XGATE addressing modes
|
|
@cindex addressing modes, XGATE
|
|
The following addressing modes are understood for XGATE:
|
|
@table @dfn
|
|
@item Inherent
|
|
@samp{}
|
|
|
|
@item Immediate 3 Bit Wide
|
|
@samp{#@var{number}}
|
|
|
|
@item Immediate 4 Bit Wide
|
|
@samp{#@var{number}}
|
|
|
|
@item Immediate 8 Bit Wide
|
|
@samp{#@var{number}}
|
|
|
|
@item Monadic Addressing
|
|
@samp{@var{reg}}
|
|
|
|
@item Dyadic Addressing
|
|
@samp{@var{reg}, @var{reg}}
|
|
|
|
@item Triadic Addressing
|
|
@samp{@var{reg}, @var{reg}, @var{reg}}
|
|
|
|
@item Relative Addressing 9 Bit Wide
|
|
@samp{*@var{symbol}}
|
|
|
|
@item Relative Addressing 10 Bit Wide
|
|
@samp{*@var{symbol}}
|
|
|
|
@item Index Register plus Immediate Offset
|
|
@samp{@var{reg}, (@var{reg}, #@var{number})}
|
|
|
|
@item Index Register plus Register Offset
|
|
@samp{@var{reg}, @var{reg}, @var{reg}}
|
|
|
|
@item Index Register plus Register Offset with Post-increment
|
|
@samp{@var{reg}, @var{reg}, @var{reg}+}
|
|
|
|
@item Index Register plus Register Offset with Pre-decrement
|
|
@samp{@var{reg}, @var{reg}, -@var{reg}}
|
|
|
|
The register can be either @samp{R0}, @samp{R1}, @samp{R2}, @samp{R3},
|
|
@samp{R4}, @samp{R5}, @samp{R6} or @samp{R7}.
|
|
|
|
@end table
|
|
|
|
Convene macro opcodes to deal with 16-bit values have been added.
|
|
|
|
@table @dfn
|
|
|
|
@item Immediate 16 Bit Wide
|
|
@samp{#@var{number}}, or @samp{*@var{symbol}}
|
|
|
|
For example:
|
|
|
|
@smallexample
|
|
ldw R1, #1024
|
|
ldw R3, timer
|
|
ldw R1, (R1, #0)
|
|
COM R1
|
|
stw R2, (R1, #0)
|
|
@end smallexample
|
|
@end table
|
|
|
|
@node XGATE-Directives
|
|
@section Assembler Directives
|
|
|
|
@cindex assembler directives, XGATE
|
|
@cindex XGATE assembler directives
|
|
|
|
The XGATE version of @code{@value{AS}} have the following
|
|
specific assembler directives:
|
|
|
|
@node XGATE-Float
|
|
@section Floating Point
|
|
|
|
@cindex floating point, XGATE
|
|
@cindex XGATE floating point
|
|
Packed decimal (P) format floating literals are not supported(yet).
|
|
|
|
The floating point formats generated by directives are these.
|
|
|
|
@table @code
|
|
@cindex @code{float} directive, XGATE
|
|
@item .float
|
|
@code{Single} precision floating point constants.
|
|
|
|
@cindex @code{double} directive, XGATE
|
|
@item .double
|
|
@code{Double} precision floating point constants.
|
|
|
|
@cindex @code{extend} directive XGATE
|
|
@cindex @code{ldouble} directive XGATE
|
|
@item .extend
|
|
@itemx .ldouble
|
|
@code{Extended} precision (@code{long double}) floating point constants.
|
|
@end table
|
|
|
|
@need 2000
|
|
@node XGATE-opcodes
|
|
@section Opcodes
|
|
|
|
@cindex XGATE opcodes
|
|
@cindex instruction set, XGATE
|
|
|