Я хочу написать код, который легко компилируется для 32- или 64-битного Linux в gcc. Я думаю, что я ищу что-то вроде
#ifdef IA32 subl $0x4, %esp #endif #ifdef X86_64 subl $0x4, %rsp #endif
Скорее всего, вы ищете _LP64 , который определяется, когда размер указателя равен 64-битной ширине
Я считаю, что должно работать следующее:
#if defined __i386__ subl $0x4, %esp #elif defined __x86_64__ subq $0x4, %rsp #else #error Unknown architecture! #endif
Исправлен суффикс для sub в 64-битном коде для вас тоже =)
sub