Ilya Kurdyukov
Ilya Kurdyukov
JIT всё равно работать не может, потому что нет его реализации для Эльбруса. Возможно каким-то образом влияет на выставление других опций, хотя JIT будет отключен в любом случае. -DENABLE_JIT=OFF также...
Нет, всё еще используем lcc-1.25.23. Версия в sisyphus_e2k: [2.34.6-alt1](https://packages.altlinux.org/ru/sisyphus_e2k/srpms/libwebkitgtk4/2774769837503493984)
Я видел. Но как-бы это патч не для GCC или Clang, а для EDG фронтенда, где много проблем с компиляцией С++. А патч этот не используется, потому что в Альте...
1. (long*)alloca(asize) - ARG_REGS Для вызова функции компилятор добавит дополнительные 64 байта аллокации стека от себя (которые не будет никак использовать). 2. Это не указатель на структуру, а буквально структура...
Можно попробовать сделать так, главное чтобы компилятор не сохранил ret на стек перед switch, а держал на регистрах как получил из функции. Если структура больше 64 байт, то она сразу...
> что вообще происходит при конвертации указателя на функцию, которая ничего не возвращает и никаких аргуметов не принимает, в функцию, которая возвращает указатель на структуру и принимает его же. Первые...
Обновил патч, грануляцию по 4 байта невозможно реализовать на Си, но она и не нужна, потому что возвращаемый результат расширяется компилятором до целого регистра.
Еще про ffi_closure_e2k() забыл, там с приходящими регистрами нужно так же делать.
Обновил патч, сделал то же самое для ffi_closure, судя по ассемблеру компилятор сделал как надо.
Нет, на тестах питона падает, похоже нужна инструкция спекулятивного сохранения в память, даже сохранение находится под условным выполнением и условие не выполнено.