2009-09-11 2 views
13

Я ищу самую портативную сборную библиотеку, такую ​​как asmjit или jitasm.Самая портативная библиотека для генерации динамического кода?

Когда я говорю «самый переносимый», я имею в виду, что он имеет большую поддержку для широкой архитектуры. Язык не имеет большого значения, но C++ будет лучшим решением, особенно в сочетании с GCC.

Важные архитектуры для меня: x86/64, PowerPC и ARM.

ответ

-3

«x86/64, PowerPC и ARM» - это не очень широкий диапазон архитектур. Многие виртуальные машины с открытым исходным кодом должны поддерживать этот набор, включая Mono для одного. Что вы собираетесь с этим делать?

Моно supported platforms для JIT включают (неполный список здесь - полный список по ссылке):

  • X86
  • x86-64
  • IA64 (Itanium)
  • Power PC
  • ARM
  • MIPS
  • Alpha
+0

jitasm позволит вам генерировать код ассемблера на лету с возможностью выполнить его. Mono будет компилировать код в автономном режиме. Не совсем то, что я хочу. – LiraNuna

+0

Моно предварительно компилирует C# на IL и JITs IL на лету. –

+0

, тогда мне придется закодировать оболочку, которая компилируется в IL. Не совсем эффективный и далек от того, что я просил. – LiraNuna

4

Well 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
Смежные вопросы