Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: Ein bisschen InlineAssembler hilfe :)

  Alt 17. Nov 2009, 21:15
Ungetestet, und keine Ahnung ob das wirklich schneller ist. Spart ein paar OPs, ob es damit auch cycles spart ist nie so sicher Zumindest spart es eine Menge pushes auf den FPU Stack! Auch möglich, dass man den Vergleich mit i noch etwas optimieren kann, ohne die Statusbits erst noch nach AX zu schaufeln. Das wait kann man sich erfahrungsgemäß so gut wie immer sparen. In meinen Handoptimierungen hat es bislang zumindest nie weh getan das einfach ersatzlos zu streichen

Delphi-Quellcode:
fild &i
fld &n
fld &Zahl
jmp @@Loop
@@Start:
// Unit1.pas.32: Zahl:= Zahl +1/n;
fld 1
fdiv st(0), st(2)
faddp
// Unit1.pas.33: n:= n+1;
fadd st(1), 1
@@Loop:
// Unit1.pas.30: while Zahl < i do
fcomp st(2)
fstsw ax
sahf
jnbe @@Start
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat