--
Carsten Hammer Schwindstr. 7 33615 Bielefeld
cha...@POST.uni-bielefeld.de
cha...@d2hammer.physik.uni-bielefeld.de
The Ots routines (e.g. OtsDivide64Unsigned, OtsMove, etc.) are low-level
support routines for code generated by GEM-based compilers that perform
operations like division, block move and other "primitive" byte string
operations, bitfield insertion/extraction, 128 bit floating point
support routines, etc., that you might find in a CISC instruction set,
but that are either library routines or expanded sequences of in-line
code on a RISC machine. (The Ots routines are quite highly tailored,
and in many cases were written by compiler developers, since they were/
are the ones that have to determine appropriate tradeoffs in cost
between
in-line cases and cases handled by the routines, and are often the ones
most aware of the relevant techniques and tradeoffs.)
Prior to Digital Unix 4.0, these routines were package in a single
library (libots) which wasn't linked in by default for C programs,
since the pre-Unix 4.0 C compiler wasn't a GEM-based compiler and
didn't use/need those routines. Starting with Digital Unix V4.0,
the default C compiler is GEM-based (formerly invoked cc -migrate),
and as a result, the Ots routines used by the GEM-based C compiler
have moved into libc, while some sets of other routines (e.g. bitstring
and 16 bit character string) that are only used by other languages
remain in libots.
--
Kent Glossop (work) glo...@zko.dec.com
GEM compiler system (personal) kglo...@ix.netcom.com
Digital Equipment Corporation