Prise en charge de l'assembleur intégré pour AVX2 et AVX-512
Remonter à Compilateur Delphi
Les modules de l'assembleur intégré (CHASM et CHASM64) liés dans le compilateur Delphi Olympus pour Win32 et Win64 prennent en charge les instructions AVX2 et AVX-512.
Attention: Pour tester cette fonctionnalité, vous devez disposer d'un processeur compatible AVX-512 (comme celui des processeurs INTEL récents). Pour plus d'informations, rendez-vous sur :
https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX-512}}
Nouveaux registres
| Registres | dcc32 | dcc64 |
|---|---|---|
| XMM16 .. XMM31 | ||
| YMM0 .. YMM7 | ||
| YMM8 .. YMM31 | ||
| ZMM0 .. ZMM7 | ||
| ZMM8 .. ZMM31 | ||
| BND0 .. BND3 | ||
| K0 .. K7 |
Nouveaux préfixes d'instruction
| Préfixe d'instruction | dcc32 | dcc64 | Syntaxe Intel |
|---|---|---|---|
| xacquire | |||
| xrelease | |||
| <evex> | {evex} |
Nouveaux préfixes d'expression
| Préfixe | dcc32 | dcc64 |
|---|---|---|
| oword | ||
| yword | ||
| zword |
Différence entre la syntaxe Delphi et la syntaxe Intel
La syntaxe Intel AVX-512 utilise des accolades { } qui sont déjà utilisées pour les commentaires begin/end dans Delphi.
Cette implémentation utilise donc des caractères inférieur à et supérieur à < > à la place.
| Catégorie | Syntaxe Delphi | Syntaxe Intel |
|---|---|---|
| Registre Opmask | <k1> ,, <k7> | {k1} .. {k7} |
| Modificateur de mise à zéro | <z> | {z} |
| Broadcast incorporé | <1to2> <1to4> <1to8> <1to16> | {1to2} {1to4} {1to8} {1to16} |
| Mode d'arrondi statique | <sae> <rn-sae> <rd-sae> <ru-sae> <rz-sae> | {sae} {rn-sae} {rd-sae} {ru-sae} {rz-sae} |
| Forcer le préfixe d'encodage EVEX | <evex> | {evex} |