Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ugen(1) — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

as(1)

ucode(1)

btou(1)

uopt(1)



UGEN(1)             RISC/os Reference Manual              UGEN(1)



NAME
     ugen - MIPS Assembler code generator from U-code

SYNOPSIS
     ugen ucode_file [ -l list_file -t sym_file -e err_file -temp
     temp_file " .}S 3 2 "-regn"" " count" "" "" "" "" " .}S 3 2
     "-fregn"" " count" "" "" "" "" ] [ -dump -O0 -ufsa -ufsm -FP
     -L -nooffsetopt -notailopt -EL -EB -trapuv -excpt -align32
     -w -w2 ]

DESCRIPTION
     ugen, the MIPS assembly code generator, reads the input
     binary ucode file, optimized or un-optimized, performs some
     local optimizations and outputs the binary assembler file.
     Optionally ugen generates an ASCII assembler file.  By con-
     vention, assembler files have the extension .G for binary
     assembler and ugen does not force this convention on the
     user.  ugen generates code in four passes: first, it builds
     a tree from ucode, then it translates it into a simpler
     tree, performs label optimizations and finaly, evaluates
     assembler code.  ugen accepts the several types of argu-
     ments:

     Arguments whose names end with `.B' are assumed to be unop-
     timized ucode files.  Arguments whose names end with `.O'
     are assumed to be optimized ucode files.

     The following options are interpreted by ugen.  See cc(1)
     for compiler driver options.

     -dump   Tells ugen to print dumps of the code generation
             tree in each phase : after build, after translate
             and after label optimization. Dumps are printed on a
             per-procedure basis. The optput file is stderr.

     -O0     Do not perform any optimizations.

     -ufsa   Causes ugen to use not only unsaved registers but
             all fp saved registers that the optimizer did not
             use. Fp saved registers are used only if no more fp
             unsaved registers available.

     -ufsm   Causes ugen to use not only unsaved registers but
             all fp saved registers that the optimizer did not
             use. Fp saved registers and fp unsaved registers are
             merged to one pool of available fp registers.

     -FP     Causes ugen to use not only fp registers for fp
             operations.

     -L      Do not remove loop header.




                        Printed 11/19/92                   Page 1





UGEN(1)             RISC/os Reference Manual              UGEN(1)



     -nooffsetopt
             Do not perform offset optimization.

     -notailopt
             Do not perform tail optimization.

     -EL     Tells ugen that the target machine is little-endian.

     -EB     Tells ugen that the target machine is big-endian.

     -trapuv Initializes stack frame with a NaN.

     -excpt  Tells ugen that the compiled program can have an
             exception handler. Special directives are generated.

     -align32
             Tells ugen that floating point doubles may be
             unaligned.

     -w      Suppress all warning messages.

     -w2     Abort on warnings. Exit with nonzero status.

     -l list_file
             Generates symbolic assembly language source file in
             the given file.

     -t sym_file
             Tells ugen the name of the symbol table file.

     -e err_file
             Tells ugen the name of the output error file.

     -temp temp_file
             Tells ugen to use the given file as temporary file.

     " .}S 3 2 "-regn"" " count" "" "" "" ""
             Tells ugen to change the number of integer registers
             used for different purposes, depending on the 'n'
             given. The 'n' can be one of : a, g, r, e. There is
             no blank between 'reg' and the argument letter. For
             rega, count is number of integer parameter regis-
             ters. For regg, count is the number of code genera-
             tor integer temporaries. For regr, count is the
             number of integer unsaved registers. For rege, count
             is the number of integer saved registers.

     " .}S 3 2 "-fregn"" " count" "" "" "" ""
             Tells ugen to change the number of floating point
             registers used for different purposes, depending on
             the 'n' given. The 'n' can be one of : a, g, r, e.
             There is no blank between 'freg' and the argument



 Page 2                 Printed 11/19/92





UGEN(1)             RISC/os Reference Manual              UGEN(1)



             letter. For frega, count is number of floating point
             parameter registers. For fregg, count is the number
             of code generator floating point temporaries. For
             regr, count is the number of floating point unsaved
             registers. For rege, count is the number of floating
             point saved registers.

SEE ALSO
     RISCompiler and C Programmer's Guide.
     as(1), ucode(1), btou(1), uopt(1),

DIAGNOSTICS
     ugen assumes the input ucode file is error-free.  However,
     it does output warning messages when it runs into special
     situations during optimization.








































                        Printed 11/19/92                   Page 3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026