diff options
author | Nick Clifton <nickc@redhat.com> | 2012-05-03 13:12:08 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2012-05-03 13:12:08 +0000 |
commit | f6c1a2d592af15d02c7fc93390af3c803e74c4d9 (patch) | |
tree | 760746b562a8f05f3ea3b8f163304c59ba7b96db /gas/doc/c-xgate.texi | |
parent | a8acc5fb18af9d4b0da318218680534414325e13 (diff) | |
download | gdb-f6c1a2d592af15d02c7fc93390af3c803e74c4d9.zip gdb-f6c1a2d592af15d02c7fc93390af3c803e74c4d9.tar.gz gdb-f6c1a2d592af15d02c7fc93390af3c803e74c4d9.tar.bz2 |
Add support for Motorola XGATE embedded CPU
Diffstat (limited to 'gas/doc/c-xgate.texi')
-rw-r--r-- | gas/doc/c-xgate.texi | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/gas/doc/c-xgate.texi b/gas/doc/c-xgate.texi new file mode 100644 index 0000000..dc802a0 --- /dev/null +++ b/gas/doc/c-xgate.texi @@ -0,0 +1,209 @@ +@c Copyright 2012 +@c 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 + +Convience 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 + |