Sala is an acronym for Simple Assembly LAnguage. Its
instructions are similar to those in LLVM. However, everything
is considerably simplified. For instance, registers are all just
genuine local (stack) variables. There are no types associated with
variables or any data. Functions return values via the first parameter.
Constant and data segment is initialized via regular code (inside the
initializer routine). The code is not in SSA form. And more. See the
header file program.hpp
for details about the instruction set.
The library also comprises Interpreter
class providing interpreted
execution of a sala program. The Sanitizer
class can be used to
prevent crash of the entire Interpreter
, if the execution would trigger
a serious defect in the program.
libutility