Паскаль-компилятор типа заработал
May. 6th, 2019 09:38 pm3 мая: Компилирует оригинал, порождая объектный файл, который правильно воспринимается дизассемблером. В результате получается ассемблерный файл, похожий по размеру и общему содержанию на дизассемблированный оригинал, но с множеством мелких отличий: в первую очередь, разряды порядка у литеральных целых констант в большинстве случаев или отсутствуют, или неправильно сформированы; из-за этого в одном месте неправильно выбирается оптимизация константных выражений, и начинаются расхождения в адресах команд тоже.
Теперь предстоит долгая тонкая доводка.
6 мая: После очередных правок осталось два заметных отличия: в операторе case еще плохо различаются целые и enums, и в назначении временных индексных регистров есть ошибка на 1 туда-сюда. Встречаются они не так часто; и между дизассемблированным исходным кодом и рекомпилированным кодом есть всего 70 с небольшим расхождений (против сотен, если не тысяч, до сегодняшнего дня).
Теперь предстоит долгая тонкая доводка.
6 мая: После очередных правок осталось два заметных отличия: в операторе case еще плохо различаются целые и enums, и в назначении временных индексных регистров есть ошибка на 1 туда-сюда. Встречаются они не так часто; и между дизассемблированным исходным кодом и рекомпилированным кодом есть всего 70 с небольшим расхождений (против сотен, если не тысяч, до сегодняшнего дня).