История изменений
Исправление KivApple, (текущая версия) :
Вообще такое решается следующим образом: инструкции одной архитектуры транслируются в инструкции другой архитектуры. То есть по сути дела при запуске программа в автоматическом режиме дизассемблируется, инструкции подменяются на армовые и она назад компилируется. Да, это не самое простое дело, да, придётся помучаться, чтобы корректно работал всякий извращённый код, но в принципе задача реальная. Если что, инструкцию можно заменять и несколькими инструкциями, если какая-то инструкция не имеет прямого аналога - потеряем немного производительности, зато хоть как-то работать будет.
В теории, при очень качественном трансляторе, получается производительность почти на уровне того, если бы софт был нативным. Только запускаеся/ставится (в зависимости от того, когда происходит трансляция) он дольше.
Исправление KivApple, :
Вообще такое решается следующим образом: инструкции одной архитектуры транслируются в инструкции другой архитектуры. То есть по сути дела при запуске программа в автоматическом режиме дизассемблируется, инструкции подменяются на армовые и она назад компилируется. Да, это не самое простое дело, да, придётся помучаться, чтобы корректно работал всякий извращённый код, но в принципе задача реальная. Если что, инструкцию можно заменять и несколькими инструкциями, если какая-то инструкция не имеет прямого аналога - потеряем немного производительности, зато хоть как-то работать будет.
В теории, при очень качественном трансляторе, получает производительность почти на уровне того, если бы софт был нативным. Только запускаеся/ставится (в зависимости от того, когда происходит трансляция) он дольше.
Исходная версия KivApple, :
Вообще такое решается следующим образом: инструкции одной архитектуры транслируются в инструкции другой архитектуры. То есть по сути дела при запуске программа в автоматическом режиме дизассемблируется, инструкции подменяются на армовые и она назад компилируется. Да, это не самое простое дело, да, придётся помучаться, чтобы корректно работал всякий извращённый код, но в принципе задача реальная. Если что, инструкцию можно заменять и несколькими инструкциями, если какая-то инструкция не имеет прямого аналога - потеряем немного производительности, зато хоть как-то работать будет.
В теории, при очень качественном трансляторе, получает производительность почти на уровне того, если бы софт был нативным. Только запускаеся/ставится он дольше.