⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c-sparc.texi

📁 基于4个mips核的noc设计
💻 TEXI
字号:
@c Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1999@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 Sparc-Dependent@chapter SPARC Dependent Features@end ifset@ifclear GENERIC@node Machine Dependencies@chapter SPARC Dependent Features@end ifclear@cindex SPARC support@menu* Sparc-Opts::                  Options* Sparc-Aligned-Data::		Option to enforce aligned data* Sparc-Float::                 Floating Point* Sparc-Directives::            Sparc Machine Directives@end menu@node Sparc-Opts@section Options@cindex options for SPARC@cindex SPARC options@cindex architectures, SPARC@cindex SPARC architecturesThe SPARC chip family includes several successive levels, using the samecore instruction set, but including a few additional instructions ateach level.  There are exceptions to this however.  For details on whatinstructions each variant supports, please see the chip's architecturereference manual.By default, @code{@value{AS}} assumes the core instruction set (SPARCv6), but ``bumps'' the architecture level as needed: it switches tosuccessively higher architectures as it encounters instructions thatonly exist in the higher levels.If not configured for SPARC v9 (@code{sparc64-*-*}) GAS will not bumppassed sparclite by default, an option must be passed to enable thev9 instructions.GAS treats sparclite as being compatible with v8, unless an architectureis explicitly requested.  SPARC v9 is always incompatible with sparclite.@c The order here is the same as the order of enum sparc_opcode_arch_val@c to give the user a sense of the order of the "bumping".@table @code@kindex -Av6@kindex Av7@kindex -Av8@kindex -Asparclet@kindex -Asparclite@kindex -Av9@kindex -Av9a@item -Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite@itemx -Av8plus | -Av8plusa | -Av9 | -Av9aUse one of the @samp{-A} options to select one of the SPARCarchitectures explicitly.  If you select an architecture explicitly,@code{@value{AS}} reports a fatal error if it encounters an instructionor feature requiring an incompatible or higher level.@samp{-Av8plus} and @samp{-Av8plusa} select a 32 bit environment.@samp{-Av9} and @samp{-Av9a} select a 64 bit environment and are notavailable unless GAS is explicitly configured with 64 bit environmentsupport.@samp{-Av8plusa} and @samp{-Av9a} enable the SPARC V9 instruction set withUltraSPARC extensions.@item -xarch=v8plus | -xarch=v8plusaFor compatibility with the Solaris v9 assembler.  These options areequivalent to -Av8plus and -Av8plusa, respectively.@item -bumpWarn whenever it is necessary to switch to another level.If an architecture level is explicitly requested, GAS will not issuewarnings until that level is reached, and will then bump the levelas required (except between incompatible levels).@item -32 | -64Select the word size, either 32 bits or 64 bits.These options are only available with the ELF object file format,and require that the necessary BFD support has been included.@end table@node Sparc-Aligned-Data@section Enforcing aligned data@cindex data alignment on SPARC@cindex SPARC data alignmentSPARC GAS normally permits data to be misaligned.  For example, itpermits the @code{.long} pseudo-op to be used on a byte boundary.However, the native SunOS and Solaris assemblers issue an error whenthey see misaligned data.@kindex --enforce-aligned-dataYou can use the @code{--enforce-aligned-data} option to make SPARC GASalso issue an error about misaligned data, just as the SunOS and Solarisassemblers do.The @code{--enforce-aligned-data} option is not the default because gccissues misaligned data pseudo-ops when it initializes certain packeddata structures (structures defined using the @code{packed} attribute).You may have to assemble with GAS in order to initialize packed datastructures in your own code.@ignore@c FIXME: (sparc) Fill in "syntax" section!@c subsection syntaxI don't know anything about Sparc syntax.  Someone who doeswill have to write this section.@end ignore@node Sparc-Float@section Floating Point@cindex floating point, SPARC (@sc{ieee})@cindex SPARC floating point (@sc{ieee})The Sparc uses @sc{ieee} floating-point numbers.@node Sparc-Directives@section Sparc Machine Directives@cindex SPARC machine directives@cindex machine directives, SPARCThe Sparc version of @code{@value{AS}} supports the following additionalmachine directives:@table @code@cindex @code{align} directive, SPARC@item .alignThis must be followed by the desired alignment in bytes.@cindex @code{common} directive, SPARC@item .commonThis must be followed by a symbol name, a positive number, and@code{"bss"}.  This behaves somewhat like @code{.comm}, but thesyntax is different.@cindex @code{half} directive, SPARC@item .halfThis is functionally identical to @code{.short}.@cindex @code{nword} directive, SPARC@item .nwordOn the Sparc, the @code{.nword} directive produces native word sized value,ie. if assembling with -32 it is equivalent to @code{.word}, if assemblingwith -64 it is equivalent to @code{.xword}.@cindex @code{proc} directive, SPARC@item .procThis directive is ignored.  Any text following it on the sameline is also ignored.@cindex @code{register} directive, SPARC@item .registerThis directive declares use of a global application or system register.It must be followed by a register name %g2, %g3, %g6 or %g7, comma andthe symbol name for that register.  If symbol name is @code{#scratch},it is a scratch register, if it is @code{#ignore}, it just surpresses anyerrors about using undeclared global register, but does not emit anyinformation about it into the object file.  This can be useful e.g. if yousave the register before use and restore it after.@cindex @code{reserve} directive, SPARC@item .reserveThis must be followed by a symbol name, a positive number, and@code{"bss"}.  This behaves somewhat like @code{.lcomm}, but thesyntax is different.@cindex @code{seg} directive, SPARC@item .segThis must be followed by @code{"text"}, @code{"data"}, or@code{"data1"}.  It behaves like @code{.text}, @code{.data}, or@code{.data 1}.@cindex @code{skip} directive, SPARC@item .skipThis is functionally identical to the @code{.space} directive.@cindex @code{word} directive, SPARC@item .wordOn the Sparc, the @code{.word} directive produces 32 bit values,instead of the 16 bit values it produces on many other machines.@cindex @code{xword} directive, SPARC@item .xwordOn the Sparc V9 processor, the @code{.xword} directive produces64 bit values.@end table

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -