Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#34

AW: [ASM / SSE] Vektoroperationen

  Alt 14. Jun 2012, 15:38
Der Anfang eines statischen Arrays ist erstmal alligned, so wie es FastMM vorgibt.

Und dann kommt es auf die Größe der Felder des Arrays an.
Und bei Records (innerhalb des Arrays) auf die Größe des größten enthaltenen Feldes.

Die Felder des Arrays werden mit einem maximalen "allign" ausgerichtet, wie es {$ALIGN} vorgibt.
Die tatsächliche Ausrichtung hängt aber von den Array-Feldern ab.
Und ein PACKED ARRAY wird nie ausgerichtet.

Ein Array of Word wird "intern" mit Min(SizeOf(Word), {$ALIGN}) ausgerichtet, also mit 2, denn mehr ist sinnlos.

Oben der Record besteht aus 4 Singles und da SizeOf(Singe) nur 4 ist, wird das Array intern auch nur mit maximal 4 Byte ausgerichtet.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat