GNU lightning — это библиотека, призванная помочь в создании переносимых программ, компилирующих ассемблерный код во время работы.
Разработка: http://git.savannah.gnu.org/cgit/lightning.git
Выпуск для скачивания: ftp://ftp.gnu.org/gnu/lightning/lightning-2.0.5.tar.gz
2.0.5 содержит новый порт на архитектуру Alpha. Спасибо Мэни Тренту Нельсону со snakebit.net за предоставление доступа к компьютеру Alpha.
aarch64:
- Исправлено утверждение для переменных в неинициализированном состоянии.
alpha:
- Реализован порт lightning на Alpha.
arm:
- Исправление неверной таблицы размеров инструкций в программных числах с плавающей точкой.
- При проверке возможностей процессора убрано замешательство, если /proc не смонтирован, и как следствие, некорректная проверка _ARM_PCS_VFP (лучшего источника информации о доступности fpu).
mips:
- Корректное использование неверного регистра в jit_bmsr, работавшее (при прохождении всех тестов) из-за казуса.
общее:
- Добавлена проверка согласованности временных данных во время прыжка.
- Регистры возврата всегда помечаются живыми в эпилоге.
- Корректное изменение потенциально неверных битовых масок в jit_update.
- Все утверждения конвертируются так, чтобы приводиться к целым при сверке. На alpha утверждения, выражающиеся непосредственно в указателе или длинном целом, будут приводить к ошибке, если сверяются только старшие 32 бита.
- null не передаётся как аргумент free, memcpy и memmove.
- Удалена глобальная, но не получившая известности переменная jit_progname.
- Добавлена заметка об инициализации и вызове jit_set_memory_functions.
- Некоторые ожидаемо приватные определения и типы в lightning/jit_${arch}.h не экспортируются.
>>> Источник