Resultados de la búsqueda a petición "inline-assembly"

1 la respuesta

El extraño operando 'asm' tiene un error de restricciones imposibles

Estoy intentando compilar un programa C simple (Win7 32bit, Mingw32 Shell y GCC 5.3.0). El código C es así: #include <stdio.h> #include <stdlib.h> #define _set_tssldt_desc(n,addr,type) \ __asm__ ("movw $104,%1\n\t" \ :\ :"a" (addr),\ "m" ...

1 la respuesta

¿Cómo mover el doble en% rax a la posición particular de qword en% ymm o% zmm? (Kaby Lake o posterior)

La idea es que me gustaría recopilar los valores devueltos dedouble en un registro vectorial para procesar para la máquinaimm width a la vezsi almacenar de nuevo en la memoria primero. l procesamiento particular es unvfma con otros dos ...

1 la respuesta

Cómo hacer que GCC combine “mover r10, r3; almacenar r10 "en una" tienda r3 "?

Estoy trabajando en Power9 y estoy utilizando la instrucción del generador de números aleatorios de hardware llamada DARN. Tengo el siguiente ensamblaje en línea: uint64_t val; __asm__ __volatile__ ( "xor 3,3,3 \n" // r3 = 0 "addi 4,3,-1 \n" // ...

1 la respuesta

¿Hay alguna forma de deshabilitar el ensamblador en línea en GCC?

Estoy desarrollando un sistema de jueces en línea para concursos de programación como LeetCode, Codeforces, etc. Como en la mayoría de los concursos de programación, el ensamblador en línea no está permitido en C / C ++, por lo que me gustaría ...

1 la respuesta

ejecutar ensamblado dentro de una función en c ++

long getesp() { __asm__("movl %esp,%eax"); } void main() { printf("%08X\n",getesp()+4); } ¿por qué el esp apunta al valor antes de configurar el marco de la pila y hace alguna diferencia entre el código a continuación? void main() { ...

4 la respuesta

¿Hay alguna forma de insertar código de ensamblaje en C?

Recuerdo que en el pasado con el viejo compilador de DOS de Borland podías hacer algo como esto: asm { mov ax,ex etc etc... } ¿Hay una forma independiente de semi-plataforma para hacer esto ahora? Tengo la necesidad de hacer una llamada de ...

5 la respuesta

Ensamblaje en línea que golpea la zona roja

Estoy escribiendo un programa de criptografía, y el núcleo (una rutina de multiplicación amplia) está escrito en ensamblado x86-64, tanto por velocidad como porque usa ampliamente instrucciones comoadc que no son fácilmente accesibles desde C. ...

3 la respuesta

Dirección de etiquetas (MSVC)

Estamos escribiendo un código de bytes para un lenguaje compilado de alto nivel, y después de un poco de creación de perfiles y optimización, quedó claro que la mayor sobrecarga de rendimiento actual es la declaración de cambio que estamos ...

5 la respuesta

¿Cómo especifico números de coma flotante inmediatos con ensamblaje en línea?

Cuando intento compilar este código: #include <stdio.h> main(int argc, char *argv[]) { double y = 0; __asm__ ("fldl $150;" "fsqrt;" "fstl %0;" : : "g" (y) ); printf("%f\n", y); return 0; } Me sale este error: sqrt.c: Assembler messages: ...

3 la respuesta

Forma correcta de envolver CMPXCHG8B en el ensamblaje en línea GCC, 32 bits

Estoy tratando de escribir un asm en línea de GCC para CMPXCHG8B para ia32. No, no puedo usar__sync_bool_compare_and_swap. Tiene que funcionar con y sin -fPIC. Hasta ahora el mejor que he EDITA: no funciona después de todo, vea mi ...