Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› icppc и мусор между процедурами
Посл.ответ Сообщение

Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 21 мая 2006 23:58 · Поправил: Av0id
· Личное сообщение · #1

всем привет, вообщем проблема такая, intel c++ compiler при компиляции создают мусор между процедурами (я считаю что это не align), кто знает как избавиться от этого?

мусор следующего вида:

Код:

1000117E 59 pop ecx
1000117F C9 leave
10001180 C3 retn
10001181 90 nop
; мусор start
10001182 8B4424 04 mov eax, dword ptr ss:[esp+4]
10001186 8B5424 08 mov edx, dword ptr ss:[esp+8]
; мусор end
1000118A 55 push ebp
1000118B 8BEC mov ebp, esp
1000118D 81EC 50040000 sub esp, 450


ps. как-то давно читал статью про этот мусор и как от него вылечиться (а также в старых версиях, icppc добавлял пути к файлам в pe-заголовок - про это тоже было в статье), но сейчас нигде её найти не могу



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 22 мая 2006 00:41
· Личное сообщение · #2

интеловский компилер принято называть icc

с чего ты взял что это мусор, поставь бряк в это место на доступ и посмотри для начала
не вызывается ли код




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 22 мая 2006 08:38
· Личное сообщение · #3

возможно относится к контролю за переполнением стека. посмотри опции компилятора



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 22 мая 2006 09:31
· Личное сообщение · #4

Asterix, этот код между процедурами лежит и не используется, видимо он используется для оптимизации под определённый calling conversion


mov eax,dword ptr ss:[esp+4h]
mov edx,dword ptr ss:[esp+8h]
; начало функции
push edi
push esi
push ebp
sub esp,10h
mov ebp,edx
mov esi,eax ; используется параметр переданный не через стек
cmp esi,dword ptr ds:[40301Ch]
je 04011E2h
...




Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 22 мая 2006 10:38
· Личное сообщение · #5

Av0id
это не мусор - это оптимизация для конвеера. И убирать его абсолютно незачем - это нормальное состояние.


 eXeL@B —› Программирование —› icppc и мусор между процедурами
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати