Einzelnen Beitrag anzeigen

Benutzerbild von t2000
t2000

Registriert seit: 15. Dez 2005
Ort: NRW
212 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Compiler Problem Reihenfolge der Ausführung

  Alt 23. Feb 2021, 14:18
Ich habe hier mal die kompletten Auszüge der CPU für bei Versionen.
Habe gerade sehr viel Hotline am Telefon. Kann nicht viel testen.

Source

Delphi-Quellcode:
  try
    FOnColorChanged := nil;

    trackbarHelligkeit.Range.Min := round( ccLumDelta * 100);
    trackbarHelligkeit.Range.Max := round( (ccLumDelta+ccIdleReduce) * 100);

  // // *** Styles - Combobox füllen aktuell keine ComboBox
  // sl := TStringlist.Create;
  // try
  // // erst in Stringlist, damit ich sortieren und verschieben kann
  // for LStylename in TStyleManager.StyleNames do
  // sl.Add( LStylename);
  // sl.Sort;
  // sl.Move( sl.IndexOf( 'Windows'), 0);
  // for i := 0 to sl.Count-1 do
  // cbStyle.Add( sl[i]);
  // finally
  // sl.Free;
  // end;
  // cbStyle.ItemIndex := cbStyle.IndexOfCaption( TStyleManager.ActiveStyle.Name);

    btnAkzent.Down := True;
    btnAkzentClick( nil);

    LStylename := TStyleManager.ActiveStyle.Name;
    {if} SetVCLStyle( LStylename, ccColormode);// <> '(dummy)' then // um den Stylenamen (var) zu bereinigen
      lblCurrentStylename.Caption := LStylename; // ohne if-Abfrage macht der Compiler Mist
