Автор Тема: Динамическая рекомпиляция - LibJIT  (Прочитано 11415 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4222
Динамическая рекомпиляция - LibJIT
« : 21 Ноябрь 2012, 05:22:39 »
Давно я думал над этой фичей для эмулятора, поэтому решил поискать готовые решения, наковырял три библиотеки GNU lightning, LLVM и LibJIT.
Первая генерит код без определения необходимого объема памяти, т.е. программист должен быть хорошим телепатом, что бы не словить критическую ошибку и не транжирить память - короче не подходит.
Вторая хороша, но специфична + не хочет компилироваться, уж не знаю почему, видимо не умею ее готовить )
Третья - идеальный кандидат, но тоже не хотела компилироваться - пришлось заставить, билд прилагаю :)

Что бы скомпилировать libjit-0.1.2 на Mingw 4.6.2 пришлось поправить файл libjit-0.1.2\tools\gen-apply.c, добавив атрибут volatile в строке 962.
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн ПАУК

  • Постоялец
  • ***
  • Сообщений: 151
Re: Динамическая рекомпиляция - LibJIT
« Ответ #1 : 21 Ноябрь 2012, 14:04:51 »
А что она делает? Для чего?

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4222
Re: Динамическая рекомпиляция - LibJIT
« Ответ #2 : 22 Ноябрь 2012, 05:16:36 »
Принципиально поднимает скорость эмуляции.
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн Evgen-san

  • REALьный 3DOшник
  • Ветеран
  • *
  • Сообщений: 1378
Re: Динамическая рекомпиляция - LibJIT
« Ответ #3 : 30 Ноябрь 2012, 02:23:22 »
это для эмулятора FreeDO?
R. E. A. L. 3DO Interactive Multiplayer

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4222
Re: Динамическая рекомпиляция - LibJIT
« Ответ #4 : 30 Ноябрь 2012, 19:13:18 »
Это программная библиотека дли формирования исполнимого кода в процессе работы приложения независимо от платформы, поддерживает генерацию кода для x86, ARM и еще ряда платформ, для остальных платформ обеспечивает компиляцию в байткод и интерпритацию результата.

Для самого эмуля она как мертвому припарка. В Фениксе я прикручу ее для рекомпиляции кода DSP, а затем и ARM. В итоге эмуляция должна получиться на порядок быстрее.
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн Evgen-san

  • REALьный 3DOшник
  • Ветеран
  • *
  • Сообщений: 1378
Re: Динамическая рекомпиляция - LibJIT
« Ответ #5 : 02 Декабрь 2012, 08:03:32 »
понятненько :)
R. E. A. L. 3DO Interactive Multiplayer