aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/doc.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <geffobscura@gmail.com>2015-10-07 05:39:43 +0800
committerJeffrey Wilcke <geffobscura@gmail.com>2015-10-17 04:30:42 +0800
commitb19627804400901ba003f6e401366cb7d3c4290f (patch)
tree0fbfa3f118df85737b72764b0765a22cbf4c7b2a /core/vm/doc.go
parent9d61d78de6ad20822b2b48d6c4e3779369ea7331 (diff)
downloaddexon-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.go11
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