Thema: Delphi UnicodeString Swap?

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.351 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: UnicodeString Swap?

  Alt 4. Nov 2013, 21:46
Mein Vorschlag:
Delphi-Quellcode:
procedure SwapString(var S1, S2: string);
{$if defined(CPUX86)}
asm
  push [edx]
  mov ecx, [eax]
  mov [edx], ecx
  pop ecx
  mov [eax], ecx
end;
{$elseif defined(CPUX64)}
asm
  push [rdx]
  mov r9, [rcx]
  mov [edx], r9
  pop r9
  mov [rcx], r9
end;
{$else}
var
  Temp: string;
begin // ergibt mehr als 200 Assemblerbefehle
  Temp := S1;
  S1 := S2;
  S2 := Temp;
end;
{$endif}
Bei ARM kann ich das jetzt nicht direkt aus dem Hut ziehen, deshalb dafür rein Pascal. Durch die Compiler Magic, die hinter den String Zuweisungen abläuft, ist der Aufwand da aber um ein Vielfaches höher als bei dem reinen Pointertausch.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat