03-Mar-2022: vbcc 0.9h patch 1.
All the binary archives from the previous release are replaced.
This patch includes the following fixes:
- m68k: -amiga-softfloat now also works with -sd
(small data) and generates base-relative addressing modes for
the MathIeee library base.
- Fixed wrong type in strength reduction of LSHIFT IC,
which could move a shift-left with an induction variable out of
the loop with optimizations of -O2 and higher.
|
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. No installer.
|
vbcc_bin_win64.zip
Windows 64-bit binaries. No installer.
|
vbcc0_9hP1.tar.gz
The full vbcc V0.9h Patch 1 release source.
|
28-Feb-2022: vbcc 0.9h release.
New features:
- Compiler defaults to C99, use -c89 to forbid C99 extensions.
- Several improved warnings/error messages.
- New option -sec-per-obj puts all code functions and data
objects in their own section, which may be removed by linker
section garbage collection.
- Simple implementation of -merge-strings.
- Added -warnings-as-errors option.
- Define macros __OPTSPEED__/__OPTSIZE__
depending on options.
- Recognize builtin functions with __asm_ prefix.
- Added -depobj option.
- Added -force-statics and -prefer-statics.
- New backends for 6502 and 6809.
- Support for charset conversions (8-bit targets).
- Code compressor (currently only for 6502).
- Better out-of-the-box support for non-8-bit-based types.
- Several improvements regarding the backend interface.
- m68k: defines macro __SMALL_DATA__ with -sd option
- m68k: added -vbcccall/__vbccargs
- vc: new option -rmcfg-* to disable options from a config file
- vc: frontend does Unix-path conversion also for -o
- vclib: New 6502 targets: Atari, BBC, C64, Mega65, NES, Simulator,
X16
- vclib: New 6809 targets: OS-9, Simulator
- vclib: __gmtoffset and __dstflag may be overwritten separately
- vclib: strftime() supports ISO-8601 date format through %F
- vclib: added strtof()
- vclib: m68k-amigaos based on NDK 3.2
- vclib: m68k-amigaos supports Roadshow additions and <proto/bsdsocket.h>
- vclib: m68k-amigaos adds reaction.lib for ReAction GUI support
- vclib: m68k-amigaos UTC offset is automatically initialized when possible
- vclib: m68k-amigaos configs use -amiga-softfloat (inlines)
by default
- vclib: m68k-atari small-data support and libraries
- vclib: ppc-morphos support for (sysv,base)-ABI libraries
- vclib: ppc-amigaos adapted to new SDK
Performance improvements:
- Improved function inlining / cross-module inlining.
- Several improvements in register allocation.
- Improved constant propagation.
- New peephole optimizations.
- New optimization and tuning options for constant initializations.
- Improved recalculation of stack slots.
- Slightly improved common subexpression elimination.
- Range-optimizations and induction variable shortening.
- Allow strength reduction for constant left-shifts.
- Handling of volatile is improved.
- Compile-time calculations of constant pointer values.
- m68k: improved register allocation
- m68k: improved Fastcall-ABI support
- m68k: improved builtin libcalls
- m68k: improved copying of (long) doubles in memory with the FPU
- m68k: better use of scaled addressing modes
- m68k: some FPU code improvements
- m68k: fixed performance regression of internal memcpy
- vclib: reworked assembler inlines
Bug fixes:
- Lots of fixes in the compiler core and backends.
Thanks for your reports!
- vclib: bad assert.h in 0.9g: it must be possible to include the assert-macro
multiple times (with and without NDEBUG defined)
- vclib: m68k-amigaos protos declare device library bases with struct Device*.
- vclib: m68k-amigaos ReAction classes must not be automatically
opened with auto.lib but with reaction.lib.
- vclib: m68k-amigaos adds missing InvertString() for
amiga.lib
- vclib: PPC 64-bit signed modulo fixed
- vclib: fixed mktime(), tm_mday is 1-based, and recognize gmtoffset
- vclib: fgetpos() has to return 0 on success
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.9h.
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).
This release's source archives are available via the links
directly below.
|
vbcc0_9h.tar.gz
The vbcc V0.9h release source.
|
vasm1_9.tar.gz
The vasm V1.9 release source.
|
vlink0_17.tar.gz
The vlink V0.17 release source.
|
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. No installer.
|
vbcc_bin_win64.zip
Windows 64-bit binaries. No installer.
|
vbcc_target_m68k-amigaos.lha
Compiler target AmigaOS 2.x/3.x M680x0.
|
vbcc_target_m68k-kick13.lha
Compiler target Amiga Kickstart 1.2/1.3 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_m68k-jaguar.lha
Compiler target Atari Jaguar M68k.
|
vbcc_target_m68k-jaguar.tar.gz
Compiler target Atari Jaguar M68k (for Unix/MiNT 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 installation paths.
|
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.
Installation procedure for Windows:
Refer to the DOS/Windows installation instructions in chapter 1.3.2 of the
vbcc manual.
|
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 ().
|