-
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;
}
Stichworte
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen