Resultados de la búsqueda a petición "inline-assembly"
El ensamblaje en línea de c obtiene un "desajuste de tamaño de operando" cuando se usa cmpxchg
Estoy tratando de usar cmpxchg con ensamblaje en línea a través de c. Este es mi código: static inline int cas(volatile void* addr, int expected, int newval) { int ret; asm volatile("movl %2 , %%eax\n\t" "lock; cmpxchg %0, %3\n\t" "pushfl\n\t" ...
Informar al sonido metálico que el ensamblaje en línea lee una región particular de memoria
Se puede decir a GCC (todas las versiones que puedo probar convenientemente) que una instrucción de ensamblaje en línea lee una región particular de memoria (expresada como un punterop y un tamañon) con esta construcción ...
Conjunto ARM: no se puede encontrar un registro en la clase "GENERAL_REGS" mientras se recarga "asm"
Estoy tratando de implementar una función que multiplique el operando de 32 bits con el operando de 256 bits en el ensamblaje ARM en ARM Cortex-a8. El problema es que me estoy quedando sin registros y no tengo idea de cómo puedo reducir ...
(ensamblaje en línea en C) Mensajes del ensamblador: Error: pseudo-op desconocido:
He escrito una breve función de "envoltura" en C para unasm montaje en línea, como a continuación. El código de ensamblaje consiste en un bucle while, que calcula varios productos de puntos vectoriales utilizando SSE2. Estoy usando GCC 4.8.4 en ...
Instrucciones de código de ensamblaje fsqrt y fmul
Estoy tratando de calcular1.34 *sqrt(lght) en esta función usando el ensamblaje en línea pero obtengo errores como: '_asm' no declarado (primer uso en esta función) cada identificador no declarado se informa solo una vez para cada función que ...
¿Cómo representar un valor hexadecimal como FFFFFFBB en la programación de ensamblajes x86?
Estoy aprendiendo sobre la programación de ensamblaje en línea x86. Yo queria escribirmov ecx, FFFFFFBB, sin embargo, el compilador no lo reconoce. ¿Cómo deben escribirse números hexadecimales como ese en el código de ensamblador en línea?
llvm informa: asm en línea no compatible: entrada con el tipo 'void *' que coincide con la salida con el tipo 'int'
Tengo el siguiente código de ensamblaje en línea: int get_year(int a, int *b, char * c) { int ret, t1, t2; asm ( "addl %3, %[a] \n\t" "movl %[a], %[t1] \n\t" "movl $58, %%edx \n\t" "movb %%dl, 0x04(%1) \n\t" : [t1] "=r" (t1), "=&D" (t2) : [a] ...
Merito de redondeo en línea-ASM mediante la colocación de flotante en la variable int
He heredado un código bastante interesante: inline int round(float a) { int i; __asm { fld a fistp i } return i; } Mi primer impulso fue descartarlo y reemplazar las llamadas con(int)std::round (anterior a C ++ 11, usaríastd::lround si sucedió ...
¿Cómo acceder a estructuras / variables de C desde asm en línea?
Considere el siguiente código: int bn_div(bn_t *bn1, bn_t *bn2, bn_t *bnr) { uint32 q, m; /* Division Result */ uint32 i; /* Loop Counter */ uint32 j; /* Loop Counter */ /* Check Input */ if (bn1 == NULL) return(EFAULT); if (bn1->dat == NULL) ...
¿El ejemplo de código asm de lectura de marca de tiempo de Intel utiliza dos registros más de los necesarios?
Estoy buscando medir el rendimiento de referencia utilizando el registro de sello de tiempo (TSR) que se encuentra en las CPU x86. Es un registro útil, ya que mide en una unidad de tiempo monótona que es inmune al cambio de velocidad del reloj. ...