Что-то не видел раньше эту тему. Вставлю свои пять копеек.
Лично я не особенно понимаю весь этот спичь от Олега за производительность, использование лишнего индексного регистра, jp вместо ret и прочие изыски, которые более выглядят как желание докопаться в пользу более полюбившегося варианта компилятора, уникальные особенности которого позволяют где-то чуть меньше трудиться, чем делая универсальный и в силу этого очевидный для "человека с улицы" вариант. Для меня гораздо важнее предсказуемость компилятора, которая прямо проистекает от того насколько порядок голове у его автора(ов), и общеупотребимость (что прямо противоположно "уникальным особенностям") - "сел и поехал". Остальное (если вдруг действительно лишний джамп все замедлил) решаемо заменой процессора на с частотой побольше.
По первому пункту у SDCC все было очень грустно (по крайней мере в последней версии SDCC что я использовал - 2.9х - заведомо исправный код компилировался без ошибок и варнингов, но не работал, а проходить 25кб консольным отладчиком - нуегонафиг), тогда как Hitec тот же код собирал и он работал (при в полтора меньшем размере кода на выходе). Возможно, сейчас стало получше, но эксперимениты с любительскими клонами SmallC я завязал. По второму пункту тоже очевидно: ANSII компилятор (т.е. как я понимаю Z88dk сразу выпадает) с максимум полдюжиной ключей и готовым выхлопом под наиболее распространенныю платформу для которой есть 100500 эмуляторов (CP/M) куда как проще освоить и дальше видоизменять {адреcа посадки и чего угодно}, чем компилер с дикой кучей ключей и "изкоробки" не компилирующий в среду, которую должен знать и уметь любой уважающий себя компилер для Z80 (что тоже говорит о кругозоре авторов). А так то конечно да - имея под попой PC986 с биллионами байт памяти и биллионами же герц тактовой казалось бы не написать нормальный компилятор С?! Да за пояс заткнем эти CP/M c их 64кб, дискеткой в 400кб и смешным процессором.)) #скоро
Вот тут лежит моя адаптация UZIX где в качестве компилятора использован HitechC v3(+эмулятор+make). Там же есть библиотеки в исходниках (libc, libf), мейкфалы, на случай если кому пригодится в качестве примера или для какого дерибана. Все выложено, в том числе в темах на форуме, стоило столько шишек по второму кругу собирать чтобы потом обхаять (когда можно было взять готовое и не париться), что как бы характеризует.
Кстати из смешного, FUZIX (который не сложнее Uzix) где компилятором взяли SDCC, AFAIK собирается только одной определенной версией этого чудесного компилятора, с набором костылей (к компилятору понятно).





)) #скоро
Ответить с цитированием