Integrierte Assembler-Unterstützung für AVX2 und AVX-512

Aus RAD Studio

Nach oben zu Delphi-Compiler


Integrierte Assembler-Module (CHASM und CHASM64), die im Olympus Delphi-Compiler für Win32 und Win64 gelinkt sind, unterstützen AVX2- und AVX-512-Anweisungen.

Achtung: Zum Testen dieses Features benötigen Sie eine mit AVX-512 kompatible CPU (etwa eine der neuen INTEL-CPUs). Weitere Informationen finden Sie unter:

https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX-512}} (Englisch)

Neue Register

Register dcc32 dcc64
XMM16 .. XMM31
YMM0 .. YMM7
YMM8 .. YMM31
ZMM0 .. ZMM7
ZMM8 .. ZMM31
BND0 .. BND3
K0 .. K7


Neue Anweisungspräfixe

Anweisungspräfix dcc32 dcc64 Intel-Syntax
xacquire
xrelease
<evex>
{evex}


Neue Ausdruckspräfixe

Präfix dcc32 dcc64
oword
yword
zword


Unterschied zwischen Delphi-Syntax und Intel-Syntax

Leider verwendet die Intel AVX-512-Syntax geschweifte Klammern { }, die bereits in Delphi als Anfangs- und Endzeichen für Kommentare verwendet werden.

Daher werden in dieser Implementierung stattdessen Kleiner-als- und Größer-als-Zeichen (< >) verwendet.

Kategorie Delphi-Syntax Intel-Syntax
Opmask-Register <k1> ,, <k7> {k1} .. {k7}
Zeroing-Modifizierer <z> {z}
Eingebetteter Broadcast <1to2> <1to4> <1to8> <1to16> {1to2} {1to4} {1to8} {1to16}
Statischer Rundungsmodus <sae> <rn-sae> <rd-sae> <ru-sae> <rz-sae> {sae} {rn-sae} {rd-sae} {ru-sae} {rz-sae}
EVEX-Codierungspräfix durchsetzen <evex> {evex}


Siehe auch