diff options
Diffstat (limited to 'gas/doc')
-rw-r--r-- | gas/doc/Makefile.am | 1 | ||||
-rw-r--r-- | gas/doc/Makefile.in | 1 | ||||
-rw-r--r-- | gas/doc/all.texi | 1 | ||||
-rw-r--r-- | gas/doc/as.texinfo | 32 | ||||
-rw-r--r-- | gas/doc/c-pru.texi | 150 |
5 files changed, 185 insertions, 0 deletions
diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am index 54d7ef1..c604a29 100644 --- a/gas/doc/Makefile.am +++ b/gas/doc/Makefile.am @@ -80,6 +80,7 @@ CPU_DOCS = \ c-pdp11.texi \ c-pj.texi \ c-ppc.texi \ + c-pru.texi \ c-rl78.texi \ c-riscv.texi \ c-rx.texi \ diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in index 7110192..58b0e36 100644 --- a/gas/doc/Makefile.in +++ b/gas/doc/Makefile.in @@ -355,6 +355,7 @@ CPU_DOCS = \ c-pdp11.texi \ c-pj.texi \ c-ppc.texi \ + c-pru.texi \ c-rl78.texi \ c-riscv.texi \ c-rx.texi \ diff --git a/gas/doc/all.texi b/gas/doc/all.texi index 3c25d39..79fcaba 100644 --- a/gas/doc/all.texi +++ b/gas/doc/all.texi @@ -62,6 +62,7 @@ @set PDP11 @set PJ @set PPC +@set PRU @set RL78 @set RISCV @set RX diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index d83d2b3..f03c2ef 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -493,6 +493,13 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{-msolaris}|@b{-mno-solaris}] [@b{-nops=@var{count}}] @end ifset +@ifset PRU + +@emph{Target PRU options:} + [@b{-link-relax}] + [@b{-mnolink-relax}] + [@b{-mno-warn-regname-label}] +@end ifset @ifset RL78 @emph{Target RL78 options:} @@ -1232,6 +1239,24 @@ Generate ``little endian'' format output. @end table @end ifset +@ifset PRU + +@ifclear man +@xref{PRU Options}, for the options available when @value{AS} is configured +for a PRU processor. +@end ifclear + +@ifset man +@c man begin OPTIONS +The following options are available when @value{AS} is configured for a +PRU processor. +@c man end +@c man begin INCLUDE +@include c-pru.texi +@c ended inside the included file +@end ifset +@end ifset + @ifset M68HC11 The following options are available when @value{AS} is configured for the Motorola 68HC11 or 68HC12 series. @@ -7596,6 +7621,9 @@ subject, see the hardware manufacturer's manual. @ifset PPC * PPC-Dependent:: PowerPC Dependent Features @end ifset +@ifset PRU +* PRU-Dependent:: PRU Dependent Features +@end ifset @ifset RL78 * RL78-Dependent:: RL78 Dependent Features @end ifset @@ -7825,6 +7853,10 @@ family. @include c-ppc.texi @end ifset +@ifset PRU +@include c-pru.texi +@end ifset + @ifset RL78 @include c-rl78.texi @end ifset diff --git a/gas/doc/c-pru.texi b/gas/doc/c-pru.texi new file mode 100644 index 0000000..6aba8b4 --- /dev/null +++ b/gas/doc/c-pru.texi @@ -0,0 +1,150 @@ +@c Copyright (C) 2015-2016 Free Software Foundation, Inc. +@c This is part of the GAS manual. +@c For copying conditions, see the file as.texinfo. +@c man end +@ifset GENERIC +@page +@node PRU-Dependent +@chapter PRU Dependent Features +@end ifset + +@cindex PRU support +@menu +* PRU Options:: Options +* PRU Syntax:: Syntax +* PRU Relocations:: Relocations +* PRU Directives:: PRU Machine Directives +* PRU Opcodes:: Opcodes +@end menu + +@node PRU Options +@section Options +@cindex PRU options +@cindex options for PRU + +@c man begin OPTIONS +@table @gcctabopt + +@cindex @code{mlink-relax} command line option, PRU +@item -mlink-relax +Assume that LD would optimize LDI32 instructions by checking the upper +16 bits of the @var{expression}. If they are all zeros, then LD would +shorten the LDI32 instruction to a single LDI. In such case @code{@value{AS}} +will output DIFF relocations for diff expressions. + +@cindex @code{mno-link-relax} command line option, PRU +@item -mno-link-relax +Assume that LD would not optimize LDI32 instructions. As a consequence, +DIFF relocations will not be emitted. + +@cindex @code{mno-warn-regname-label} command line option, PRU +@item -mno-warn-regname-label +Do not warn if a label name matches a register name. Usually assembler +programmers will want this warning to be emitted. C compilers may want +to turn this off. + +@end table +@c man end + +@node PRU Syntax +@section Syntax +@menu +* PRU Chars:: Special Characters +@end menu + + +@node PRU Chars +@subsection Special Characters + +@cindex line comment character, PRU +@cindex PRU line comment character +@samp{#} and @samp{;} are the line comment characters. + + +@node PRU Relocations +@section PRU Machine Relocations + +@cindex machine relocations, PRU +@cindex PRU machine relocations + +@table @code + +@cindex @code{pmem} directive, PRU +@item %pmem(@var{expression}) +Convert @var{expression} from byte-address to a +word-address. In other words, shift right by two. + +@item %label(@var{expression}) +Mark the given operand as a label. This is useful if you need to jump to +a label that matches a register name. + +@smallexample +@group +r1: + jmp r1 ; Will jump to register R1 + jmp %label(r1) ; Will jump to label r1 +@end group +@end smallexample + +@end table + + +@node PRU Directives +@section PRU Machine Directives + +@cindex machine directives, PRU +@cindex PRU machine directives + +@table @code + +@cindex @code{align} directive, PRU +@item .align @var{expression} [, @var{expression}] +This is the generic @code{.align} directive, however +this aligns to a power of two. + +@cindex @code{word} directive, PRU +@item .word @var{expression} +Create an aligned constant 4 bytes in size. + +@cindex @code{dword} directive, PRU +@item .dword @var{expression} +Create an aligned constant 8 bytes in size. + +@cindex @code{2byte} directive, PRU +@item .2byte @var{expression} +Create an unaligned constant 2 bytes in size. + +@cindex @code{4byte} directive, PRU +@item .4byte @var{expression} +Create an unaligned constant 4 bytes in size. + +@cindex @code{8byte} directive, PRU +@item .8byte @var{expression} +Create an unaligned constant 8 bytes in size. + +@cindex @code{16byte} directive, PRU +@item .16byte @var{expression} +Create an unaligned constant 16 bytes in size. + +@cindex @code{set no_warn_regname_label} directive, PRU +@item .set no_warn_regname_label +Do not output warnings when a label name matches a register name. Equivalent +to passing the @code{-mno-warn-regname-label} command line option. + +@end table + +@node PRU Opcodes +@section Opcodes + +@cindex PRU opcodes +@cindex opcodes for PRU +@code{@value{AS}} implements all the standard PRU core V3 opcodes in the +original pasm assembler. Older cores are not supported by @code{@value{AS}}. + +GAS also implements the LDI32 pseudo instruction for loading a 32-bit +immediate value into a register. + +@smallexample + ldi32 sp, __stack_top + ldi32 r14, 0x12345678 +@end smallexample |