Welcome
From llvm-mos
Miroh Jr for NES, by Wendel, Raftronaut, and M-Tee, built with LLVM-MOS Linux booting on Commodore 64 with REU, via emulator built with LLVM-MOS NES project in pure C99 using llvm-mos, by Steven Poulton Hello world in Rust, with factorial calculation, for Atari 800, proof of concept by mrk Hello world of LLVM assembler targeting Commodore VIC-20 Hello world of LLVM assembler targeting Apple IIe Hello world in C, targeting Ohio Scientific Challenger 1P, port by Stephan Mühlstrasser Hello Commander X16 from C
llvm-mos is an open-source fork of the LLVM C/C++ compiler, that provides first-class support to the MOS Technology 65xx series of microprocessors and relatives...
Welcome
From llvm-mos
Miroh Jr for NES, by Wendel, Raftronaut, and M-Tee, built with LLVM-MOS Linux booting on Commodore 64 with REU, via emulator built with LLVM-MOS NES project in pure C99 using llvm-mos, by Steven Poulton Hello world in Rust, with factorial calculation, for Atari 800, proof of concept by mrk Hello world of LLVM assembler targeting Commodore VIC-20 Hello world of LLVM assembler targeting Apple IIe Hello world in C, targeting Ohio Scientific Challenger 1P, port by Stephan Mühlstrasser Hello Commander X16 from C
llvm-mos is an open-source fork of the LLVM C/C++ compiler, that provides first-class support to the MOS Technology 65xx series of microprocessors and relatives. llvm-mos enables modern software development for many classic platforms.
You can play with the compiler right now on Godbolt! Here’s a Commodore 64 project that shows the C compiler in action. Try the “Click here to emulate” link on that page, to watch a Commodore 64 compute a hundred digits of pi.
To download and use the tools locally, check out Getting started.
Our work encompasses the following:
-
An open-source fork of LLVM that provides first-class support to the MOS 6502 and near compatibles. Our compiler implements multiple novel approaches in order to optimize 6502 code size and speed, and it tends to outperform legacy 6502 compilers. Our compiler includes, but is not limited to:
-
broad C99 and C++11 freestanding compatibility
-
built-in IEEE-754 floating point support
-
first-class integrated 65xx assembler support
-
clang’s world-class error messages
-
An open-source software development kit (SDK) that comprises target-specific code for common 65xx-based microcomputers. It includes a minimal C standard library with support for memory management and text output. Some example programs are included. We currently support over two dozen targets, including a host-based simulator. The list of supported targets is growing rapidly.
-
Complete ELF support for the 6502 series, which permits us to use the existing suite of LLVM tools for creating, analyzing and modifying 6502 object files and libraries.
-
An open-source automated test and packaging infrastructure. We use GitHub runners to verify builds of our compiler against appropriate LLVM test suites, as well as our own smoke tests. We also run automated benchmarks using this infrastructure.
Ongoing public development discussions occur on Discord. If you’d like to help, then please join our Discord group now.
Notice
The llvm-mos project is not officially affiliated with or endorsed by the LLVM Foundation. Our project is a fork of LLVM that provides a new backend and Clang target; our project is based on LLVM, not a part of LLVM. Our use of LLVM or other related trademarks does not imply affiliation or endorsement.