вот такой код:
int R_EAX, R_ESI;
void test(void)
{
asm volatile ("" : "=a" (R_EAX), "=S" (R_ESI));
}
порождает вот такой ассемблер.
.globl test
.type test,@function
test:
pushl %esi
#APP
#NO_APP
movl %eax,R_EAX
movl %esi,R_ESI
popl %esi
ret
вопрос: почему gcc сохраняет/восстанавливает %esi
(в отличие от %eax)? %esi ведь фигурирует только в
output list.
на такое поведение закладывается, например, switch_to(),
но я не могу найти, где это поведение документированно.
Ответ на:
комментарий
от no1sm
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от jek_
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Ответ на:
комментарий
от idle
Ответ на:
комментарий
от Murr
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум (gas) помогите с асмом (2006)
- Форум [asm][c]Содержимое регистра cs (2011)
- Форум Снова type aliasing, и баг в gcc (2016)
- Форум Оптимизатор GCC 4.4 (2009)
- Форум Вентилятор i8k убивается чем-то (2015)
- Форум RH9.0 и do_brk :) (2003)
- Форум asm inline (?) (2010)
- Форум inline-asm (2002)
- Форум gcc inline asm проблема (2011)
- Форум [fpu + inline asm] Тупняк (2011)