Running -march otimizou o software em outra arquitetura?

3

Estou executando um servidor Athlon64 com o LFS e gostaria de ter uma cópia local do servidor em uma máquina virtual para fins de teste e desenvolvimento de software.

Meu PC usa um i7 e o software de servidor existente foi construído com -march = athlon64. Apesar das otimizações, posso executar isso no meu hardware?

    
por thpetrus 29.01.2013 / 18:25

2 respostas

6

O sinalizador -march permite que o compilador use instruções que não são suportado por outros CPUs. Existem algumas instruções legais para usar com -march=athlon64 que o seu i7 não suporta. Estes são os 3DNow! e Enhanced 3DNow! instruções que não foram incluídas no MMX ou SSE inteiro. Se o código usar instruções como PFPNACC , ele terá falha no seu i7.

Dito isso, é extremamente improvável que ele realmente use essas instruções, porque essas instruções geralmente são de pouca utilidade - o útil 3DNow! instruções foram incorporadas no MMX ou no iSSE, o que a sua CPU suporta.

Portanto, não é garantido que funcione, mas provavelmente será.

-march=cpu-type: Generate instructions for the machine type cpu-type. ... -march=cpu-type allows GCC to generate code that may not run at all on processors other than the one indicated.

    
por 29.01.2013 / 20:12
0

Você poderá executá-lo, embora com uma pequena penalidade de desempenho.

    
por 29.01.2013 / 20:06