Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Clean Code - Default benutzen

  Alt 10. Aug 2020, 11:49
c) ist unnötig, wenn die Defaults eh 0.0 sind - das erledigt Default() schon - nur wenn sie von dem abweichen muss man da was setzen.
Dein gezeigner asm ist ohne Optimierung - mit sieht das so aus:

Code:
Result := Default(TBlaResult);
0041BDB4 8BFB            mov edi,ebx
0041BDB6 33C0             xor eax,eax
0041BDB8 AB              stosd
0041BDB9 AB              stosd
0041BDBA AB              stosd
0041BDBB AB              stosd
Result.one := 0.0;
0041BDBC 33C0             xor eax,eax
0041BDBE 8903             mov [ebx],eax
0041BDC0 894304           mov [ebx+$04],eax
Result.two := 0.0;
0041BDC3 33C0             xor eax,eax
0041BDC5 894308           mov [ebx+$08],eax
0041BDC8 89430C          mov [ebx+$0c],eax
Project456.dpr.30: end;
0041BDCB 5F              pop edi
0041BDCC 5B              pop ebx
0041BDCD C3               ret
Man könnt sich jetzt noch darüber beschweren, dass er mehrfach eax leert, aber so ist er halt unser lieber Delphi Compiler - von Peephole Optimizations kein Plan

Ein gescheiter Compiler würd da übrigens sowas draus machen:

Code:
pxor   xmm0, xmm0
movups [eax], xmm0
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (10. Aug 2020 um 12:01 Uhr)
  Mit Zitat antworten Zitat