[
Top
]
[
Contents
]
[
Index
]
[
?
]
Table of Contents
1 Introduction and rationale for libjit
1.1 Obtaining libjit
1.2 Further reading
2 Features of libjit
3 Tutorials in using libjit
3.1 Tutorial 1 - mul_add
3.2 Tutorial 2 - gcd
3.3 Tutorial 3 - compiling on-demand
3.4 Tutorial 4 - mul_add, C++ version
3.5 Tutorial 5 - gcd, with tail calls
3.6 Dynamic Pascal - A full JIT example
4 Initializing the JIT
4.1 Using libjit in a multi-threaded environment
4.2 Context functions
5 Building and compiling functions with the JIT
6 Manipulating system types
7 Working with temporary values in the JIT
8 Working with instructions in the JIT
9 Working with basic blocks in the JIT
10 Intrinsic functions available to libjit users
11 Handling exceptions
12 Hooking a breakpoint debugger into libjit
13 Manipulating ELF binaries
13.1 Reading ELF binaries
14 Library extension to ease working with objects
15 Miscellaneous utility routines
15.1 Memory allocation
15.2 Memory set, copy, compare, etc
15.3 String operations
15.4 Metadata handling
15.5 Function application and closures
15.6 Stack walking
15.7 Dynamic libraries
16 Diagnostic routines
17 Using libjit from C++
18 Contexts in C++
19 Values in C++
20 Functions in C++
21 Porting libjit to new architectures
21.1 Porting the function apply facility
21.2 Creating the instruction generation macros
21.3 Writing the architecture definition rules
21.3.1 Defining the registers
21.3.2 Other architecture macros
21.3.3 Architecture-dependent functions
21.4 Allocating registers in the back end
Index of concepts and facilities
[
Top
]
[
Contents
]
[
Index
]
[
?
]
This document was generated on
September 17, 2016
using
texi2html 5.0
.