вот такой код: 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(), но я не могу найти, где это поведение документированно.
Похожие темы
- Форум (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)
- Форум [fpu + inline asm] Тупняк (2011)
- Форум gcc inline asm проблема (2011)