Mercurial > hg > Papers > 2019 > anatofuz-thesis
changeset 44:bbf886a770fa
update
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 15 Feb 2019 14:05:22 +0900 |
parents | 49e6b3116f12 |
children | 78ac3e7ec7ea |
files | paper/chapter4.tex paper/fig/bytecode_segment.graffle paper/fig/bytecode_segment.pdf paper/fig/ryukyu.pdf paper/main.pdf |
diffstat | 5 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter4.tex Fri Feb 15 13:56:23 2019 +0900 +++ b/paper/chapter4.tex Fri Feb 15 14:05:22 2019 +0900 @@ -50,7 +50,17 @@ 今回対象とするMoarVMのバージョンは2018.04.01である。 MoarVMのバイトコードインタプリタはsrc/core/interp.c中の関数 MVM\_interp\_runで定義されている。 -この関数では、 バイトコードに埋め込まれている命令に応じた処理を実行する。 +この関数ではMoarVMのバイトコードの中の、 命令に対応するバイトコードを解釈する。 +MoarVMのバイトコードの中の、 命令に対応するバイトコードの構成を図\ref{fig:bytecode_segment}に示す。 + + +\begin{figure}[ht] +\caption{MoarVMの命令バイトコード} + \begin{center} + \includegraphics[width=120mm]{./fig/bytecode_segment.pdf} + \end{center} + \label{fig:bytecode_segment} +\end{figure} 関数内では、 解釈するべきバイトコード列が格納されている変数 cur\_op や、現在と次の命令を指し示すop、 命令に対して受け渡す現在のVM情報であるThreadContex tcなどが変数として利用されている。 実際に命令ディスパッチを行っている箇所の一部をソースコード\ref{origin_dispatch}に示す。