diff options
Diffstat (limited to 'gas/doc/c-sh64.texi')
-rw-r--r-- | gas/doc/c-sh64.texi | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/gas/doc/c-sh64.texi b/gas/doc/c-sh64.texi deleted file mode 100644 index 30737a6..0000000 --- a/gas/doc/c-sh64.texi +++ /dev/null @@ -1,219 +0,0 @@ -@c Copyright (C) 2002-2018 Free Software Foundation, Inc. -@c This is part of the GAS manual. -@c For copying conditions, see the file as.texinfo. -@page -@node SH64-Dependent -@chapter SuperH SH64 Dependent Features - -@cindex SH64 support -@menu -* SH64 Options:: Options -* SH64 Syntax:: Syntax -* SH64 Directives:: SH64 Machine Directives -* SH64 Opcodes:: Opcodes -@end menu - -@node SH64 Options -@section Options - -@cindex SH64 options -@cindex options, SH64 -@table @code - -@cindex SH64 ISA options -@cindex ISA options, SH64 -@item -isa=sh4 | sh4a -Specify the sh4 or sh4a instruction set. -@item -isa=dsp -Enable sh-dsp insns, and disable sh3e / sh4 insns. -@item -isa=fp -Enable sh2e, sh3e, sh4, and sh4a insn sets. -@item -isa=all -Enable sh1, sh2, sh2e, sh3, sh3e, sh4, sh4a, and sh-dsp insn sets. -@item -isa=shmedia | -isa=shcompact -Specify the default instruction set. @code{SHmedia} specifies the -32-bit opcodes, and @code{SHcompact} specifies the 16-bit opcodes -compatible with previous SH families. The default depends on the ABI -selected; the default for the 64-bit ABI is SHmedia, and the default for -the 32-bit ABI is SHcompact. If neither the ABI nor the ISA is -specified, the default is 32-bit SHcompact. - -Note that the @code{.mode} pseudo-op is not permitted if the ISA is not -specified on the command line. - -@cindex SH64 ABI options -@cindex ABI options, SH64 -@item -abi=32 | -abi=64 -Specify the default ABI. If the ISA is specified and the ABI is not, -the default ABI depends on the ISA, with SHmedia defaulting to 64-bit -and SHcompact defaulting to 32-bit. - -Note that the @code{.abi} pseudo-op is not permitted if the ABI is not -specified on the command line. When the ABI is specified on the command -line, any @code{.abi} pseudo-ops in the source must match it. - -@item -shcompact-const-crange -Emit code-range descriptors for constants in SHcompact code sections. - -@item -no-mix -Disallow SHmedia code in the same section as constants and SHcompact -code. - -@item -no-expand -Do not expand MOVI, PT, PTA or PTB instructions. - -@item -expand-pt32 -With -abi=64, expand PT, PTA and PTB instructions to 32 bits only. - -@item -h-tick-hex -Support H'00 style hex constants in addition to 0x00 style. - -@end table - -@node SH64 Syntax -@section Syntax - -@menu -* SH64-Chars:: Special Characters -* SH64-Regs:: Register Names -* SH64-Addressing:: Addressing Modes -@end menu - -@node SH64-Chars -@subsection Special Characters - -@cindex line comment character, SH64 -@cindex SH64 line comment character -@samp{!} is the line comment character. - -If a @samp{#} appears as the first character of a line then the whole -line is treated as a comment, but in this case the line could also be -a logical line number directive (@pxref{Comments}) or a preprocessor -control command (@pxref{Preprocessing}). - -@cindex line separator, SH64 -@cindex statement separator, SH64 -@cindex SH64 line separator -You can use @samp{;} instead of a newline to separate statements. - -@cindex symbol names, @samp{$} in -@cindex @code{$} in symbol names -Since @samp{$} has no special meaning, you may use it in symbol names. - -@node SH64-Regs -@subsection Register Names - -@cindex SH64 registers -@cindex registers, SH64 -You can use the predefined symbols @samp{r0} through @samp{r63} to refer -to the SH64 general registers, @samp{cr0} through @code{cr63} for -control registers, @samp{tr0} through @samp{tr7} for target address -registers, @samp{fr0} through @samp{fr63} for single-precision floating -point registers, @samp{dr0} through @samp{dr62} (even numbered registers -only) for double-precision floating point registers, @samp{fv0} through -@samp{fv60} (multiples of four only) for single-precision floating point -vectors, @samp{fp0} through @samp{fp62} (even numbered registers only) -for single-precision floating point pairs, @samp{mtrx0} through -@samp{mtrx48} (multiples of 16 only) for 4x4 matrices of -single-precision floating point registers, @samp{pc} for the program -counter, and @samp{fpscr} for the floating point status and control -register. - -You can also refer to the control registers by the mnemonics @samp{sr}, -@samp{ssr}, @samp{pssr}, @samp{intevt}, @samp{expevt}, @samp{pexpevt}, -@samp{tra}, @samp{spc}, @samp{pspc}, @samp{resvec}, @samp{vbr}, -@samp{tea}, @samp{dcr}, @samp{kcr0}, @samp{kcr1}, @samp{ctc}, and -@samp{usr}. - -@node SH64-Addressing -@subsection Addressing Modes - -@cindex addressing modes, SH64 -@cindex SH64 addressing modes - -SH64 operands consist of either a register or immediate value. The -immediate value can be a constant or label reference (or portion of a -label reference), as in this example: - -@example - movi 4,r2 - pt function, tr4 - movi (function >> 16) & 65535,r0 - shori function & 65535, r0 - ld.l r0,4,r0 -@end example - -@cindex datalabel, SH64 -Instruction label references can reference labels in either SHmedia or -SHcompact. To differentiate between the two, labels in SHmedia sections -will always have the least significant bit set (i.e. they will be odd), -which SHcompact labels will have the least significant bit reset -(i.e. they will be even). If you need to reference the actual address -of a label, you can use the @code{datalabel} modifier, as in this -example: - -@example - .long function - .long datalabel function -@end example - -In that example, the first longword may or may not have the least -significant bit set depending on whether the label is an SHmedia label -or an SHcompact label. The second longword will be the actual address -of the label, regardless of what type of label it is. - -@node SH64 Directives -@section SH64 Machine Directives - -In addition to the SH directives, the SH64 provides the following -directives: - -@cindex SH64 machine directives -@cindex machine directives, SH64 - -@table @code - -@item .mode [shmedia|shcompact] -@itemx .isa [shmedia|shcompact] -Specify the ISA for the following instructions (the two directives are -equivalent). Note that programs such as @code{objdump} rely on symbolic -labels to determine when such mode switches occur (by checking the least -significant bit of the label's address), so such mode/isa changes should -always be followed by a label (in practice, this is true anyway). Note -that you cannot use these directives if you didn't specify an ISA on the -command line. - -@item .abi [32|64] -Specify the ABI for the following instructions. Note that you cannot use -this directive unless you specified an ABI on the command line, and the -ABIs specified must match. - -@end table - -@node SH64 Opcodes -@section Opcodes - -@cindex SH64 opcode summary -@cindex opcode summary, SH64 -@cindex mnemonics, SH64 -@cindex instruction summary, SH64 -For detailed information on the SH64 machine instruction set, see -@cite{SuperH 64 bit RISC Series Architecture Manual} (SuperH, Inc.). - -@code{@value{AS}} implements all the standard SH64 opcodes. In -addition, the following pseudo-opcodes may be expanded into one or more -alternate opcodes: - -@table @code - -@item movi -If the value doesn't fit into a standard @code{movi} opcode, -@code{@value{AS}} will replace the @code{movi} with a sequence of -@code{movi} and @code{shori} opcodes. - -@item pt -This expands to a sequence of @code{movi} and @code{shori} opcode, -followed by a @code{ptrel} opcode, or to a @code{pta} or @code{ptb} -opcode, depending on the label referenced. - -@end table |