For all modes, the prefix sequence is preceded by a single word containing a pointer to the current predicate. The prefix sequence is followed by two sections of code.
The main body of the generated JIT code.
Several small help routines for branching to kernel subroutines and other predicates.
Mode | Lead-In | Prefix |
---|---|---|
jitex | jmp native_shunt_link | cmp h,w_heap_warn_soft |
jae native_nonjit | ||
pop %rax | ||
...or... | ...or... | |
jmp *0(%rsi) | cmp h,w_heap_warn_soft | |
.quad native_shunt_link | jae Trampoline | |
pop | ||
... | ||
Trampoline: jmp *0(%rsi) | ||
.quad native_nonjit | ||
wamex | jmp native_nonjit | jmp native_restore_link |
...or... | ...or... | |
jmp *0(%rsi) | jmp *0(%rsi) | |
.quad native_nonjit | .quad native_restore_link | |
cex | jmp native_c | — |
...or... | ...or... | |
jmp *0(%rsi) | — | |
.quad native_c | — |