Resultados da pesquisa a pedido "assembly"
ARM IT assembler de instruções condicionais (armcc)
por que abaixo compila: ITE EQ MRSEQ R0, MSP MRSNE R0, PSP mas isso não: ITT NE MRSNE R0, PSP MRSEQ R0, MSP É possível que o MRSNE R0, PSP e MRSEQ R0, MSP sejam executados (este é o meu caso)? This compiles: ITT NE MRSNE R0, PSP MRSNE R0, MSP ...
Produzir loops sem instrução cmp no GCC
Eu tenho vários loops apertados que estou tentando otimizar com o GCC e com os intrínsecos. Considere, por exemplo, a seguinte função. void triad(float *x, float *y, float *z, const int n) { float k = 3.14159f; int i; __m256 k4 = ...
Carregar flutuações constantes nos registros SSE
Estou tentando descobrir uma maneira eficiente de carregar flutuações constantes de tempo de compilação nos registros SSE (2/3). Eu tentei fazer código simples como este, const __m128 x = { 1.0f, 2.0f, 3.0f, 4.0f };mas isso gera 4 instruções ...
Modos de micro fusão e endereçamento
Encontrei algo inesperado (para mim) usando oAnalisador de código de arquitetura Intel® [https://software.intel.com/en-us/articles/intel-architecture-code-analyzer] (IACA). A seguinte instrução usando[base+index] endereçamento addps xmm1, ...
O que é o IACA e como eu o uso?
Encontrei esta ferramenta interessante e poderosa chamadaIACA (o analisador de código de arquitetura Intel) [https://software.intel.com/en-us/articles/intel-architecture-code-analyzer], mas tenho problemas para entender. O que posso fazer com ...
Etiquetas locais no GNU assembler; backdrace de impressão gdb como se etiquetas fossem funções
Dois pedaços de código de exemplo; primeiro algum código C ++ chamando em assembly: /* test1.cc */ #include <stdio.h> extern "C" void blah(); extern "C" void stuff() { printf( "This is a test\n" ); } int main( int argc, char *argv[] ) { blah(); ...
Lendo e imprimindo uma corda no conjunto do braço
Estou usando o ARMSim e acabei de começar a aprender montagem, então, desculpe-me se eu parecer sem noção, mas estou tentando ler uma string de um arquivo de entrada e depois imprimi-la na tela de saída. Até agora eu tenho: .equ SWI_Open, 0x66 ...
Aprendendo a ler a saída do assembler do GCC
Estou pensando em adquirir uma compreensão muito rudimentar da montagem. Meu objetivo atual é simples:MUITO BÁSICOentendimento da saída do montador GCC ao compilar C / C ++ com a opção -S para x86 / x86-64. Apenas o suficiente para fazer coisas ...
diferença entre instruções condicionais (cmov) e instruções de salto [duplicado]
Esta pergunta já tem uma resposta aqui: Por que uma movimentação condicional não é vulnerável a Falha na Previsão de Filial? [/questions/14131096/why-is-a-conditional-move-not-vulnerable-for-branch-prediction-failure] 5 respostasEstou confuso ...
O que registra para salvar na convenção de chamada do ARM C?
Faz um tempo desde a última vez que codifiquei o montador de braço e estou um pouco enferrujado nos detalhes. Se eu chamar uma função C do braço, só preciso me preocupar em salvar r0-r3 e lr, certo? Se a função C usa outros registros, é ...