Мастерская > Теория и практика

Динамическая рекомпиляция - LibJIT

(1/2) > >>

Altmer:
Давно я думал над этой фичей для эмулятора, поэтому решил поискать готовые решения, наковырял три библиотеки GNU lightning, LLVM и LibJIT.
Первая генерит код без определения необходимого объема памяти, т.е. программист должен быть хорошим телепатом, что бы не словить критическую ошибку и не транжирить память - короче не подходит.
Вторая хороша, но специфична + не хочет компилироваться, уж не знаю почему, видимо не умею ее готовить )
Третья - идеальный кандидат, но тоже не хотела компилироваться - пришлось заставить, билд прилагаю :)

Что бы скомпилировать libjit-0.1.2 на Mingw 4.6.2 пришлось поправить файл libjit-0.1.2\tools\gen-apply.c, добавив атрибут volatile в строке 962.

ПАУК:
А что она делает? Для чего?

Altmer:
Принципиально поднимает скорость эмуляции.

Evgen-san:
это для эмулятора FreeDO?

Altmer:
Это программная библиотека дли формирования исполнимого кода в процессе работы приложения независимо от платформы, поддерживает генерацию кода для x86, ARM и еще ряда платформ, для остальных платформ обеспечивает компиляцию в байткод и интерпритацию результата.

Для самого эмуля она как мертвому припарка. В Фениксе я прикручу ее для рекомпиляции кода DSP, а затем и ARM. В итоге эмуляция должна получиться на порядок быстрее.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии