Como você detecta o tipo de arquitetura da CPU durante o tempo de execução com o GCC e o inline asm?
Eu preciso encontrar o tipo de arquitetura de uma CPU. Eu não tenho acesso ao / proc / cpuinfo, como a máquina está executando o syslinux. Eu sei que há uma maneira de fazer isso com o ASM embutido, mas acredito que minha sintaxe está incorreta, pois minha variável iedx não está sendo configurada corretamente.
Estou me arrastando junto com a ASM e de modo algum um especialista. Se alguém tiver alguma dica ou puder me apontar na direção certa, eu ficaria muito grato.
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;
}