schön, nach Durchlesen des "Inline-Assembly-HOWTO's" hab ich's auch einigermaßen verstanden,
aber wie schafft man nun eine "inline function" die beim Aufruf dann wirklich als nur 2 Befehle compiliert
wird und auch wie beabsichtigt funktioniert?
Was
muß im folgenden an stelle der Fragezeichen stehen?

#include <stdio.h>
typedef unsigned long long tU64;
typedef struct {tU64 lw; tU64 hi;} tU128;
inline
tU128 m128(tU64 f1, tU64 f2)
__attribute__((always_inline));
inline
tU128 m128(tU64 f1,tU64 f2){

asm("movq %?,%%rax\n"
"mulq %?"
:?
:"m"(f1),"m"(f2)
);
}
int main(){

tU64 a,b; tU128 p;

scanf("%llu%llu",&a,&b);

p = m128(a,b);

printf("%llu %llu\n",p.lw,p.hi);
return 0;
}