Integrierte Assembler-Unterstützung für AVX2 und AVX-512
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)
Inhaltsverzeichnis
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} |