Generic Decoder Specification Language Toolkit
Clone or download
Julian Kranz
Latest commit 50a958a Sep 20, 2018
Failed to load latest commit information.
detail Runtime changes Oct 6, 2016
eclipse-plugin Code cleanup. Final commit Sep 11, 2014
include Adapted CMake build files Oct 14, 2016
lib Dummy libgdsl-multiplex for Windows Jun 15, 2015
libs cppgdsl Jul 2, 2018
pygdsl get_ip_offset => get_ip Sep 16, 2014
specifications Merge branch 'armtranslation' of… Sep 20, 2018
stale Fixed bug in semantics of: (V)PSRAW/(V)PSRAD Sep 30, 2013
tools Bug fix Nov 7, 2016
.clang-format Formatting Aug 26, 2016
.gitignore .gitignore Oct 24, 2016
.gitlab-ci.yml Add .gitlab-ci.yml Nov 3, 2016
CMakeLists.txt added path in CMakeList.txt May 30, 2018
LICENSE License Oct 24, 2013
MLton-LICENSE Clarify license issues. Feb 21, 2012 added to GDSL_RREIL in May 30, 2018
Makefile_arm7 added to GDSL_RREIL_HL in Makefile_arm7 May 30, 2018
Makefile_avr added to GDSL_RREIL_HL in Makefile_avr May 30, 2018
Makefile_manual ARM7 fixes Oct 28, 2014
Makefile_mips added to GDSL_RREIL_HL in Makefile_mips May 30, 2018
Makefile_x86 added to GDSL_RREIL_HL in Makefile_x86 May 30, 2018
NJ-LICENSE Clarify license issues. Feb 21, 2012
README Deps ;-) Mar 28, 2014 Readme Jul 10, 2018 Completing merge Aug 7, 2014 Manual Makefiles: Bug fixes Jul 24, 2014
bugs.udcli A bit more efficient "slices". May 11, 2012
build.bat added to GDSL_RREIL set in build.bat May 30, 2018
config.h Small fix Oct 14, 2016 Manual Makefiles: Bug fixes, configuration Jul 24, 2014 Bug fix for build.bat Jun 10, 2015 Is now GDSL. May 31, 2012
gdsl.h Adapted CMake build files Oct 14, 2016 CMake Oct 6, 2016 CMake Oct 6, 2016 use mlton to build if available Jul 23, 2014
java_eclipse_formatting.xml Eclipse formatting Aug 22, 2014 MIPS Jul 24, 2014
scoping.patch Automake, scoping as patch May 26, 2015
stats-102013 --- Oct 11, 2013
todo Cleanup Sep 15, 2014 Manual Makefiles: Bug fixes Jul 24, 2014

GDSL Toolkit

The GDSL toolkit is a software framework for specifying machine language decoders. It is meant to allow a natural specification that resembles the way the vendor manuals describe the instruction set. The toolkit comes with a set of decoders, semantics translators to the analysis-friendly intermediate reprensentation RReil, IR optimizations, and bindings to other programming languages such as C++ and Java.


This section describes how the GDSL toolkit is built and which dependencies are required. The GDSL compiler and core libraries require the following software to be on the current search PATH:

  • MLton
  • CMake
  • A C11 and a C++11 compiler

Furthermore, the following software packages and features are required by some of the optional demo applications:

Building the Toolkit

The toolkit can be built using CMake:

cd gdsl-toolkit/
mkdir build
cd build/
cmake ..

This command will build the toolkit for all available architectures. To build a specific architecture, specify the respective target:

make gdsl_x86_rreil

Here, we build the x86 frontend. Similarly, targets for specific libraries or tools can be specified.

Demos and Libraries

The GDSL toolkit contains a number of demo applications and libraries. The tools and libraries are presented in wiki (


  • Architectures
    • Full support for ARMv7 and ARMv8
  • Testing
    • Support testing of all our architectures (reusing common parts of the tester)
    • Testing of the decoder by reacting to / expecting illegal instruction exceptions