Why does the compiler touch ebx here? (stackframes off, optimization on)
Why does the compiler touch ebx here? (stackframes off, optimization on)
function GetHello: string
begin
Result := 'Hello';
end;
assembler generated:
Project48.dpr.25: begin
0041A13C 53 push ebx
0041A13D 8BD8 mov ebx,eax
Project48.dpr.26: Result := 'Hello';
0041A13F 8BC3 mov eax,ebx
0041A141 BA5CA14100 mov edx,$0041a15c
0041A146 E8B5D0FEFF call @UStrAsg
Project48.dpr.27: end;
0041A14B 5B pop ebx
0041A14C C3 ret
function GetHello: string
begin
Result := 'Hello';
end;
assembler generated:
Project48.dpr.25: begin
0041A13C 53 push ebx
0041A13D 8BD8 mov ebx,eax
Project48.dpr.26: Result := 'Hello';
0041A13F 8BC3 mov eax,ebx
0041A141 BA5CA14100 mov edx,$0041a15c
0041A146 E8B5D0FEFF call @UStrAsg
Project48.dpr.27: end;
0041A14B 5B pop ebx
0041A14C C3 ret
Comments
Post a Comment