Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/makman2/codebreaker
A basic JIT-recompiler tool for emulation purposes.
https://github.com/makman2/codebreaker
Last synced: about 1 month ago
JSON representation
A basic JIT-recompiler tool for emulation purposes.
- Host: GitHub
- URL: https://github.com/makman2/codebreaker
- Owner: Makman2
- License: gpl-3.0
- Created: 2014-08-10T19:18:06.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-08-13T19:41:40.000Z (over 10 years ago)
- Last Synced: 2023-08-07T09:21:28.058Z (over 1 year ago)
- Homepage:
- Size: 293 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
CodeBreaker
===========CodeBreaker is a simple tool for writing JIT-compilers for other platforms.
It is compiled with Clang (x86 and x64) and CMake.Reliability
-----------This project tries to improve and maintain code quality and functionality with
* unit tests
* code checking utilities (planned)
* a continous build and test server (planned)Infrastructure
--------------There are several alternatives for the infrastructure to implement an effective
JIT-compiler:1. Make a dynamic runtime frontend for LLVM (if LLVM supports this) that eats
instructions and translates them to LLVM intermediate code. Let the virtual
machine of LLVM do the rest.
The problem: I didn't see that such dynamic frontends are supported, so this
option is for now not possible.2. Make own JIT-compiler (with presumely less good optimizations). Eat
instructions, dispatch them to native functions (for now). Do some
optimization with this (Invoke compiler to concat native functions
together etc).What both options share are the 'instruction-eater', to translate instructions
into target platform code. This mechanism is implemented in either way.So for now this project chooses approach 2.
Code Style
----------Code style guidelines can be found at [CODESTYLE.md](CODESTYLE.md).
They may change frequently because the project is in beginning phase.Documentation
-------------Documentation is generated with doxygen. It lays in [doc/](doc/).