2009-09-11 3 views
13

asmjitまたはjitasmのような最もポータブルなアセンブラライブラリを探しています。ダイナミックコード生成のためのポータブルライブラリのほとんどは?

私は、「ほとんどのポータブル」と言いますと、それはアーキテクチャの幅広いバリエーションを最もサポートしているということです。言語はそれほど重要ではありませんが、特にGCCと組み合わせるとC​​ ++が最適なソリューションになります。

重要なアーキテクチャは、x86/64、PowerPC、ARMです。

答えて

-3

「x86/64、PowerPC and ARM」は非常に幅広いアーキテクチャではありません。多くのオープンソースVMは、そのセットをサポートする必要があります。それで何を探していますか?

Monoのsupported platforms JITについては、(ここではリストの一部を - リンク内の完全なリスト)が含ま:

  • X86を
  • X86-64
  • IA64(Itaniumベース)
  • パワーPC
  • ARM
  • MIPS
  • アルファ
+0

jitasmは、あなたがそれを実行するためのオプションを使用してオンザフライでのasmコードを生成できるようになります。 Monoはコードをオフラインでコンパイルします。私が欲しいものではありません。 – LiraNuna

+0

MonoはC#をILにプレコンパイルし、ILをオンザフライでJITします。 –

+0

私はILにコンパイルするラッパーをコードする必要があります。正確には効率的ではなく、私が要求したものからかなり離れています。 – LiraNuna

4

よくGNUはlibjitを提供しています。 Highly portableを選択し、よく文書化され、C++インターフェイスを提供します。あなたのコンパイラはGCCなので、私はより良いオファーを考えることはできません。

+2

libjitもx86/x86_64と思われるだけです... – LiraNuna

7

大規模な検索と調査の結果、LLVMが最高のJITライブラリであることがわかりました。これらはすべてx86/x86_64のみをサポートし、LLVMはx86/x86_64 PPC/PPC64の唯一のものです。

私はそれを最もポータブルなものと宣言しています。 誰かがより良いものを見つけたら、どうぞ〜共有してください。

+1

これはかつてありましたが、一般的なJITの目的で成功しました。それは今や脂肪になり、複雑すぎるし、C++を含む静的言語にも縛られている – Lothar

12

DynASMは、LuaJITによって使用され、x86、x64、ARM、MIPSおよびPowerPCをサポートします。

2

NanoJitが面白いかもしれません。それはLLVMよりも軽いですが、ひどく不公平です(良いチュートリアルhere ...とそれについてです)。サポートされているアーキテクチャ:

  • のx86
  • のx64
  • ARM
  • MIPS
  • のPowerPC
関連する問題