home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / CCDL122.ZIP / FEATURE.NEW < prev    next >
Encoding:
Text File  |  1996-08-08  |  4.4 KB  |  116 lines

  1. 1) Bit fields have been added.  On the 68020 /2 switch 68020 bit field
  2.     instructions will be used.  Bit fields may be allocated in reverse
  3.     order with the /C+r switch
  4.  
  5. 2) Object file now has 3 main sections and /C-b switch:
  6. (68k)
  7.     "code"  code
  8.     "data"    pre-initialized (static) data
  9.     "bss"    uninitialized (static) data
  10. (386)
  11.     ".code"
  12.     ".data"
  13.     ".?data"
  14.     Other sectiions get added if there are pointers in the static
  15.     data segment that need to be adjusted for the load address (68K only)
  16.     To merge the bss and data segments use the /C-b switch; this reverts
  17.     the compiler to the old two-segment behaviour.  #pramd directives
  18.     can also add other sections.  See sections.doc
  19.  
  20. 3) Several switchs have been added and others renamed.  See switches.doc
  21.  
  22. 4) /D switch now allows compile-time defines:
  23.     /Daaa defines the symbol aaa
  24.  
  25. 5) CONST and VOLATILE keywords are now supported in the ANSI
  26.     fashion.  This does not extend to CONST in front of a typedef name...
  27.  
  28. 6) several #pragma directives have been added.  These are primarily for
  29.     library usage and will be documented at a later time.  However
  30.     you can disable static register optimizations with #pragma regopt:
  31.  
  32.     #pragma regopt        /* No optimizations */
  33.     #pragma regopt a    /* Address regs may be optimized */
  34.     #pragma regopt adf    /* All registers may be used for optimization (default)*/ 
  35.  
  36.     unrecognized #pragma options will be ignored.  Other #pragma
  37.     keywords are startup and rundown; these will generate data in
  38.     some of the extended sections.  See macros.doc.
  39.  
  40. 7) Lines which generate code are now embedded in the SRC file along
  41.     with the line number.  this is useful for a breakdown of what
  42.     statements generate what code.    This feature may be disabled
  43.     with the /C-l switch.
  44.  
  45. 8) The DOS versions now evaluate integer expressions properly when the integer
  46.     is long.
  47.  
  48. 9) New keywords have been added:
  49.  
  50.     declarations:
  51.  
  52.     _abs(4) int hi;            (m68k only)
  53.     defines a variable hi of type int at absolute address 4; the
  54.     variable is accessed directly and not off of a register.  Such
  55.     variables may not be initialized.
  56.  
  57.     _interrupt func();
  58.     defines a trap function (pushes regs & returns with rti)
  59.  
  60.  
  61.     statements:
  62.  
  63.     _trap(trapnum,...);
  64.     call a trap.  The trap must index args off a0
  65.  
  66.     _genword(0x4040); (68k only)
  67.     _genbyte(0x40);  (386 only)
  68.     embeddes a word or byte at the current place in the code segment.  May be
  69.     used for forcing instructions into the code segment.
  70.  
  71.  
  72. 10) Trigraphs have been added.  They can't be used for token pasting though.
  73.  
  74. 11) Compiler will now output a file showing the changes the preprocessor
  75.     made.  This file has a '.I' extension.  It should itself be
  76.     compilable.  Note that if '\' is used to extend a line the preprocessor
  77.     will output an extended line rather than breaking it into pieces.
  78.     Also #pragma is not yet passed through to the .I file.
  79.     use the +i switch to obtain this file.
  80.  
  81. 12) sizeof function updated to handle variables, structure elements, partial
  82.     arrays, and structure/enum tags.
  83.  
  84. 13) New switches for code generation control and optimization.
  85.  
  86. 14) Program will look for the symbol CC386 (or CC68K) in the environment.
  87. If it is present, it will be parsed just like the command line BEFORE the
  88. command line itself
  89.  
  90. 15) Data may be 'packed' to take up the minimal space (/C+p switch).
  91.     If the /2 switch is present words and dwords will be 
  92.     guaranteed to be on an even byte boundary (m68k).  Packing does not
  93.     affect function arguments.  Even with packing, the stack will
  94.     always be maintained on a DWORD boundary.
  95.  
  96.     If this switch is not present data will be aligned on appropriate
  97.     boundaries for run-time speed.
  98.  
  99. 16) Pointers to functions are updated to handle odd cases like arrays
  100. of pointers to functions.  Functions may also return pointers to functions
  101. now.
  102.  
  103. 17) postincrement and decrement modes now work properly
  104.  
  105. 18) implicit casts now work properly
  106.  
  107. 19) publics/externals now placed at start of file (386 only)
  108.  
  109. 20) A variety of warning messages have been implemented.  They can be
  110. disabled with the -w switch.  At present neither errors nor warnings
  111. stop code generation (unless the number of errors is too large).  Later
  112. errors will stop code generation and warnings will not.
  113.  
  114. 15) Program will look for the symbol CCINCL in the environment.  If it
  115. is present directory specificatios included in it will be processed
  116. when searching for include files