diff options
author | Jeffrey Wilcke <geffobscura@gmail.com> | 2015-10-07 05:39:43 +0800 |
---|---|---|
committer | Jeffrey Wilcke <geffobscura@gmail.com> | 2015-10-17 04:30:42 +0800 |
commit | b19627804400901ba003f6e401366cb7d3c4290f (patch) | |
tree | 0fbfa3f118df85737b72764b0765a22cbf4c7b2a /core/vm/doc.go | |
parent | 9d61d78de6ad20822b2b48d6c4e3779369ea7331 (diff) | |
download | dexon-b19627804400901ba003f6e401366cb7d3c4290f.tar.gz dexon-b19627804400901ba003f6e401366cb7d3c4290f.tar.zst dexon-b19627804400901ba003f6e401366cb7d3c4290f.zip |
core/vm: added JIT segmenting / optimisations
* multi-push segments
* static jumps segments
Diffstat (limited to 'core/vm/doc.go')
-rw-r--r-- | core/vm/doc.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/core/vm/doc.go b/core/vm/doc.go index ab87bf934..debbdb35e 100644 --- a/core/vm/doc.go +++ b/core/vm/doc.go @@ -24,9 +24,12 @@ invokes the JIT VM in a seperate goroutine and compiles the byte code in JIT instructions. The JIT VM, when invoked, loops around a set of pre-defined instructions until -it either runs of gas, causes an internal error, returns or stops. At a later -stage the JIT VM will see some additional features that will cause sets of -instructions to be compiled down to segments. Segments are sets of instructions -that can be run in one go saving precious time during execution. +it either runs of gas, causes an internal error, returns or stops. + +The JIT optimiser attempts to pre-compile instructions in to chunks or segments +such as multiple PUSH operations and static JUMPs. It does this by analysing the +opcodes and attempts to match certain regions to known sets. Whenever the +optimiser finds said segments it creates a new instruction and replaces the +first occurrence in the sequence. */ package vm |