Как мне добиться записи в место назначения указателя вместо возврата значения из вызова функции, такого как:
/*no return function*/
static inline void mac(int64_t *output, in32_t a, int32_t b){
__asm__ ("madd %0,%0,%1,%2"
//madd E[c],E[d],D[a],D[b] -> E[c]=E[d]+(D[a]*D[b])
/*OUTPUTS*/
: "+m" (*output)
/*------------------------------------------------------------------
m as "output" is a pointer to some memory?
what constraint needs to be here?
extended register pair E[c],E[d] is needed in the madd instruction
-> c+=a*b is translated to madd %%e6,%%e6,%dX,%dY with X,Y some data
registers....
------------------------------------------------------------------*/
/*INPUTS*/
: "r" (a), "r" (b)
);
}
Я не могу найти это в онлайн-документации ( ссылка ).
Проблема, которая также возникает, когда я хочу отладить, состоит в том, что функция не скомпилирована (я не могу войти в нее), так как компилятор, вероятно, думает, что в функции вообще ничего не делается, и он просто пропускает ее?