Доброго времени суток,
Помогите разобраться в следующем (gcc 4.3.2, linux x86_64):
если я пишу код:
__asm__ {
....
"andq $0x3FFFFFFFFFFFFFFF, %%rax \n\t"
....
}
то компилятор ругается «suffix or operands invalid for `and'»
если пишу так,
__asm__ {
....
"movq $0x3FFFFFFFFFFFFFFF, %%r8 \n\t"
"andq %%r8, %%rax \n\t"
....
}
то всё ок. хoтя первый способ тоже должен работать имхо. Интересно, что еcли заменить $0x3FFFFFFFFFFFFFFF, скажем, на 0х3FFF, то всё ништяк. Косяк ли это? Если да, то как его обойти?