[fpc-devel] (patch) An attempt to improve assignments/function result reuse

Sergei Gorelkin sergei_gorelkin at mail.ru
Sat Dec 8 18:30:39 CET 2007


Florian Klaempfl wrote:
> 
> Are you sure with the strings?

Yes. Any function that returns a string is supplied with one more 
argument than it was declared. After calling the function, register eax 
(which is used to contain the non-parameter result) is not used.
Here is a simple example:

function TDOMCharacterData.GetNodeValue: DOMString;
begin
   Result := FNodeValue;
end;

push  ebx
push  esi
mov   esi, edx        <- address of result
mov   ebx, eax        <- Self
mov   eax, esi
mov   edx, [ebx+14]   <- FNodeValue
call  @WStrAsg
pop   esi
pop   ebx
ret


Sergei



More information about the fpc-devel mailing list