Percebi pela primeira vez em 2009 que o GCC (pelo menos em meus projetos e em minhas máquinas) tem a tendência de gerar código visivelmente mais rápido se otimizar para tamanho ( -Os) em vez de velocidade ( -O2ou -O3), e fico pensando desde então. Eu consegui criar código (bastante …
Eu tenho uma lista arbitrária de assemblies .NET. Preciso verificar programaticamente se cada DLL foi criada para x86 (em oposição a x64 ou qualquer CPU). Isso é possível?
Estive lendo sobre dive mulmontagem de operações, e eu decidi vê-los em ação, escrevendo um programa simples em C: Arquivo division.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } E, em seguida, gerando o código da linguagem …
Fundo: Ao otimizar algum código Pascal com linguagem assembly incorporada, notei uma MOVinstrução desnecessária e a removi. Para minha surpresa, remover as instruções desnecessárias fez com que meu programa desacelerasse . Descobri que adicionar MOVinstruções arbitrárias e inúteis aumentava ainda mais o desempenho . O efeito é irregular e as …
Os links a seguir explicam as convenções de chamada do sistema x86-32 para UNIX (sabor BSD) e Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Mas quais são as convenções de chamada do sistema x86-64 no UNIX e Linux?
Acredito que encontrei um bug no GCC ao implementar o PCG PRNG de O'Neill. ( Código inicial no Godbolt's Compiler Explorer ) Após multiplicar oldstatepor MULTIPLIER(resultado armazenado em rdi), o GCC não adiciona esse resultado a INCREMENT, movabs'ing INCREMENTpara rdx, que é usado como o valor de retorno de rand32_ret.state …
Desejo determinar se um assembly nativo é cumprido como x64 ou x86 em um aplicativo de código gerenciado ( C # ). Acho que deve estar em algum lugar no cabeçalho do PE, já que o carregador do SO precisa conhecer essas informações, mas não consegui encontrá-las. É claro que …
Rust possui números inteiros de 128 bits, que são indicados com o tipo de dados i128(e u128para entradas não assinadas): let a: i128 = 170141183460469231731687303715884105727; Como o Rust faz com que esses i128valores funcionem em um sistema de 64 bits; por exemplo, como é que faz aritmética sobre estes? Como, …
No Tour do x86-64 dos manuais da Intel , li Talvez o fato mais surpreendente seja que uma instrução como essa MOV EAX, EBXzera automaticamente os 32 bits superiores do RAXregistro. A documentação da Intel (3.4.1.1 Registros de uso geral no modo de 64 bits no manual Arquitetura básica) citada …
Eu tenho um pequeno dilema sobre como configurar minhas compilações de estúdio visual para multi-segmentação. Histórico: c # .NET v2.0 com p / invocar em DLLs de 32 bits de terceiros, SQL compact v3.5 SP1, com um projeto de instalação. No momento, o destino da plataforma está definido como x86 …
A AMD tem uma especificação ABI que descreve a convenção de chamada para usar em x86-64. Todos os sistemas operacionais o seguem, exceto o Windows, que tem sua própria convenção de chamada x86-64. Por quê? Alguém conhece as razões técnicas, históricas ou políticas para essa diferença, ou é puramente uma …
Como está atualmente, esta pergunta não se encaixa em nosso formato de perguntas e respostas. Esperamos que as respostas sejam apoiadas por fatos, referências ou experiência, mas esta pergunta provavelmente irá solicitar debate, argumentos, pesquisas ou discussão extensa. Se você acha que esta questão pode ser melhorada e possivelmente reaberta, …
Estou tentando instalar um serviço do Windows usando InstallUtil.exe e estou recebendo a mensagem de erro System.BadImageFormatException: Não foi possível carregar o arquivo ou assembly ' {xxx.exe}' ou uma de suas dependências. Foi feita uma tentativa de carregar um programa com um formato incorreto. O que da? EDITAR: (Não por …
Estou fazendo um trabalho crítico de desempenho em C ++ e atualmente estamos usando cálculos inteiros para problemas que são inerentemente de ponto flutuante porque "é mais rápido". Isso causa muitos problemas irritantes e adiciona muitos códigos irritantes. Agora, eu me lembro de ter lido sobre como os cálculos de …