luizperes / Llvm To Snes
Licence: other
LLVM IR → WLA DX (ASM 65c816) → SNES Rom
Projects that are alternatives of or similar to Llvm To Snes
Swift LlbuildA low-level build system, used by Xcode and the Swift Package Manager
Stars: ✭ 836 (+2043.59%)
Mutual labels: llvm
Cfla Compileable statically typed Functional programming Language
Stars: ✭ 7 (-82.05%)
Mutual labels: llvm
Unlisp LlvmCompiler for a toy Lisp language
Stars: ✭ 33 (-15.38%)
Mutual labels: llvm
AvrdEmbedded Systems in D - Port of avr-libc headers and most avr-gcc processor defines
Stars: ✭ 17 (-56.41%)
Mutual labels: llvm
DatunerDATuner Repository
Stars: ✭ 8 (-79.49%)
Mutual labels: llvm
MbxSupplementary material for my talk
Stars: ✭ 6 (-84.62%)
Mutual labels: llvm
ZionA statically-typed strictly-evaluated garbage-collected readable programming language.
Stars: ✭ 33 (-15.38%)
Mutual labels: llvm
Vivado hls tutorialSource code of basic Xilinx Vivado HLS image processing tutorial using HLS openCV functions
Stars: ✭ 17 (-56.41%)
Mutual labels: llvm
LdcThe LLVM-based D Compiler.
Stars: ✭ 937 (+2302.56%)
Mutual labels: llvm
Lycaprogramming language compiler w/ llvm
Stars: ✭ 9 (-76.92%)
Mutual labels: llvm
JucippA lightweight & cross-platform IDE supporting the most recent C++ standards. This project has moved to https://gitlab.com/cppit/jucipp.
Stars: ✭ 887 (+2174.36%)
Mutual labels: llvm
Llvm CheatsheetLLVM, clang, ninja, dyld and others.
Stars: ✭ 36 (-7.69%)
Mutual labels: llvm
GrinGRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
Stars: ✭ 834 (+2038.46%)
Mutual labels: llvm
LlhttpPort of http_parser to llparse
Stars: ✭ 841 (+2056.41%)
Mutual labels: llvm
Llvm Tutorial StandaloneDEPRECATED (Use: https://github.com/llvm-hs/llvm-hs-kaleidoscope )
Stars: ✭ 38 (-2.56%)
Mutual labels: llvm
CoatEDSL for C++ to make just-in-time code generation easier
Stars: ✭ 37 (-5.13%)
Mutual labels: llvm
Llvm Gbz80LLVM port to the GBZ80 CPU
Stars: ✭ 32 (-17.95%)
Mutual labels: llvm
LLVM IR to the SNES plataform
This project aims to transform LLVM IR into WLA DX (ASM 65c816), assemble the output and generate a SNES ROM. Please read the links below to further information on SNES and LLVM plataforms.
The wiki's homepage for general information on SNES architecture (65c816)
How to test it
Install it locally:
cd </path/to/llvm-to-snes/>
mkdir build-snes && cd build-snes
cmake -DLLVM_TARGETS_TO_BUILD=X86 .. --build .. -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=SNES
-
make install
// it might take a while
Run: // please read observations below
clang your_filename.c -S -emit-llvm -o your_filename.ll
<path/to/llvm-to-snes>/build-snes/bin/llc -march=snes <your_filename>.(ll|bc)
Obs.1
You may test it with any language that compiles to llvm, or you might write it yourself by hand, as long as the file has LLVM extensions .ll
or .bc
.
Obs.2
SNES (65c816) has a 16-bit architecture and this project up-to-date does not support 32 or 64 bit. A good example for a file test would be:
// sum_file.c
short sum(short a, short b) {
return a + b;
}
Obs.3
You may find C files for testing under ./test/Examples/SNES`.
Obs.4
The files for this project can be found inside the folder ./lib/Target/SNES/. We have forked the whole LLVM because we have plans of using Docker containers in the future for such tasks.
How to help
We still have a lot of tasks before creating a first version of this project. All skill levels are welcome to accomplish tasks such as:
- Testing and reporting issues
- Creating test files
- Working on project documentation
- Creating libraries for LLVM frontend languages (such as C and Rust)
- Developing the backend (Check ./lib/Target/SNES/TODO.md)
- Many others
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at
[email protected].