Difference between revisions of "The code generator"

From Lazarus wiki
Jump to navigationJump to search
 
Line 1: Line 1:
 
With the version 1.9.x of FPC the code generator has been completly rewritten to fit the needs of a compiler with multiple processor target support.
 
With the version 1.9.x of FPC the code generator has been completly rewritten to fit the needs of a compiler with multiple processor target support.
 +
 +
 +
== MM support ==
 +
 +
=== The shuffle operand ===
 +
 +
  { 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;

Revision as of 23:12, 20 December 2003

With the version 1.9.x of FPC the code generator has been completly rewritten to fit the needs of a compiler with multiple processor target support.


MM support

The shuffle operand

 { 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;