The code generator/fr

From Lazarus wiki

English (en) français (fr)

Retour au contenu FPC internals

Avec la version 1.9.x de FPC, le générateur de code a été complétement réécrit pour aboutir à un compilateur ciblant plusieurs processeurs.

Support MM

Le générateur de code FPC prend en charge l'usage des registres multi-média tels qu'ils sont implémentés dans les processeurs modernes.

L'opérande de mélange (shuffle operand)

La plupart des unités prennent en charge aussi bien les opérations scalaires que vectorielles sur les registres multimédia. Pour distinguer ces différentes opérations, les méthodes MM de tcg prennent un soit-disant paramètre de mélange (shuffle parameter). Ce paramètre permet de spécifier comment les données sont traitées lors de la génération du code multi-média.

  pmmshuffle = ^tmmshuffle;  
  { this record describes shuffle operations for mm operations; if a pointer a shuffle record
    passed to an mm operation is nil, it means that the whole location is moved }
  tmmshuffle = record
    { describes how many shuffles are actually described, if len=0 then
      moving the scalar with index 0 to the scalar with index 0 is meant }
    len : byte;
    { lower nibble of each entry of this array describes index of the source data index while
      the upper nibble describes the destination index }
    shuffles : array[1..1] of byte;
  end;

Prochain chapitre: Cible CPU