Definicon DSI-32 C compiler options

Option Function
-g Generate debug information and a frame pointer for stack traces. The amount and form of debug information varies with the capabilities of the target system.
-ga Generate a frame pointer for stack traces.
-w Suppress warning diagnostics.
-p Generate calls for execution profiling. Currently supported only on UNIX.
-O1 Optimize the program to be as fast as possible even if it is necessary to make the program bigger. This flag often causes confusion among people familiar with PCC. Under PCC, -O means make the program smaller and faster. One wonders why this is not the default since the -O compile time option only slows down compilation by 10%. Under Definicon Systems Pascal the default is to perform all of the optimizations performed by PCC. The -O option will perform further optimizations which may make the program faster but larger. It is counter productive to specify -O on code which is rarely executed as it will make the whole program larger but no faster. Therefore, when converting to the Definicon Systems compiler remove the -O option from makefiles and command files! After experimenting with a program it is possible to discover which modules benefit from -O and which do not.
-O2 Allow the optimizer to assume that memory locations do not change except by explicit stores. That is, the optimizer is guaranteed that no memory locations are I/O device registers that can be changed by external ardware and no memory locations are being shared with other processes which can change them asynchronously with respect to the current process. This compile time option must be used with extreme caution (or not at all) in device drivers, operating systems, shared memory environments, and when interrupts (or UNIX signals) are present.
-R In the Motorola assembly code version of the MC68000 compiler, place explicitly initialized data in a separate section so that it can be placed in ROM. In the VAX and NS32000 compilers this compile time option is passed on to the assembler and it places all data into the text section.
-Istring Include file names which do not start with “/” are searched for in the directory “string” before a standard list of directories. Multiple -I options can be specified. They will be searched in the order encountered.
-E Do not compile the program, instead place the output of the preprocessor on the standard output file. This is useful for debugging preprocessor macros. The integrated preprocessor cannot generate output as fast as the UNIX “cpp” program, so use “cpp” for big jobs.
-C If this option is given, comments are output in the preprocessor output. The default is to strip comments from the output.
-Dname Define “name” to the preprocessor with the value 1. This is equivalent to putting “#define name 1” at the top of the source file.
-Dname=string Define “name” to the preprocessor with the value “string”. This is equivalent to putting “#define name string” at the top of the source file.
-Uname Undefine the predefined preprocessor symbol “name”. This is equivalent to putting “#undef name” at the top of the source file.
-Xn Where n is an integer constant. Turn on option number n. The options for Pascal are listed below. There are also additional options available for various target and host systems. Descriptions of these options can be found in the associated documentation.
-Zn Turn off option number n. This is the reverse of the X option. This option is useful if a version of the compiler has some options turned on by default.
-ge DSI-32 Target environment. Default is Avalon. Equivalent to -X50 -X51 -X52
-X6 Allocate each enum type as the smallest size predefined type which allows representation of all listed values (that is, from the list: “char”, “short”, “int”, “unsigned char”, “unsigned short”, or “unsigned”). The default is to allocate as an “int”.
-X50 Push the first two arguments on the stack. Default is to pass the first two arguments in registers as explained in the Avalon calling convention.
-X51 Generate the Genix pseudo-ops. The default is to generate Avalon pseudo-ops, which are compatible with UNIX.
-X52 Generate modular software calls: cxp,cxpd,lxpd,… The default is relocatable calls: bsr,jsr,addr.
-X55 Make fields of type int, short, and char be signed. The default is for all fields to be unsigned.
-X56 Allocate each enum type as the smallest size which allows representation of all listed values (i.e. from the list “char”, “short”, “int”, “unsigned char”, “unsigned short” or “unsigned”). The default is to allocate “int”
-X58 Do not put an underscore in front of the names of all global variables and procedures. This is compatible with the NSX package from National. The default is for DSI-32 and Avalon.
-X60 Before each multiply to memory instruction add a memory read instruction for the second operand. This avoids having a page fault on the second operand, which will lock up NS32000 processors made before revision N.
-X64 Defines the preprocessor symbols “ns16000” and “ns32000” to be 1. If this flag is not set, “MC68000” is defined to be 1
-X67 Modifies the generation of common variables. Intended for cross software support only.
-X72 Generates OPUS style pseudo-ops.
-X74 Generates System V stabs.

Navigation