Tag: INLINE-ASSEMBLY
No pude comprender completamente el significado de la palabra “clobber”. “Golpear (a alguien) fuertemente” o “tratar o enfrentarse de manera severa”. Manual de gcc 6.45.2.6 Clobbers.
Estoy utilizando GCC 10.3.0 y tengo este código fuente: __asm__ volatile ( “movl %%gs:%0, %%eax\n\t” : “=a”(some_output) : “i”(immediate_value) ); Quiero que GCC traduzca esta instrucción a: movl %gs:immediate_value, %eax pero debido a que estoy utilizando la sintaxis AT&T y un valor inmediato, obtengo un “$” adicional: movl %gs:$immediate_value, %eax . . . Read more
Necesito mover un valor de 128 bits desde la dirección [rsi – 0x80] a la variable dest de abajo usando la instrucción lddqu, y me encuentro con el error “combinación de tipos de operandos para `lddqu’”. Sé que hay preguntas anteriores en stackoverflow utilizando tamaños de operandos más pequeños, pero . . . Read more
Escribí un archivo de objeto BPF que incluía una sección y una función estática en línea, definidas de la siguiente manera: static inline __attribute__((always_inline)) bpf_call_func(…); __section(“entry”) bpf_func(…); // llamada a bpf_call_func Funcionaba correctamente y cuando usé llvm-objdump, mostraba que bpf_call_func ya había sido inlineado. Pero cuando definí otra sección en . . . Read more
Quiero forzar al compilador clang a que inlinee el código. Ya he utilizado la etiqueta inline __attribute__((always_inline)) al definir la función: inline attribute((always_inline)) void func() { // … } He intentado compilar el código usando: clang sort.c -O3 -DNDEBUG -g -Wall -std=gnu99 -gdwarf-3 -always-inline -lrt -lm -o sort Sin embargo, . . . Read more