-@c Copyright 2002
+@c Copyright 2002, 2003, 2005, 2009
@c Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.
because not all symbol arithmetic can be represented. However, the option
can still be useful in specific applications.
+@cindex @code{-replace} command line option, Alpha
+@cindex @code{-noreplace} command line option, Alpha
+@item -replace
+@item -noreplace
+Enables or disables the optimization of procedure calls, both at assemblage
+and at link time. These options are only available for VMS targets and
+@code{-replace} is the default. See section 1.4.1 of the OpenVMS Linker
+Utility Manual.
+
@cindex @code{-g} command line option, Alpha
@item -g
This option is used when the compiler generates debug information. When
@cindex Alpha registers
@cindex register names, Alpha
-The 32 integer registers are refered to as @samp{$@var{n}} or
+The 32 integer registers are referred to as @samp{$@var{n}} or
@samp{$r@var{n}}. In addition, registers 15, 28, 29, and 30 may
-be refered to by the symbols @samp{$fp}, @samp{$at}, @samp{$gp},
+be referred to by the symbols @samp{$fp}, @samp{$at}, @samp{$gp},
and @samp{$sp} respectively.
-The 32 floating-point registers are refered to as @samp{$f@var{n}}.
+The 32 floating-point registers are referred to as @samp{$f@var{n}}.
@node Alpha-Relocs
@subsection Relocations
Some of these relocations are available for ECOFF, but mostly
only for ELF. They are modeled after the relocation format
-introduced in Digial Unix 4.0, but there are additions.
+introduced in Digital Unix 4.0, but there are additions.
The format is @samp{!@var{tag}} or @samp{!@var{tag}!@var{number}}
where @var{tag} is the name of the relocation. In some cases
indicate that the literal is used for a call. During relaxation, the
code may be altered to use a direct branch (e.g.@: @code{bsr}).
+@item !lituse_jsrdirect!@var{N}
+Similar to @code{lituse_jsr}, but also that this call cannot be vectored
+through a PLT entry. This is useful for functions with special calling
+conventions which do not allow the normal call-clobbered registers to be
+clobbered.
+
@item !lituse_bytoff!@var{N}
Used with a byte mask instruction (e.g.@: @code{extbl}) to indicate
that only the low 3 bits of the address are relevant. During relaxation,
used in some non-standard way and so the linker cannot elide the load of
the procedure vector during relaxation.
+@item .usepv @var{function}, @var{which}
+Used to indicate the use of the @code{$27} register, similar to
+@code{.prologue}, but without the other semantics of needing to
+be inside an open @code{.ent}/@code{.end} block.
+
+The @var{which} argument should be either @code{no}, indicating that
+@code{$27} is not used, or @code{std}, indicating that the first two
+instructions of the function perform a GP load.
+
+One might use this directive instead of @code{.prologue} if you are
+also using dwarf2 CFI directives.
+
@item .gprel32 @var{expression}
Computes the difference between the address in @var{expression} and the
GP for the current object file, and stores it in 4 bytes. In addition
if @code{$at} is used by the programmer.
@item macro
-Enables the expasion of macro instructions. Note that variants of real
+Enables the expansion of macro instructions. Note that variants of real
instructions, such as @code{br label} vs @code{br $31,label} are
considered alternate forms and not macros.