c-alpha.texi (104834) | c-alpha.texi (130561) |
---|---|
1@c Copyright 2002 2@c Free Software Foundation, Inc. 3@c This is part of the GAS manual. 4@c For copying conditions, see the file as.texinfo. 5 6@ifset GENERIC 7@page 8@node Alpha-Dependent --- 125 unchanged lines hidden (view full) --- 134@cindex Alpha line separator 135@samp{;} can be used instead of a newline to separate statements. 136 137@node Alpha-Regs 138@subsection Register Names 139@cindex Alpha registers 140@cindex register names, Alpha 141 | 1@c Copyright 2002 2@c Free Software Foundation, Inc. 3@c This is part of the GAS manual. 4@c For copying conditions, see the file as.texinfo. 5 6@ifset GENERIC 7@page 8@node Alpha-Dependent --- 125 unchanged lines hidden (view full) --- 134@cindex Alpha line separator 135@samp{;} can be used instead of a newline to separate statements. 136 137@node Alpha-Regs 138@subsection Register Names 139@cindex Alpha registers 140@cindex register names, Alpha 141 |
142The 32 integer registers are refered to as @samp{$@var{n}} or | 142The 32 integer registers are referred to as @samp{$@var{n}} or |
143@samp{$r@var{n}}. In addition, registers 15, 28, 29, and 30 may | 143@samp{$r@var{n}}. In addition, registers 15, 28, 29, and 30 may |
144be refered to by the symbols @samp{$fp}, @samp{$at}, @samp{$gp}, | 144be referred to by the symbols @samp{$fp}, @samp{$at}, @samp{$gp}, |
145and @samp{$sp} respectively. 146 | 145and @samp{$sp} respectively. 146 |
147The 32 floating-point registers are refered to as @samp{$f@var{n}}. | 147The 32 floating-point registers are referred to as @samp{$f@var{n}}. |
148 149@node Alpha-Relocs 150@subsection Relocations 151@cindex Alpha relocations 152@cindex relocations, Alpha 153 154Some of these relocations are available for ECOFF, but mostly 155only for ELF. They are modeled after the relocation format | 148 149@node Alpha-Relocs 150@subsection Relocations 151@cindex Alpha relocations 152@cindex relocations, Alpha 153 154Some of these relocations are available for ECOFF, but mostly 155only for ELF. They are modeled after the relocation format |
156introduced in Digial Unix 4.0, but there are additions. | 156introduced in Digital Unix 4.0, but there are additions. |
157 158The format is @samp{!@var{tag}} or @samp{!@var{tag}!@var{number}} 159where @var{tag} is the name of the relocation. In some cases 160@var{number} is used to relate specific instructions. 161 162The relocation is placed at the end of the instruction like so: 163 164@example --- 209 unchanged lines hidden (view full) --- 374spilled. The argument @var{n} indicates whether and how the function 375uses the incoming @dfn{procedure vector} (the address of the called 376function) in @code{$27}. 0 indicates that @code{$27} is not used; 1 377indicates that the first two instructions of the function use @code{$27} 378to perform a load of the GP register; 2 indicates that @code{$27} is 379used in some non-standard way and so the linker cannot elide the load of 380the procedure vector during relaxation. 381 | 157 158The format is @samp{!@var{tag}} or @samp{!@var{tag}!@var{number}} 159where @var{tag} is the name of the relocation. In some cases 160@var{number} is used to relate specific instructions. 161 162The relocation is placed at the end of the instruction like so: 163 164@example --- 209 unchanged lines hidden (view full) --- 374spilled. The argument @var{n} indicates whether and how the function 375uses the incoming @dfn{procedure vector} (the address of the called 376function) in @code{$27}. 0 indicates that @code{$27} is not used; 1 377indicates that the first two instructions of the function use @code{$27} 378to perform a load of the GP register; 2 indicates that @code{$27} is 379used in some non-standard way and so the linker cannot elide the load of 380the procedure vector during relaxation. 381 |
382@item .usepv @var{function}, @var{which} 383Used to indicate the use of the @code{$27} register, similar to 384@code{.prologue}, but without the other semantics of needing to 385be inside an open @code{.ent}/@code{.end} block. 386 387The @var{which} argument should be either @code{no}, indicating that 388@code{$27} is not used, or @code{std}, indicating that the first two 389instructions of the function perform a GP load. 390 391One might use this directive instead of @code{.prologue} if you are 392also using dwarf2 CFI directives. 393 |
|
382@item .gprel32 @var{expression} 383Computes the difference between the address in @var{expression} and the 384GP for the current object file, and stores it in 4 bytes. In addition 385to being smaller than a full 8 byte address, this also does not require 386a dynamic relocation when used in a shared library. 387 388@item .t_floating @var{expression} 389Stores @var{expression} as an @sc{ieee} double precision value. --- 18 unchanged lines hidden (view full) --- 408@item at 409Indicates that macro expansions may clobber the @dfn{assembler 410temporary} (@code{$at} or @code{$28}) register. Some macros may not be 411expanded without this and will generate an error message if @code{noat} 412is in effect. When @code{at} is in effect, a warning will be generated 413if @code{$at} is used by the programmer. 414 415@item macro | 394@item .gprel32 @var{expression} 395Computes the difference between the address in @var{expression} and the 396GP for the current object file, and stores it in 4 bytes. In addition 397to being smaller than a full 8 byte address, this also does not require 398a dynamic relocation when used in a shared library. 399 400@item .t_floating @var{expression} 401Stores @var{expression} as an @sc{ieee} double precision value. --- 18 unchanged lines hidden (view full) --- 420@item at 421Indicates that macro expansions may clobber the @dfn{assembler 422temporary} (@code{$at} or @code{$28}) register. Some macros may not be 423expanded without this and will generate an error message if @code{noat} 424is in effect. When @code{at} is in effect, a warning will be generated 425if @code{$at} is used by the programmer. 426 427@item macro |
416Enables the expasion of macro instructions. Note that variants of real | 428Enables the expansion of macro instructions. Note that variants of real |
417instructions, such as @code{br label} vs @code{br $31,label} are 418considered alternate forms and not macros. 419 420@item move 421@itemx reorder 422@itemx volatile 423These control whether and how the assembler may re-order instructions. 424Accepted for compatibility with the OSF/1 assembler, but @command{@value{AS}} --- 30 unchanged lines hidden --- | 429instructions, such as @code{br label} vs @code{br $31,label} are 430considered alternate forms and not macros. 431 432@item move 433@itemx reorder 434@itemx volatile 435These control whether and how the assembler may re-order instructions. 436Accepted for compatibility with the OSF/1 assembler, but @command{@value{AS}} --- 30 unchanged lines hidden --- |