vbcc optimizing 6502 compiler with X16 support
Posted: Tue Feb 23, 2021 3:57 pm
Hi,
thanks to contributions from András Péteri, the vbcc compiler now comes with support for the X16. I am not very familiar with this machine, but the generated code seems to work well in an X16 emulator. Please let me know if something does not work. So far there is no banking support for this target yet. I am not sure about the state of development, but if the banking scheme is finalized, it would probably be a good idea to add the necessary library routines.
A few of the good things:
- compiler is under active development
- supports C99 (variable-length arrays, designated initializers etc.)
- generates optimized code (see dhrystones in sample directory)
- supports banked memory and far-pointers
- (limited) floating point support based on Steve Wozniaks code
- (pretty good) 32/64bit IEEE floating point support based on SANE
- support for 65C02 extensions
- support for writing interrupt handlers
- attributes for putting variables into zero page
- supports stack-frames > 256 bytes
Changes since r1:
- new target: MEGA65 (native mode, some banking support)
- new target: Commander X16 (thanks András Péteri)
- new options -prefer-statics/-force-statics (allocate local variables in static memory rather than on the stack)
- new option -range-opt (first implementation of some range-based optimizations changing induction variables to smaller types)
- added support for o65 object file format
- added support for Oric target format
- better use of x register
- improved cross-module function-inlining
- IEEE math library works with 65c02
- several code generation improvements
- fixed several bugs
- slightly reworked examples