home *** CD-ROM | disk | FTP | other *** search
- #
- # 68K/386 32-bit C compiler.
- #
- # copyright (c) 1996, David Lindauer
- #
- # This compiler is intended for educational use. It may not be used
- # for profit without the express written consent of the author.
- #
- # It may be freely redistributed, as long as this notice remains intact
- # and sources are distributed along with any executables derived from them.
- #
- # The author is not responsible for damages, either direct or consequential,
- # that may arise from use of this software.
- #
- # v1.5 August 1996
- # David Lindauer, gclind01@starbase.spd.louisville.edu
- #
- # Credits to Mathew Brandt for original K&R C compiler
- #
- #
- This compiler is presented on an 'as-is' basis without any guarantee of
- usability or fitness for any given application. Risks associated with
- using it, including financial loss or loss of life are not the
- responsibility of the authors. However, this compiler is intended as
- an educational tool, and is not to be used commercially in any case
- without the express written consent of the authors.
-
- The original author is Matthew Brandt. As he left it it was a K&R
- style compiler with no floating point and minimal preprocessor support,
- targeted only for the m68k. Much of the work was done on a Unix
- machine and later ported to DOS. You can find his version on one of
- the Motorola file sites if you wish to compare. The current version
- has been updated extensively to support a variety of ANSI constructs as
- well as i386 support and a better preprocessor. However, parts of
- the program still reflect Mathew's work.
-
- I have done my part of the coding with a 16-bit MSDOS compiler
- (borland c).
-
- This is an optimizing, retargetable 32-bit C compiler. Current support
- is for the m68k and the i386. Most ANSI keywords are supported;
- although the compiler is definitely NOT ansi-compatible when it comes
- to evaluating expressions.
-
- A built-in preprocessor has been added. Note that due to a requirement
- to use an extended character set most of the preprocessor considers
- characters as shorts. Symbols are translated to an
- asCII-with-escape-sequences format so that the rest of the compiler can
- use char fields for symbols.
-
- There is also a minix varient of Mathew's compiler; search for the file
- c386.* using archie. feature-wise it is roughly compatabile with
- this cmpiler, except it is fully ANSI compatabile whereas this compiler
- is not, and it has no buit-in preprocessor.
-
- This is an optimizing compiler. Optimizations include constant folding
- and shoving things into registers. Also some peepgen optimization is
- done where applicable. No loop optimizations or common subexpression
- elimination or live variable analysis are done at this time.
-
- The compiler generates ASM code at this time. For the m68k, the
- compiler generates a .SRC file and the syntax of the CrossCode
- assembler is utilized. 68K code is position-independent. For the i386,
- the compiler generates a .ASM file and the masm/tasm syntax is
- utilized.
-
- Read the feature.new file and the files in the DOCS directory for
- information on implementation-dependent features.
-
- In the clibs directory you will find C and assembly sources for
- an ansi C library. This is not guarateed to be complete or accurate,
- however its functions are designned to work similarly to the ansi
- functions. There are startup files that completely initialize the
- run-time environment of the compiler.
-
- David Lindauer