All Projects → luizperes → Llvm To Snes

luizperes / Llvm To Snes

Licence: other
LLVM IR → WLA DX (ASM 65c816) → SNES Rom

Labels

Projects that are alternatives of or similar to Llvm To Snes

Swift Llbuild
A low-level build system, used by Xcode and the Swift Package Manager
Stars: ✭ 836 (+2043.59%)
Mutual labels:  llvm
Cfl
a Compileable statically typed Functional programming Language
Stars: ✭ 7 (-82.05%)
Mutual labels:  llvm
Unlisp Llvm
Compiler for a toy Lisp language
Stars: ✭ 33 (-15.38%)
Mutual labels:  llvm
Avrd
Embedded Systems in D - Port of avr-libc headers and most avr-gcc processor defines
Stars: ✭ 17 (-56.41%)
Mutual labels:  llvm
Pragmascript
Stars: ✭ 7 (-82.05%)
Mutual labels:  llvm
Datuner
DATuner Repository
Stars: ✭ 8 (-79.49%)
Mutual labels:  llvm
Mbx
Supplementary material for my talk
Stars: ✭ 6 (-84.62%)
Mutual labels:  llvm
Kylin Llvm Obfuscator
based on llvm 5.0.1 release with ollvm
Stars: ✭ 37 (-5.13%)
Mutual labels:  llvm
Woboq codebrowser
Woboq CodeBrowser
Stars: ✭ 837 (+2046.15%)
Mutual labels:  llvm
Zion
A statically-typed strictly-evaluated garbage-collected readable programming language.
Stars: ✭ 33 (-15.38%)
Mutual labels:  llvm
Vivado hls tutorial
Source code of basic Xilinx Vivado HLS image processing tutorial using HLS openCV functions
Stars: ✭ 17 (-56.41%)
Mutual labels:  llvm
Ldc
The LLVM-based D Compiler.
Stars: ✭ 937 (+2302.56%)
Mutual labels:  llvm
Lyca
programming language compiler w/ llvm
Stars: ✭ 9 (-76.92%)
Mutual labels:  llvm
Jucipp
A 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 Cheatsheet
LLVM, clang, ninja, dyld and others.
Stars: ✭ 36 (-7.69%)
Mutual labels:  llvm
Grin
GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
Stars: ✭ 834 (+2038.46%)
Mutual labels:  llvm
Llhttp
Port of http_parser to llparse
Stars: ✭ 841 (+2056.41%)
Mutual labels:  llvm
Llvm Tutorial Standalone
DEPRECATED (Use: https://github.com/llvm-hs/llvm-hs-kaleidoscope )
Stars: ✭ 38 (-2.56%)
Mutual labels:  llvm
Coat
EDSL for C++ to make just-in-time code generation easier
Stars: ✭ 37 (-5.13%)
Mutual labels:  llvm
Llvm Gbz80
LLVM 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].