2009-09-11 69 views
13

我正在尋找最便攜的彙編程序庫,例如asmjitjitasm大多數用於動態代碼生成的便攜式庫?

當我說'最便攜'時,我的意思是說,它對多種體系結構的支持最多。語言並不重要,但C++將是最好的解決方案,尤其是與GCC結合使用時。

對我來說重要的體系結構是x86/64,PowerPC和ARM。

回答

-3

「x86/64,PowerPC和ARM」不是一個非常廣泛的體系結構。許多開源虛擬機應該支持該集合,其中包括Mono。你想用它做什麼?

Mono的supported platforms的JIT包括(部分列表在這裏 - 鏈路完整列表):

  • X86
  • X86-64
  • IA64(安騰)
  • 的Power PC
  • ARM
  • MIPS
  • Alpha
+0

jitasm將讓你與執行它的選項動態生成彙編代碼。 Mono將離線編譯代碼。不是我想要的。 – LiraNuna

+0

Mono將C#預編譯爲IL,並即時處理IL。 –

+0

然後我不得不編寫一個編譯爲IL的包裝器。不完全有效,遠離我要求的。 – LiraNuna

4

那麼GNU爲您提供libjitHighly portable到您選擇的架構,有據可查並提供C++接口。作爲GCC你的編譯器,我想不出更好的報價。

+2

libjit似乎也只是x86/x86_64 ... – LiraNuna

7

經過廣泛的搜索和研究,我發現LLVM是最好的JIT庫。它們全部僅支持x86/x86_64,並且LLVM是x86/x86_64中唯一的一個PPC/PPC64。

因此,我特此聲明它是最便攜的... 如果有人發現更好的一個,請 - 哦,請分享。由LuaJIT使用的支持x86,x64,ARM,MIPS和PowerPC的

+1

它曾經是,但成功殺死它爲一般JIT的目的。現在,它變得越來越胖,太複雜,並且與包括C++在內的靜態語言密切相關 – Lothar

2

你可能會覺得NanoJit有趣。它比LLVM輕,雖然可怕的是沒有記錄(有一個很好的教程here ......就是這樣)。支持的架構:

  • ARM
  • MIPS
  • 的PowerPC