Jump to content

vbcc

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
vbcc
Developer(s)Volker Barthelmann
Initial release1995; 30 years ago (1995)
Stable release
0.9h patch 3 / May 22, 2022; 2 years ago (2022-05-22)
Written inANSI C
Operating systemMultiplatform
TypeCross compiler
LicenseFreeware for non-commercial use
Websitewww.compilers.de/vbcc.html
Left path toolchain of Motorola 68k, right path toolchain of PowerPC

vbcc is a portable and retargetable ANSI C compiler. It supports C89 (ISO/IEC 9899:1989) as well as parts of C99 (ISO/IEC 9899:1999).

It is divided into two parts. One is target-independent and the other is target-dependent. vbcc provides complete abstraction of host-arithmetic and target-arithmetic. It fully supports cross-compiling for 8-bit, 16-bit, 32-bit and 64-bit architectures.

Embedded systems are supported by features such as different pointer sizes, ROM-able code, inline assembly, bit-types, interrupt handlers, section attributes, and stack usage calculation (depending on the backend).

vbcc supports the following backends, with different degrees of maturity: 68k, ColdFire, PowerPC, 6502, VideoCore, 80x86 (386 and above), Alpha, C16x/ST10, 6809/6309/68HC12, and Z-machine.

The compiler itself can run on all common operating systems, including Windows, Mac OS X, and Unix/Linux.

Optimizations

The compiler provides a large set of high-level optimizations as well as target-specific optimizations to produce faster or smaller code. It is also able to optimize across functions and modules. Target-independent optimizations supported by vbcc include:

References

  • Sunitha, K.V.N. (2013). Compiler Design. Pearson India. p. 20. ISBN 9-332-50029-0.
  • Aycock, John (2016). Retrogame Archeology: Exploring Old Computer Games. John Aycock. p. 82. ISBN 9-783-31930002-3.