Как вы определяете тип архитектуры процессора во время выполнения с GCC и встроенным ассемблером?

Мне нужно найти тип архитектуры процессора. У меня нет доступа к / proc / cpuinfo, так как на машине работает syslinux. Я знаю, что есть способ сделать это с помощью встроенного ASM, однако я считаю, что мой синтаксис неверен, поскольку моя переменная iedx не установлена должным образом.

Я дружу с ASM и ни в коем случае не эксперт. Если у кого-нибудь есть какие-либо советы или вы можете указать мне правильное направление, я был бы очень признателен.

static int is64Bit(void) {
    int iedx = 0;
    asm("mov %eax, 0x80000001");
    asm("cpuid");
    asm("mov %0, %%eax" : : "a" (iedx));
    if ((iedx) && (1 << 29))
    {
        return 1;
    }
    return 0;
}