as: Alpha Directives
1
1 9.2.5 Alpha Assembler Directives
1 --------------------------------
1
1 'as' for the Alpha supports many additional directives for compatibility
1 with the native assembler. This section describes them only briefly.
1
1 These are the additional directives in 'as' for the Alpha:
1
1 '.arch CPU'
1 Specifies the target processor. This is equivalent to the '-mCPU'
1 command-line option. ⇒Options Alpha Options, for a list of
1 values for CPU.
1
1 '.ent FUNCTION[, N]'
1 Mark the beginning of FUNCTION. An optional number may follow for
1 compatibility with the OSF/1 assembler, but is ignored. When
1 generating '.mdebug' information, this will create a procedure
1 descriptor for the function. In ELF, it will mark the symbol as a
1 function a-la the generic '.type' directive.
1
1 '.end FUNCTION'
1 Mark the end of FUNCTION. In ELF, it will set the size of the
1 symbol a-la the generic '.size' directive.
1
1 '.mask MASK, OFFSET'
1 Indicate which of the integer registers are saved in the current
1 function's stack frame. MASK is interpreted a bit mask in which
1 bit N set indicates that register N is saved. The registers are
1 saved in a block located OFFSET bytes from the "canonical frame
1 address" (CFA) which is the value of the stack pointer on entry to
1 the function. The registers are saved sequentially, except that
1 the return address register (normally '$26') is saved first.
1
1 This and the other directives that describe the stack frame are
1 currently only used when generating '.mdebug' information. They
1 may in the future be used to generate DWARF2 '.debug_frame' unwind
1 information for hand written assembly.
1
1 '.fmask MASK, OFFSET'
1 Indicate which of the floating-point registers are saved in the
1 current stack frame. The MASK and OFFSET parameters are
1 interpreted as with '.mask'.
1
1 '.frame FRAMEREG, FRAMEOFFSET, RETREG[, ARGOFFSET]'
1 Describes the shape of the stack frame. The frame pointer in use
1 is FRAMEREG; normally this is either '$fp' or '$sp'. The frame
1 pointer is FRAMEOFFSET bytes below the CFA. The return address is
1 initially located in RETREG until it is saved as indicated in
1 '.mask'. For compatibility with OSF/1 an optional ARGOFFSET
1 parameter is accepted and ignored. It is believed to indicate the
1 offset from the CFA to the saved argument registers.
1
1 '.prologue N'
1 Indicate that the stack frame is set up and all registers have been
1 spilled. The argument N indicates whether and how the function
1 uses the incoming "procedure vector" (the address of the called
1 function) in '$27'. 0 indicates that '$27' is not used; 1
1 indicates that the first two instructions of the function use '$27'
1 to perform a load of the GP register; 2 indicates that '$27' is
1 used in some non-standard way and so the linker cannot elide the
1 load of the procedure vector during relaxation.
1
1 '.usepv FUNCTION, WHICH'
1 Used to indicate the use of the '$27' register, similar to
1 '.prologue', but without the other semantics of needing to be
1 inside an open '.ent'/'.end' block.
1
1 The WHICH argument should be either 'no', indicating that '$27' is
1 not used, or 'std', indicating that the first two instructions of
1 the function perform a GP load.
1
1 One might use this directive instead of '.prologue' if you are also
1 using dwarf2 CFI directives.
1
1 '.gprel32 EXPRESSION'
1 Computes the difference between the address in EXPRESSION and the
1 GP for the current object file, and stores it in 4 bytes. In
1 addition to being smaller than a full 8 byte address, this also
1 does not require a dynamic relocation when used in a shared
1 library.
1
1 '.t_floating EXPRESSION'
1 Stores EXPRESSION as an IEEE double precision value.
1
1 '.s_floating EXPRESSION'
1 Stores EXPRESSION as an IEEE single precision value.
1
1 '.f_floating EXPRESSION'
1 Stores EXPRESSION as a VAX F format value.
1
1 '.g_floating EXPRESSION'
1 Stores EXPRESSION as a VAX G format value.
1
1 '.d_floating EXPRESSION'
1 Stores EXPRESSION as a VAX D format value.
1
1 '.set FEATURE'
1 Enables or disables various assembler features. Using the positive
1 name of the feature enables while using 'noFEATURE' disables.
1
1 'at'
1 Indicates that macro expansions may clobber the "assembler
1 temporary" ('$at' or '$28') register. Some macros may not be
1 expanded without this and will generate an error message if
1 'noat' is in effect. When 'at' is in effect, a warning will
1 be generated if '$at' is used by the programmer.
1
1 'macro'
1 Enables the expansion of macro instructions. Note that
1 variants of real instructions, such as 'br label' vs 'br
1 $31,label' are considered alternate forms and not macros.
1
1 'move'
1 'reorder'
1 'volatile'
1 These control whether and how the assembler may re-order
1 instructions. Accepted for compatibility with the OSF/1
1 assembler, but 'as' does not do instruction scheduling, so
1 these features are ignored.
1
1 The following directives are recognized for compatibility with the
1 OSF/1 assembler but are ignored.
1
1 .proc .aproc
1 .reguse .livereg
1 .option .aent
1 .ugen .eflag
1 .alias .noalias
1