assembler i gcc...

Här diskuteras programmering och utveckling
steqve
Inlägg: 155
Blev medlem: 06 feb 2007, 20:23

assembler i gcc...

Inlägg av steqve »

Hej!

Följande kod från vill jag kunna skriva i GCC:

Kod: Markera allt

double_t __declspec(naked) square( double_t x )
{
	__asm {
		finit
		fld  qword ptr [esp+4]
		fst st(1)
		fmul
		ret
  }
}
naked går tydligen inte att göra i gcc, och efter att ha pratat med utvecklarna så visar det sig att dom inte har några planer alls på att stödja detta. Mycket synd tycker jag.

Nåväl, jag har skickat in -o intelinlined -m i686 som flaggor till kompilatorn så att den skall acceptera att syntaxen är "intel".

Efter konverteringar så ser det ut så här:

Kod: Markera allt

double  square( double x )

{

	asm("finit");

	asm("fld qword ptr [esp+4]");

	asm("fst st(1)");

	asm("fmul");

	asm("ret");

}
Men det här går inte genom kompilatorn. Får följande fel:

Raden med fld qword... : Error: junk 'ptr [esp+4]' after expression
nästa rad: Error: junk '(1)' after expression
nästa rad: Warning: translating to fmulp

Koden kompilerar under windows och fungerar klanderfritt där, så det är inte fel på assemblerkoden, men något med syntaxen gör att gcc inte känner igen den.

Hur kommer jag vidare? Har ca 100 funktioner i olika storlekar med assemblerkod (och nej, majoriteten finns inte i glibc eller liknande).
steqve
Inlägg: 155
Blev medlem: 06 feb 2007, 20:23

SV: assembler i gcc...

Inlägg av steqve »

Juste, makron expanderas inte när koden ligger inom "-fnuttar så jag behöver ett bättre sätt att skriva inline assembler med
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

SV: assembler i gcc...

Inlägg av gasol »

Jag är inte så haj på inline assembly i GCC (eller någon annan kompilator) men den här sidan kanske kan ge dig lite hjälp http://www.ibiblio.org/gferg/ldp/GCC-In ... HOWTO.html
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
steqve
Inlägg: 155
Blev medlem: 06 feb 2007, 20:23

SV: assembler i gcc...

Inlägg av steqve »

Det där är AT&T syntax, jag har så mycket kod att jag inte är sugen på att skriva om den, utan vill helst kunna använda den som finns. Jag har ju "nästan" lyckats :)
Skriv svar

Återgå till "Programmering och webbdesign"