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