Re: Интересно поведение на GCC
То си е цяло чудо да пишеш на C за такава скопена архитектура като 8-битовите ПИК-льовци - в смисъл, че архитектурата няма стек и няма как да се поддържат стекови локални променливи по същият начин както на архитектурите където го може. То това май е характерно за всички 8 битови архитектури от 7-те - не се сещам за нито една в която достъпът до стека да е удобен за Ц компилатор.
- 6502 - той на практика няма достатъчно стек за данни - но пък има достатъчно гъвкави адресации с които да може да се иземулира
- 8080 - там стек много но няма удобни инструкции за достъп и генерираният код е ужасен - чак в Z80 е малко по добре, но той е проектиран от екипа работил по 8086 та вече са имали едно на ум как да го оправят
- 6800 - горе долу същото положение като на 8080
- PIC1650 - първоначалният модел на PIC от '75 е най-скопен от всички от това поколение. Няма стек, няма индексни регистрин, паметта му е малко и за код и за данни - направо е чудо, че все пак може да се пише на C - но то си има цена - локалните променливи и аргументи на функции са на практика глобални т.е. ако нямаш рекурсия (явна или скрита) ще работи.
Обаче най показателното е, че от всички тези първоначални процесори само най-скопеният ПИК все още го има в широка употреба, че даже има и оптимизиращ Ц компилатор за него