vbcc 0.9a

Date 17-Oct-2009 12:13:36
Topic: Software News

vbcc is a highly optimizing portable and retargetable ISO C compiler. It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).

Project homepage: http://sun.hasenbraten.de/vbcc/

16-Oct-2009: vbcc 0.9a release.
Changes since last release:
* Using vasm 1.4b and vlink 0.12f with many improvements and bug fixes.
* The compiler itself is for the first time compiled with optimization enabled. So it is a little bit faster and smaller.
* Included vbccm68ks (16 bit integer) in distribution, which is required for the Atari TOS target.
* Fixed alignment bug on incomplete structure initialization.
* Problem with incorrect constant folding during optimization fixed.
* Fixed bug with conversion into a non-scalar at -O1.
* -stack-check referenced the obsolete symbol __exit.
* A problem with a misplaced return-label during flowgraph optimization (-O1 and up) was fixed. The bug showed up in a forever-loop, which was left with return-instructions only, and could result in an infinite loop or a corrupted stack frame.
* Prevent infinite recursion during program cleanup.
* The 68k config files aos68k, tos and mint do no longer have to set optimization options. The OPT directive is completely supported by vasmm68k_mot since 1.3d.
* M68k code generator: Fixed many ColdFire bugs. But the ColdFire support is still far from being perfect.
* M68k code generator: Fixed "target error: illegal use of registers", which could be caused by case statements, since V0.9, and during jumptable generation.
* M68k code generator: Generated illegal data constants when -const-in-data and -sd were specified together.
* M68k code generator: Fixed a crash, which could occur with constant pointers (e.g. *(int *)0x1234=x) in certain situations.
* M68k code generator: Calling a constant address no longer leads to an internal error.
* M68k code generator: Fixed a wrong condition code test when converting to smaller integral types.
* PPC code generator: Using a wrong IC pointer in ALLOCREG/FREEREG caused illegal memory accesses.
* vclib: strtod() fixed: the endptr (when given) was incorrect.
* vclib: ctype.h was wrong for all 68k targets (toupper()/tolower() inlines didn't work).
* vasmm68k: Got a noticeable performance improvement on parsing the input source by a factor between 3 and 30.
* vasmm68k: M68k cpu settings were lost when assembling a source vbcc generated with -g option.
* vasmm68k: Wrong M68k optimization of move.w #0,An into suba.w An,An left garbage in the MSW.
* vlink: Erroneously prefered a symbol from a library over a symbol with the same name from the referencing object module.
* vlink: Fixed problem with merging common symbols from serveral modules.
* vlink: Fixed an error when the resulting ELF executable (OS4) only requires a single segment.

Please support vbcc by contacting the authors if you find any bugs or problems. Supporting seven different architectures makes testing extremely time consuming, so this release is probably not free of bugs.

For problems with the compiler core contact Dr. Volker Barthelmann, and for Amiga/Atari-specific problems, including assembler, linker, startup-codes and linker-libraries, contact Frank Wille.

This article comes from AmigaWorld - Amiga Community Portal

The URL for this story is: