30-Dec-2014: vbcc 0.9d release.
Changes since last release:
- New libcall interface makes all backends generate much better
code, when doing a library call (e.g. for 64-bit arithmetics or
soft-float).
- Supports C99 __func__.
- Fixed some cases where volatile was not respected.
- Fixed compiler crash when main() does not return int in
C99 mode.
- Do not perform algebraic optimizations on "pointer - pointer".
Makes (char *)p - (char *)0 being treated as integer
again.
- Relaxed rules for constant expressions involving conditional
expressions. Fixes for example int x = 1<2?3:4 to be
accepted as a constant expression.
- Added diagnosis for empty struct/array initializers.
- Fixed possible memory corruption with string constants of exactly
128 bytes length.
- Stricter propagation of constants/VARADRs.
- Do not emit unused local static variables in lower optimization
levels as well.
- Fixed problems with (void)((condition) || func()).
- PPC: Fixed output of negative pointer constants on 64 bit
hosts.
- 68k: -sc (small code) works again, since switching from
PhxAss to vasm.
- 68k: New option -fastcall to pass function arguments in
scratch registers.
- 68k: New option -fp2scratch to use fp2 as an
additional scratch register.
- 68k: Fixed bug with word/long register size in indexed addressing
mode.
- 68k: Conversion of signed char to int, with
16 bit integer setting, fixed.
- 68k: Fixed wrong alignment assumptions on pointer references.
- 68k: Avoid certain addressing modes for soft-float ICs. This
caused an index register to be used before it had been restored
from the stack.
- 68k: Fixed return register for long double.
- 68k: Fixed incorrect order of restoring pushed registers during a
16 bit to 64 bits integer conversion.
- 68k: Overwriting FP-register in float to
unsigned conversion fixed.
- 68k: Fixed bug with -(An)/(An)+ and internal libcalls.
- ColdFire: 64bit add/sub with constants.
- ColdFire: Corrected stack-adjustment for pushflag in bottom of
function. In some case the stack was adjusted 4 bytes too far.
Crashed on return.
- ColdFire: Fixed bug with storing 64-bit values
(stored0d1).
- vclib: Major rework for Atari. Most files are shared between M68k
and ColdFire. Also the same headers can be used for 16- and 32-bit
backends.
- vclib: libgem with all AES and VDI functions for Atari.
- vclib: Many C99 functions and features added to the 6888x, 68040
and 68060 math libraries.
- vclib: New m060.lib with math functions optimized for the
68060 FPU.
- vclib: Improved pow2() and pow10() for
68060.
- vclib: Fixed sqrt(float), sqrt(double),
float to int64 and double to
int64 in the softfloat library by using code from
John R. Hauser's 2b release.
- vclib: Adapted all math libraries to the new libcall
interface.
- vclib: sscanf() tried to read characters from a 0
filehandle in certain situations.
- vclib: Added missing ANSI-C89 functions strcoll() and
strxfrm().
- vclib: m13.lib for Amiga Kickstart 1.x systems,
using mathffp.library instead of
mathieeesingbas.library.
- vclib: Fixed 68060 unsigned 64-bit modulo.
- AmigaOS/68k config files include -hunkdebug, so
specifying -g on the commandline is sufficient now for
getting line debug info.
- Frontend lowers priority under AmigaOS/MorphOS, so other user
processes are no longer affected by the compiler.
In such a complex project there will of course be bugs.
Most, especially the serious, bug fixes will be available immediately
as a patch. The rest comes with the next release, or by request
from the author (see below).
|
Downloading vbcc 0.9d.
You need to pick the appropriate binary archive for your host
platform. Then you can add as many target archives as you
need.
Example: If you own a Pegasos running MorphOS and
would like to develop programs for MorphOS and AmigaOS/68k, you
have to pick the vbcc_bin_morphos archive for the
binaries as well as the target archives
vbcc_target_ppc-morphos
and vbcc_target_m68k-amigaos. Install the binary
archive first, using the provided Amiga installer, then
add the targets.
The PowerUp and WarpOS binary archives are additional,
which means that you need to have a base binary archive already
installed. Typically this would be the
vbcc_bin_amigaos68k archive.
All target archives are lha-packed, including an Installer script
to work under AmigaOS/MorphOS. Target archives in tar.gz format are
for Unix/MiNT, without Installer and config files. Target archives
in zip format are recommended for Atari TOS systems, which use a
different layout due to file system restrictions.
Other host platforms. vbcc is portable enough to run
on all operating systems which offer a working ISO-C99 compiler,
e.g. BSD, Linux, MacOS and Windows. The latest release source for vasm
is available
here and for vlink
here.
A recent vbcc source snapshot is available
here, but it is
only rarely updated (check the date).
|
vbcc_bin_amigaos68k.lha
AmigaOS 2.x/3.x 68020+ binaries.
|
vbcc_bin_amigaosppc.lha
AmigaOS 4.x binaries.
|
vbcc_bin_morphos.lha
MorphOS binaries.
|
vbcc_bin_powerup.lha
Additional PowerUp binaries.
For use under AmigaOS/68k.
|
vbcc_bin_warpos.lha
Additional WarpOS binaries.
For use under AmigaOS/68k.
|
vbcc_bin_mint.tar.gz
Atari MiNT binaries.
|
vbcc_bin_tos.zip
Atari TOS binaries (68000).
|
vbcc_target_m68k-amigaos.lha
Compiler target AmigaOS 2.x/3.x M680x0.
|
vbcc_target_m68k-atari.lha
Compiler target Atari TOS/MiNT M680x0.
|
vbcc_target_m68k-atari.tar.gz
Compiler target Atari TOS/MiNT M680x0 (for Unix/MiNT hosts).
|
vbcc_target_m68k-atari.zip
Compiler target Atari TOS/MiNT M680x0 (for TOS hosts).
|
vbcc_target_cf-atari.lha
Compiler target Atari TOS/MiNT ColdFire.
|
vbcc_target_cf-atari.tar.gz
Compiler target Atari TOS/MiNT ColdFire (for Unix/MiNT hosts).
|
vbcc_target_cf-atari.zip
Compiler target Atari TOS/MiNT ColdFire (for TOS hosts).
|
vbcc_target_ppc-amigaos.lha
Compiler target AmigaOS 4.x PowerPC.
|
vbcc_target_ppc-morphos.lha
Compiler target MorphOS PowerPC.
|
vbcc_target_ppc-powerup.lha
Compiler target PowerUp PowerPC.
|
vbcc_target_ppc-warpos.lha
Compiler target WarpOS PowerPC.
|
vbcc_unix_config.tar.gz
Default config files for all targets with Unix/MiNT paths.
|
vbcc0_9d.tar.gz
The vbcc 0.9d release source.
|
Installation procedure for AmigaOS/MorphOS:
Just click the Install icon. Or refer to chapter 1.3.3 of the
documentation for a manual installation.
Installation procedure for MiNT:
Refer to the Unix installation instructions in chapter 1.3.1 of the
vbcc manual. You may want to download the Unix default config files from
above.
|
Please support vbcc by contacting the authors if you find
any bugs or problems. Supporting nine 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 ().
|