Не знаю как в gas сочинить локальные для функции метки. Они получаются глобальные для файла и поэтому, например нельзя вставлять ассемблерные куски в inline-функции.
inline void dodo(unsigned arg);
void calldo(){
dodo(1);
dodo(2);
dodo(3);
}
inline void dodo(unsigned arg){
asm("\n.loop\n\t"
"dec %eax\n\t"
"jnz .loop":/**/:"a"(arg));
}
Пример дурацкий но компилироваться не будет. gas скажет, что метка .loop уже определена
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум gcc inline assembler (2002)
- Форум asm inline (?) (2010)
- Форум gcc (не знаю как собрать) (2012)
- Форум gcc inline asm amd64 (2009)
- Форум gcc inline asm проблема (2011)
- Форум [fpu + inline asm] Тупняк (2011)
- Форум inline asm and registers clobbering (2004)
- Форум [gcc + inline asm] привязка к регистрам (2011)
- Форум MMX инструкции в inline asm вставке? (2000)
- Форум inline asm в GCC (i686)... оч.косвенная адресация.. (2009)