diff options
Diffstat (limited to 'binutils-2.17/gas/doc/c-m32r.texi')
-rw-r--r-- | binutils-2.17/gas/doc/c-m32r.texi | 358 |
1 files changed, 0 insertions, 358 deletions
diff --git a/binutils-2.17/gas/doc/c-m32r.texi b/binutils-2.17/gas/doc/c-m32r.texi deleted file mode 100644 index 30cd355a..00000000 --- a/binutils-2.17/gas/doc/c-m32r.texi +++ /dev/null @@ -1,358 +0,0 @@ -@c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -@c 2000, 2003, 2004 -@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 M32R-Dependent -@chapter M32R Dependent Features -@end ifset -@ifclear GENERIC -@node Machine Dependencies -@chapter M32R Dependent Features -@end ifclear - -@cindex M32R support -@menu -* M32R-Opts:: M32R Options -* M32R-Directives:: M32R Directives -* M32R-Warnings:: M32R Warnings -@end menu - -@node M32R-Opts -@section M32R Options - -@cindex options, M32R -@cindex M32R options - -The Renease M32R version of @code{@value{AS}} has a few machine -dependent options: - -@table @code - -@item -m32rx -@cindex @samp{-m32rx} option, M32RX -@cindex architecture options, M32RX -@cindex M32R architecture options -@code{@value{AS}} can assemble code for several different members of the -Renesas M32R family. Normally the default is to assemble code for -the M32R microprocessor. This option may be used to change the default -to the M32RX microprocessor, which adds some more instructions to the -basic M32R instruction set, and some additional parameters to some of -the original instructions. - -@item -m32r2 -@cindex @samp{-m32rx} option, M32R2 -@cindex architecture options, M32R2 -@cindex M32R architecture options -This option changes the target processor to the the M32R2 -microprocessor. - -@item -m32r -@cindex @samp{-m32r} option, M32R -@cindex architecture options, M32R -@cindex M32R architecture options -This option can be used to restore the assembler's default behaviour of -assembling for the M32R microprocessor. This can be useful if the -default has been changed by a previous command line option. - -@item -little -@cindex @code{-little} option, M32R -This option tells the assembler to produce little-endian code and -data. The default is dependent upon how the toolchain was -configured. - -@item -EL -@cindex @code{-EL} option, M32R -This is a synonum for @emph{-little}. - -@item -big -@cindex @code{-big} option, M32R -This option tells the assembler to produce big-endian code and -data. - -@item -EB -@cindex @code{-EB} option, M32R -This is a synonum for @emph{-big}. - -@item -KPIC -@cindex @code{-KPIC} option, M32R -@cindex PIC code generation for M32R -This option specifies that the output of the assembler should be -marked as position-independent code (PIC). - -@item -parallel -@cindex @code{-parallel} option, M32RX -This option tells the assembler to attempts to combine two sequential -instructions into a single, parallel instruction, where it is legal to -do so. - -@item -no-parallel -@cindex @code{-no-parallel} option, M32RX -This option disables a previously enabled @emph{-parallel} option. - -@item -no-bitinst -@cindex @samp{-no-bitinst}, M32R2 -This option disables the support for the extended bit-field -instructions provided by the M32R2. If this support needs to be -re-enabled the @emph{-bitinst} switch can be used to restore it. - -@item -O -@cindex @code{-O} option, M32RX -This option tells the assembler to attempt to optimize the -instructions that it produces. This includes filling delay slots and -converting sequential instructions into parallel ones. This option -implies @emph{-parallel}. - -@item -warn-explicit-parallel-conflicts -@cindex @samp{-warn-explicit-parallel-conflicts} option, M32RX -Instructs @code{@value{AS}} to produce warning messages when -questionable parallel instructions are encountered. This option is -enabled by default, but @code{@value{GCC}} disables it when it invokes -@code{@value{AS}} directly. Questionable instructions are those whoes -behaviour would be different if they were executed sequentially. For -example the code fragment @samp{mv r1, r2 || mv r3, r1} produces a -different result from @samp{mv r1, r2 \n mv r3, r1} since the former -moves r1 into r3 and then r2 into r1, whereas the later moves r2 into r1 -and r3. - -@item -Wp -@cindex @samp{-Wp} option, M32RX -This is a shorter synonym for the @emph{-warn-explicit-parallel-conflicts} -option. - -@item -no-warn-explicit-parallel-conflicts -@cindex @samp{-no-warn-explicit-parallel-conflicts} option, M32RX -Instructs @code{@value{AS}} not to produce warning messages when -questionable parallel instructions are encountered. - -@item -Wnp -@cindex @samp{-Wnp} option, M32RX -This is a shorter synonym for the @emph{-no-warn-explicit-parallel-conflicts} -option. - -@item -ignore-parallel-conflicts -@cindex @samp{-ignore-parallel-conflicts} option, M32RX -This option tells the assembler's to stop checking parallel -instructions for contraint violations. This ability is provided for -hardware vendors testing chip designs and should not be used under -normal circumstances. - -@item -no-ignore-parallel-conflicts -@cindex @samp{-no-ignore-parallel-conflicts} option, M32RX -This option restores the assembler's default behaviour of checking -parallel instructions to detect constraint violations. - -@item -Ip -@cindex @samp{-Ip} option, M32RX -This is a shorter synonym for the @emph{-ignore-parallel-conflicts} -option. - -@item -nIp -@cindex @samp{-nIp} option, M32RX -This is a shorter synonym for the @emph{-no-ignore-parallel-conflicts} -option. - -@item -warn-unmatched-high -@cindex @samp{-warn-unmatched-high} option, M32R -This option tells the assembler to produce a warning message if a -@code{.high} pseudo op is encountered without a mathcing @code{.low} -pseudo op. The presence of such an unmatches pseudo op usually -indicates a programming error. - -@item -no-warn-unmatched-high -@cindex @samp{-no-warn-unmatched-high} option, M32R -Disables a previously enabled @emph{-warn-unmatched-high} option. - -@item -Wuh -@cindex @samp{-Wuh} option, M32RX -This is a shorter synonym for the @emph{-warn-unmatched-high} option. - -@item -Wnuh -@cindex @samp{-Wnuh} option, M32RX -This is a shorter synonym for the @emph{-no-warn-unmatched-high} option. - -@end table - -@node M32R-Directives -@section M32R Directives -@cindex directives, M32R -@cindex M32R directives - -The Renease M32R version of @code{@value{AS}} has a few architecture -specific directives: - -@table @code - -@cindex @code{low} directive, M32R -@item low @var{expression} -The @code{low} directive computes the value of its expression and -places the lower 16-bits of the result into the immediate-field of the -instruction. For example: - -@smallexample - or3 r0, r0, #low(0x12345678) ; compute r0 = r0 | 0x5678 - add3, r0, r0, #low(fred) ; compute r0 = r0 + low 16-bits of address of fred -@end smallexample - -@item high @var{expression} -@cindex @code{high} directive, M32R -The @code{high} directive computes the value of its expression and -places the upper 16-bits of the result into the immediate-field of the -instruction. For example: - -@smallexample - seth r0, #high(0x12345678) ; compute r0 = 0x12340000 - seth, r0, #high(fred) ; compute r0 = upper 16-bits of address of fred -@end smallexample - -@item shigh @var{expression} -@cindex @code{shigh} directive, M32R -The @code{shigh} directive is very similar to the @code{high} -directive. It also computes the value of its expression and places -the upper 16-bits of the result into the immediate-field of the -instruction. The difference is that @code{shigh} also checks to see -if the lower 16-bits could be interpreted as a signed number, and if -so it assumes that a borrow will occur from the upper-16 bits. To -compensate for this the @code{shigh} directive pre-biases the upper -16 bit value by adding one to it. For example: - -For example: - -@smallexample - seth r0, #shigh(0x12345678) ; compute r0 = 0x12340000 - seth r0, #shigh(0x00008000) ; compute r0 = 0x00010000 -@end smallexample - -In the second example the lower 16-bits are 0x8000. If these are -treated as a signed value and sign extended to 32-bits then the value -becomes 0xffff8000. If this value is then added to 0x00010000 then -the result is 0x00008000. - -This behaviour is to allow for the different semantics of the -@code{or3} and @code{add3} instructions. The @code{or3} instruction -treats its 16-bit immediate argument as unsigned whereas the -@code{add3} treats its 16-bit immediate as a signed value. So for -example: - -@smallexample - seth r0, #shigh(0x00008000) - add3 r0, r0, #low(0x00008000) -@end smallexample - -Produces the correct result in r0, whereas: - -@smallexample - seth r0, #shigh(0x00008000) - or3 r0, r0, #low(0x00008000) -@end smallexample - -Stores 0xffff8000 into r0. - -Note - the @code{shigh} directive does not know where in the assembly -source code the lower 16-bits of the value are going set, so it cannot -check to make sure that an @code{or3} instruction is being used rather -than an @code{add3} instruction. It is up to the programmer to make -sure that correct directives are used. - -@cindex @code{.m32r} directive, M32R -@item .m32r -The directive performs a similar thing as the @emph{-m32r} command -line option. It tells the assembler to only accept M32R instructions -from now on. An instructions from later M32R architectures are -refused. - -@cindex @code{.m32rx} directive, M32RX -@item .m32rx -The directive performs a similar thing as the @emph{-m32rx} command -line option. It tells the assembler to start accepting the extra -instructions in the M32RX ISA as well as the ordinary M32R ISA. - -@cindex @code{.m32r2} directive, M32R2 -@item .m32r2 -The directive performs a similar thing as the @emph{-m32r2} command -line option. It tells the assembler to start accepting the extra -instructions in the M32R2 ISA as well as the ordinary M32R ISA. - -@cindex @code{.little} directive, M32RX -@item .little -The directive performs a similar thing as the @emph{-little} command -line option. It tells the assembler to start producing little-endian -code and data. This option should be used with care as producing -mixed-endian binary files is frought with danger. - -@cindex @code{.big} directive, M32RX -@item .big -The directive performs a similar thing as the @emph{-big} command -line option. It tells the assembler to start producing big-endian -code and data. This option should be used with care as producing -mixed-endian binary files is frought with danger. - -@end table - -@node M32R-Warnings -@section M32R Warnings - -@cindex warnings, M32R -@cindex M32R warnings - -There are several warning and error messages that can be produced by -@code{@value{AS}} which are specific to the M32R: - -@table @code - -@item output of 1st instruction is the same as an input to 2nd instruction - is this intentional ? -This message is only produced if warnings for explicit parallel -conflicts have been enabled. It indicates that the assembler has -encountered a parallel instruction in which the destination register of -the left hand instruction is used as an input register in the right hand -instruction. For example in this code fragment -@samp{mv r1, r2 || neg r3, r1} register r1 is the destination of the -move instruction and the input to the neg instruction. - -@item output of 2nd instruction is the same as an input to 1st instruction - is this intentional ? -This message is only produced if warnings for explicit parallel -conflicts have been enabled. It indicates that the assembler has -encountered a parallel instruction in which the destination register of -the right hand instruction is used as an input register in the left hand -instruction. For example in this code fragment -@samp{mv r1, r2 || neg r2, r3} register r2 is the destination of the -neg instruction and the input to the move instruction. - -@item instruction @samp{...} is for the M32RX only -This message is produced when the assembler encounters an instruction -which is only supported by the M32Rx processor, and the @samp{-m32rx} -command line flag has not been specified to allow assembly of such -instructions. - -@item unknown instruction @samp{...} -This message is produced when the assembler encounters an instruction -which it does not recognise. - -@item only the NOP instruction can be issued in parallel on the m32r -This message is produced when the assembler encounters a parallel -instruction which does not involve a NOP instruction and the -@samp{-m32rx} command line flag has not been specified. Only the M32Rx -processor is able to execute two instructions in parallel. - -@item instruction @samp{...} cannot be executed in parallel. -This message is produced when the assembler encounters a parallel -instruction which is made up of one or two instructions which cannot be -executed in parallel. - -@item Instructions share the same execution pipeline -This message is produced when the assembler encounters a parallel -instruction whoes components both use the same execution pipeline. - -@item Instructions write to the same destination register. -This message is produced when the assembler encounters a parallel -instruction where both components attempt to modify the same register. -For example these code fragments will produce this message: -@samp{mv r1, r2 || neg r1, r3} -@samp{jl r0 || mv r14, r1} -@samp{st r2, @@-r1 || mv r1, r3} -@samp{mv r1, r2 || ld r0, @@r1+} -@samp{cmp r1, r2 || addx r3, r4} (Both write to the condition bit) - -@end table |