home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / sc658pch / read.me < prev    next >
Text File  |  1977-12-31  |  6KB  |  186 lines

  1. This patch contains a number of bug fixes (listed below),
  2. and few enhancements to the SAS/C Developement System.
  3. This patch will use the original 6.50 disks to perform
  4. the patch. You should have 6.56 and 6.57 installed BEFORE applying
  5. this patch.
  6.  
  7.  
  8.  
  9.  
  10. To install this patch, type
  11.  
  12.    execute install
  13.  
  14.  
  15. New Features:
  16.  
  17. 1) Added two new builtin functions to utilize ROL/ROR instructions:
  18.  
  19.      x = __builtin_rol(a, b, size);
  20.      x = __builtin_ror(a, b, size);
  21.      
  22.   where
  23.   
  24.      x       is the result of 'a' rotated by 'b' bits.
  25.      size    is an optional constant paramter where
  26.                size = 0               -   byte size rotate
  27.                size = 1               -   word size rotate
  28.                size = 2(or anthing else)  long size rotate
  29.              if size is omitted, size is assumed to be long.
  30.  
  31.      NOTE: if 'b' is a constant value 16, and long size is to
  32.            be used, then a SWAP instruction will be generated.
  33.  
  34.  
  35. 2) To aid in debugging code that does not have a seglist (ie ROM code),
  36.    the following addtion had been made to the SYMLOAD command:
  37.    
  38.    
  39.    SYMLOAD HUNKINFO addr1,addr2,... "filename"
  40.  
  41.  
  42.    
  43. ------------------------6.58------------------------------------------
  44.  
  45. 1) _M68060 symbol was defined if CPU=040 or CPU=060.     Fixed.
  46.  
  47. 2) Phase 1 could get an enforcer hit when handling       Fixed.
  48.    enums in ?: constructs.
  49.  
  50. 3) Debug generator could get an enforcer hit if          Fixed.
  51.    some functions were inlined by the optimizer.
  52.  
  53. 4) Improve SC2 so it doesn't flush unused register       Done.
  54.    parameters to the stack.
  55.  
  56. 5) Split large blocks after a function call to decrease  Done.
  57.    the time it takes to schedule a function.
  58.  
  59. 6) 16 bit abs relocs were broken in 6.57, for example    Fixed.
  60.    move foo.w,a0
  61.  
  62. 7) Function pointers paramters to 'extern "C"' functions Fixed.
  63.    defaulted to __regargs instead of __stdargs.
  64.  
  65. 8) SHOW command causes Enforcer Hits in LINE mode CPR.   Fixed.
  66.  
  67. 9) Scheduler did not know that NEG <ea> modified memory, Fixed.
  68.    and could cause bad code to be generated.
  69.  
  70. 10) SMAKE has a problem parsing tooltypes from           Fixed.
  71.     MagicWB icons.
  72.  
  73. 11) Invalid C++ syntax of the form void fun(int =9,int); Fixed.
  74.     could cause the C++ compiler to crash.
  75.  
  76. 12) Improve GO's handling of CONST pointers.             Done.
  77.  
  78. 13) SC2 will no longer generate byte long bit tests      Done.
  79.     for volatile variables. 
  80.  
  81. 14) __REVISION__ is now set to 6.58 in C and C++         Done.
  82.     compiler. 
  83.  
  84. 15) The stdio constructor was not restoring              Fixed.
  85.     pr_ConsoleTask.
  86.  
  87. 16) With PARM=R and a stackframe size of > 32k, sc2      Fixed.
  88.     would flush registerized parameters to the wrong
  89.     offset on the stack.
  90.  
  91. 17) Add a warning to SLINK if the priority for           Done.
  92.     constructors/destructors exceeds the maximum of 32k.
  93.  
  94. 18) The function requester in CPR would not display the  Fixed.
  95.     proper line number if two or static C functions were
  96.     present.
  97.     
  98. 19) Fix stepping into functions compiled with STACKEXT.  Fixed.
  99.  
  100. 20) SLINK could report bad line numbers is a FLUSH debug Fixed.
  101.     mode was not used.
  102.  
  103. 21) Don't use CLR instruction for VOLATILE's.            Fixed.
  104.  
  105. 22) __CXVDF() would read one too many digits. This       Fixed.
  106.     caused scanf("%5f"...) to read 6 digits.
  107.  
  108. 23) __CXVFD() would read 0-10 as -10. This caused scanf  Fixed.
  109.     to give improper results.
  110.  
  111. 24) SC would not pass the LIBFD option to slink if the   Fixed.
  112.     option startup=devinit or startup=devinitr was used. 
  113.  
  114. 25) ASM would try to do EQUR subsitution in the include  Fixed.
  115.     filenames, causing errors.
  116.  
  117. 26) Fix problem doing a go on a task that was caught in  Fixed.
  118.     a Wait().
  119.  
  120. 27) CPR would crash on exit if debugging a WB program    Fixed.
  121.     with -s.
  122.  
  123. 28) ?: construct with one CONST and one NON-CONST        Fixed.
  124.     operand could result in the CONSTNESS of a typedef
  125.     being changed, including typedefs in GST's.
  126.  
  127. 29) When using the CPR command 'display p "%s"', if      Fixed.
  128.     'p' pointed to a string larger than 512 bytes,
  129.     CPR would crash.
  130.  
  131. 30) Prevent GO from inlining __asm functions.            Done.
  132.  
  133. 31) SC1 could get into infinite loop with GENPROTO on,   Fixed.
  134.     and errors in the source file.
  135.  
  136. 32) In a case like 'a ? a : b->c;', the variable 'b' was Fixed.
  137.     always being dereferenced, even if 'a' was true.
  138.  
  139. 33) GST command would not return 0 on success.           Fixed.
  140.  
  141. 34) Support quotes around the image name in the break    Done.
  142.     command to allow setting breakpoints in images that
  143.     contain spaces or start with a number. For example:
  144.     
  145.     break "123_foo.library":function
  146.  
  147. 35) SLINK was not exiting properly if it ran out of      Fixed (I hope).
  148.     memory.
  149.  
  150. 36) GO would improperly remove a cast to short if the    Fixed.
  151.     the result was used in a long comparison.
  152.  
  153. 37) SLINK could fail to read debug information from      Fixed.
  154.     from large libraries.
  155.  
  156. 38) CPR would not single step properly if a watch was    Fixed.
  157.     set on a formal or auto, and the first C line of the
  158.     function was a loop construct.
  159.  
  160. 39) Fix long FPU conditional branches. In some cases it  Fixed.
  161.     is was possible to get a CXERR 91xxxx. 
  162.  
  163. 40) Fix bad warning in STRICT mode when result of ?:     Fixed.
  164.     was an unsigned long.
  165.  
  166. 41) Added significant speed improvents from our inhouse  Done.
  167.     version of the global optimizer.
  168.  
  169. 42) Fixed problem generating debug info for globals that Fixed.
  170.     reference typedefs.
  171.  
  172. 43) SE would not use fonts that were not already loaded  Fixed.
  173.     into memory.
  174.  
  175. 44) Improve ability for CPR to display symbols from      Done.
  176.     only H_SYMBOL information.
  177.  
  178. 45) Fix aligned builtin mem functions for shortints.     Fixed.
  179.  
  180. 46) Set pad bytes of LIBID string to NULL rather than    Done.
  181.     being undefined.
  182.  
  183. 47) Go would not pass proper alignment requirements to   Fixed.
  184.     phase 2 when changing a for loop into a builtin
  185.     memcpy().
  186.