2009-09-11 2 views
13

asmjit 또는 jitasm과 같이 가장 휴대용 어셈블러 라이브러리를 찾고 있습니다.동적 코드 생성을위한 대부분의 휴대용 라이브러리는 무엇입니까?

내가 '대부분의 휴대용'이라고 말하면 아키텍처의 폭 넓은 지원을 가장 많이 지원한다는 의미입니다. 언어는별로 중요하지 않지만 C++은 특히 GCC와 결합 할 때 최상의 솔루션이 될 것입니다.

중요한 아키텍처는 x86/64, PowerPC 및 ARM입니다.

답변

-3

"x86/64, PowerPC 및 ARM"은 매우 다양한 아키텍처가 아닙니다. 많은 오픈 소스 VM은 모노를 포함하여 그 세트를 지원해야합니다. 너는 그걸로 무엇을 찾고 있니?

모노의 supported platforms JIT를위한은 (여기에 일부 목록을 - 링크의 전체 목록)을 포함한다 :

  • X86을
  • - 64
  • IA64 (아이테니엄)
  • 파워 PC
  • ARM
  • MIPS
  • 알파
+0

jitasm 당신이 그것을 실행하는 옵션을 사용하여 즉석에서 ASM 코드를 생성하게됩니다. 모노는 코드를 오프라인으로 컴파일합니다. 정말로 내가 원하는 것. – LiraNuna

+0

모노는 C#을 IL에 미리 컴파일하고 IL을 즉시 실행합니다. –

+0

다음 일리노이 컴파일하는 래퍼를 코드해야 겠어. 정확히는 효율적이지 않고 내가 요청한 것과는 거리가 멀다. – 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 ... 그리고 그것에 관한 것입니다). 지원되는 아키텍처 :

  • 86
  • 64
  • ARM
  • MIPS
  • PowerPC는
관련 문제