Опубликован (http://netsago.org/ru/docs/1/9/) перевод статьи "Getting Familiar with GCC Parameters (http://www.onlamp.com/pub/a/onlamp/2007/04/03/getting-famili...)", в которой рассмотрены следующие параметры GCC (GNU C Complier):
- Параметры, относящиеся к оптимизации;
- Параметры, относящиеся к вызову функций;
- Параметры, относящиеся к отладке;
- Параметры, относящиеся к препроцессору.URL: http://netsago.org/ru/docs/1/9/
Новость: http://www.opennet.me/opennews/art.shtml?num=14921
лучше бы толковую доку по кросс-компиляции запостили...
А тутошные не подходят...http://www.opennet.me/docs/RUS/clfs/CLFS-BOOK-x86.html
http://www.opennet.me/docs/RUS/clfs/CLFS-BOOK-ppc.html
http://www.opennet.me/docs/RUS/clfs/CLFS-BOOK-sparc.html
http://www.opennet.me/docs/RUS/clfs/CLFS-BOOK-alpha.html
*GNU C CompILER
> GNU C CompILERGCC расшифровывается как GNU Compiler Collection (http://gcc.gnu.org)
>> GNU C CompILER
>
>GCC расшифровывается как GNU Compiler Collection (http://gcc.gnu.org)а /usr/bin/gcc, ключи которого мы тут узучаем типа, -- натурально-таки GNU C compiler
Артут Грифитс "GCC в подлинике".
Ищи на кпнемо.ру, ищи на 2бакса.нет, ищи на алл-ебукс.ком.
Я книгу читал с листа, и электронная верия тоже ... е ...
И про кроскомпиляцию там все как на ладони.
пример 1.--- test.c 2008-03-24 16:27:48.830464281 +0300
+++ test.c 2008-03-24 16:27:36.002552794 +0300
@@ -1,7 +1,7 @@
#include<stdio.h>
int main(int argc, char *argv[])
{
- int i,j,k;
+ int i,j,k
unsigned long acc=0;
for(i=0;i<10000;i++)
for(j=0;j<5000;j++)
Упс, наоборот ....- int i,j,k
+ int i,j,k;
а толку
вот скажите как принудительно GCC заставить параметры через стек push/pop пихать а не через mov как он это делает
я уже все перепробовал - все опции которые как то могли влиять
под NIX-ами это автоматом должно случится. под виндами, вероятно, надо при объявлении функций __attribute__((__cdecl__)) добавлять
Ну дык все зависит от ситуации. Если у тебя в проце регистров меньше чем параметров - то уж извини тока церез стек (и лучше использоать указатели), если больше - то при оптимизации это будет автоматом. И не забывай волшебное ключевое слово registred (или) что то в этом роде. А в опциях, я такого не припомню.
Будь здоров.
что то ты вы говорите но не в тему
причем тут автоматически не автоматически
register тут вообще не причеместь параметер в gcc который тупо говорит пихать параметры функций через
push
objdump смотрите что в итоге получаеться
а он это оптимизирует и постояно пихает это через тот же стек токо mov
> он это оптимизирует и постояно пихает это через тот же стек токо movВероятно, на Вашем проце такая последовательность команд в каком-то смысле выгоднее.
В каком именно - вероятно, зависит от ключей оптимизации.
Попробуйте полностью отключить оптимизацию и проверьте.
>> он это оптимизирует и постояно пихает это через тот же стек токо mov
>
>Вероятно, на Вашем проце такая последовательность команд в каком-то смысле выгоднее.
>В каком именно - вероятно, зависит от ключей оптимизации.
>Попробуйте полностью отключить оптимизацию и проверьте.там вообще оптимизации нет
если есть желание и есть unix предлагаю попробовать и поискать варианты самому)
Еще удивляет, что не используются команды ENTER и LEAVE для создания/удаления кадра стека