JITコード生成に関する教育-研究
-
09-06-2019 - |
質問
どのような仮想マシンをネイティブマシンコードの実行です。
仮にできるアクティのネイティブ機op-コードしたい光で行なっていを実際に走行ですか?
いものとしてhackyとしてのマッピングのニーモニックの指バイナリコードを詰めてではchar*にポインタは、鋳造としての機能を実行?
やまを生成する仮共有ライブラリ(.dllいます。いやいや読み込みメモリを標準機能 LoadLibrary
?
解決
できるだけの カウンタープログラム ポイントをコードするを実行することを示しています。このデータをできるデータのコードです。X86のカウンタープログラムのEIPするものとする。IPのEIP立のための指導のポインタです。のJMP命令を呼びジャンプアドレスです。ジャンプ後のEIPが含まれます。
いものとしてhackyとしてのマッピングのニーモニックの指バイナリコードを詰めてではchar*にポインタは、鋳造としての機能を実行?
そうです。この方法の一つは、それができていました。この結果、コードするキャストへ ポインタ機能 C.
他のヒント
いものとしてhackyとしてのマッピングのニーモニックの指バイナリコードを詰めてではchar*にポインタは、鋳造としての機能を実行?
あれば、たということでCやC++(う)は、そう思います。
でhackyが、そのことァース言語のデザイン。覚えて、実際のアルゴリズムを利用したいのはとてもシンプルです:を指示し、実際に利用する荷重としてのバッファメモリへの初めの時点で設立からバッファです。
がんこもう、呼び出し規約時に戻ります。ってしまうことがありましたコードを生成します。んだ図書館を介護する側面だった。Nanojitてのニュース最近;きを見る。
そう。あなただけの構築のたchar*とを設定することができます。しかし、必要な注意カップルです。Char*必ず実行部のメモリは適切にアライメントを実施します。
のほか、nanojit確認することもできますLLVMは他の図書館とのできる作成の各種プログラム表示、関数ポインタです。このインタフェースはクリーンに発生するコードが効率的です。
しかで統べてのメモリで走って一部のヒューリスティックスを最適化コード(例:inlining時間)ができるというものが 共通のソース共通の言語フ2.0 ロータリリース。全体のコードベースでは同じです。純以外のジッターのGC.
どのローター2.0-きもの ホットスポット仮想マシン はOpenJDK.
報を生成するDLL:の追加に必要なI/Oのために、プラスリンク、プラスの複雑さをDLL形式のように多くの複雑化、彼らは死性能また、最終的にだけ関数を呼び出しますポインタのロードコードなので---また、JIT作成できるようにな方法のひとつで、やりたいのであればがん発生ロットの小型Dll.
の実行部門"の要件は、mprotect()にPOSIXシステムでのアクセス権が類似しているAPI Win32).だが、大きなメモリセグメントくれた方法で対応いが遅すぎます。
味x86なしの通知の問題は、x86とPAEは64bit AMD64/インテル®64ビットの機んでsegfault.
いものとしてhackyとしてのマッピング のニーモニックの指バイナリー コードを詰めてでchar* ポインタを鋳造と機能 を行?
そうです。
このためには、windowsの設定が必要であPAGE_EXECUTE_READWRITEめに割り当てられたブロック:
void (*MyFunc)() = (void (*)()) VirtualAlloc(NULL, sizeofblock, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
//Now fill up the block with executable code and issue-
MyFunc();