CPU mit der if-Anweisung
Code:
VCL.Color.Frame.pas.120: try
000000000181AEF0 90               nop
VCL.Color.Frame.pas.121: FOnColorChanged := nil;
000000000181AEF1 488B4560         mov rax,[rbp+$60]
000000000181AEF5 488D80E0060000   lea rax,[rax+$000006e0]
000000000181AEFC 48C70000000000   mov qword ptr [rax],$0000000000000000
000000000181AF03 48C7400800000000 mov qword ptr [rax+$08],$0000000000000000
VCL.Color.Frame.pas.123: trackbarHelligkeit.Range.Min := round( ccLumDelta * 100);
000000000181AF0B 488B056E63AB00   mov rax,[rel $00ab636e]
000000000181AF12 F3480F5A00       cvtss2sd xmm0,qword ptr [rax]
000000000181AF17 F20F590559010000 mulsd xmm0,qword ptr [rel $00000159]
000000000181AF1F E86C15BFFE      call @Round
000000000181AF24 488B4D60         mov rcx,[rbp+$60]
000000000181AF28 488B8900050000   mov rcx,[rcx+$00000500]
000000000181AF2F 488B89A0080000   mov rcx,[rcx+$000008a0]
000000000181AF36 89C2             mov edx,eax
000000000181AF38 E843B7C5FF      call TdxTrackBarRange.SetMin
VCL.Color.Frame.pas.124: trackbarHelligkeit.Range.Max := round( (ccLumDelta+ccIdleReduce) * 100);
000000000181AF3D 488B053C63AB00   mov rax,[rel $00ab633c]
000000000181AF44 F3480F5A00       cvtss2sd xmm0,qword ptr [rax]
000000000181AF49 488B05D0C7AB00   mov rax,[rel $00abc7d0]
000000000181AF50 F3480F5A08       cvtss2sd xmm1,qword ptr [rax]
000000000181AF55 F20F58C1         addsd xmm0,xmm1
000000000181AF59 F20F590517010000 mulsd xmm0,qword ptr [rel $00000117]
000000000181AF61 E82A15BFFE      call @Round
000000000181AF66 488B4D60         mov rcx,[rbp+$60]
000000000181AF6A 488B8900050000   mov rcx,[rcx+$00000500]
000000000181AF71 488B89A0080000   mov rcx,[rcx+$000008a0]
000000000181AF78 89C2             mov edx,eax
000000000181AF7A E8E1B6C5FF      call TdxTrackBarRange.SetMax
VCL.Color.Frame.pas.141: btnAkzent.Down := True;
000000000181AF7F 488B4560         mov rax,[rbp+$60]
000000000181AF83 488B88A0060000   mov rcx,[rax+$000006a0]
000000000181AF8A B201             mov dl,$01
000000000181AF8C E82F866CFF      call TscCustomButtonControl.SetDown
VCL.Color.Frame.pas.142: btnAkzentClick( nil);
000000000181AF91 488B4D60         mov rcx,[rbp+$60]
000000000181AF95 33D2             xor edx,edx
000000000181AF97 E804020000       call TfrColorSettings.btnAkzentClick
VCL.Color.Frame.pas.144: LStylename := TStyleManager.ActiveStyle.Name;
000000000181AF9C E86FE2F3FE      call TStyleManager.GetActiveStyle
000000000181AFA1 4889C1           mov rcx,rax
000000000181AFA4 488D5538         lea rdx,[rbp+$38]
000000000181AFA8 488B18           mov rbx,[rax]
000000000181AFAB FF93A0000000     call qword ptr [rbx+$000000a0]
VCL.Color.Frame.pas.145: if SetVCLStyle( LStylename, ccColormode) <> '(dummy)' then // um den Stylenamen (var) zu bereinigen
000000000181AFB1 488D4D20         lea rcx,[rbp+$20]
000000000181AFB5 488D5538         lea rdx,[rbp+$38]
000000000181AFB9 488B0588B3AB00   mov rax,[rel $00abb388]
000000000181AFC0 4C0FB600         movzx r8,byte ptr [rax]
000000000181AFC4 E897DFFFFF      call SetVCLStyle
000000000181AFC9 488B4D20         mov rcx,[rbp+$20]
000000000181AFCD 488D1500010000   lea rdx,[rel $00000100]
000000000181AFD4 E86787BFFE      call @UStrEqual
000000000181AFD9 85C0             test eax,eax
000000000181AFDB 7414             jz TfrColorSettings.Init + $131
VCL.Color.Frame.pas.146: lblCurrentStylename.Caption := LStylename;   // ohne if-Abfrage macht der Compiler Mist
000000000181AFDD 488B4560         mov rax,[rbp+$60]
000000000181AFE1 488B8888060000   mov rcx,[rax+$00000688]
000000000181AFE8 488B5538         mov rdx,[rbp+$38]
000000000181AFEC E84FA7E2FE      call TControl.SetText
CPU OHNE if-Anweisung
Code:
VCL.Color.Frame.pas.120: try
000000000181AEF0 90               nop
VCL.Color.Frame.pas.145: {if} SetVCLStyle( LStylename, ccColormode);// <> '(dummy)' then // um den Stylenamen (var) zu bereinigen
000000000181AEF1 48C7453800000000 mov qword ptr [rbp+$38],$0000000000000000
VCL.Color.Frame.pas.121: FOnColorChanged := nil;
000000000181AEF9 90               nop
000000000181AEFA 488B4560         mov rax,[rbp+$60]
000000000181AEFE 488D80E0060000   lea rax,[rax+$000006e0]
000000000181AF05 48C70000000000   mov qword ptr [rax],$0000000000000000
000000000181AF0C 48C7400800000000 mov qword ptr [rax+$08],$0000000000000000
VCL.Color.Frame.pas.123: trackbarHelligkeit.Range.Min := round( ccLumDelta * 100);
000000000181AF14 488B057563AB00   mov rax,[rel $00ab6375]
000000000181AF1B F3480F5A00       cvtss2sd xmm0,qword ptr [rax]
000000000181AF20 F20F590548010000 mulsd xmm0,qword ptr [rel $00000148]
000000000181AF28 E86315BFFE      call @Round
000000000181AF2D 488B4D60         mov rcx,[rbp+$60]
000000000181AF31 488B8900050000   mov rcx,[rcx+$00000500]
000000000181AF38 488B89A0080000   mov rcx,[rcx+$000008a0]
000000000181AF3F 89C2             mov edx,eax
000000000181AF41 E83AB7C5FF      call TdxTrackBarRange.SetMin
VCL.Color.Frame.pas.124: trackbarHelligkeit.Range.Max := round( (ccLumDelta+ccIdleReduce) * 100);
000000000181AF46 488B054363AB00   mov rax,[rel $00ab6343]
000000000181AF4D F3480F5A00       cvtss2sd xmm0,qword ptr [rax]
000000000181AF52 488B05D7C7AB00   mov rax,[rel $00abc7d7]
000000000181AF59 F3480F5A08       cvtss2sd xmm1,qword ptr [rax]
000000000181AF5E F20F58C1         addsd xmm0,xmm1
000000000181AF62 F20F590506010000 mulsd xmm0,qword ptr [rel $00000106]
000000000181AF6A E82115BFFE      call @Round
000000000181AF6F 488B4D60         mov rcx,[rbp+$60]
000000000181AF73 488B8900050000   mov rcx,[rcx+$00000500]
000000000181AF7A 488B89A0080000   mov rcx,[rcx+$000008a0]
000000000181AF81 89C2             mov edx,eax
000000000181AF83 E8D8B6C5FF      call TdxTrackBarRange.SetMax
VCL.Color.Frame.pas.141: btnAkzent.Down := True;
000000000181AF88 488B4560         mov rax,[rbp+$60]
000000000181AF8C 488B88A0060000   mov rcx,[rax+$000006a0]
000000000181AF93 B201             mov dl,$01
000000000181AF95 E826866CFF      call TscCustomButtonControl.SetDown
VCL.Color.Frame.pas.142: btnAkzentClick( nil);
000000000181AF9A 488B4D60         mov rcx,[rbp+$60]
000000000181AF9E 33D2             xor edx,edx
000000000181AFA0 E8EB010000       call TfrColorSettings.btnAkzentClick
VCL.Color.Frame.pas.144: LStylename := TStyleManager.ActiveStyle.Name;
000000000181AFA5 E866E2F3FE      call TStyleManager.GetActiveStyle
000000000181AFAA 4889C1           mov rcx,rax
000000000181AFAD 488D5530         lea rdx,[rbp+$30]
000000000181AFB1 488B18           mov rbx,[rax]
000000000181AFB4 FF93A0000000     call qword ptr [rbx+$000000a0]
VCL.Color.Frame.pas.145: {if} SetVCLStyle( LStylename, ccColormode);// <> '(dummy)' then // um den Stylenamen (var) zu bereinigen
000000000181AFBA 488D4D38         lea rcx,[rbp+$38]
000000000181AFBE 488D5530         lea rdx,[rbp+$30]
000000000181AFC2 488B058FB3AB00   mov rax,[rel $00abb38f]
000000000181AFC9 4C0FB600         movzx r8,byte ptr [rax]
000000000181AFCD E88EDFFFFF      call SetVCLStyle
VCL.Color.Frame.pas.146: lblCurrentStylename.Caption := LStylename;   // ohne if-Abfrage macht der Compiler Mist
000000000181AFD2 488B4560         mov rax,[rbp+$60]
000000000181AFD6 488B8888060000   mov rcx,[rax+$00000688]
000000000181AFDD 488B5530         mov rdx,[rbp+$30]
000000000181AFE1 E85AA7E2FE      call TControl.SetText
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat